Daniel Shawul wrote:Mine is also a bitbmap. It doesn't have to be 1bit/pos to be called so. You would need atleast 1bit more for marking as visited otherwise the generator will spend too much time re-visiting. Anyway what I have a problem is how to generate one side bitbases. Say I mark all the losses for white->then wins for black->losses for white etc... It seems you need the bitmap for black to move as well bringing your total to 3bitmaps. I know there is a "leap-frog" or similar method that can generate one side only but I can't figure it out right now...
Do you understand that if we are generating at lightspeed, that we have a few bitmaps that we STREAM, and a few bitmaps where we do in random manner probing to?
The ones we do random probing to, if you use 64KB - 512KB segments, you'll get to the sequential speed of your harddrive. Yet it's crucial that the bitmap we lookup to is as tiny as possible.
1 bit per position is the minimum without compression, so that's what you use.
Anything larger will slow you down of course.
As for the number of bitmaps:
You'll end up with a dozen bitmaps of course. In each given position you maximize also with the capture bitmap.
This all goes at warp speed. 64 positions at the same time.
Every bitmap you lookup to, you need it in 2 formats.
However the bitmaps you stream sequential through it doesn't matter how many you have. This is what your processor has been optimized for. Streaming.
So that doesn't eat much of a RAM.
The bitmap you lookup to, that's what its all about.
That one is in your caching system.
You selfcreated caching system will handle it. In Diep i use 64KB bucket size for caching. A number of megabytes in total is enough, but it increases a tad for the 6 men. You need more RAM for caching with 6 men than for 5 men.
64KB at the time was the minimum to get sequential behaviour of harddrives. I'm not sure what's ideal for todays magnetic harddrives. Might be you might to move to 128KB or 256KB.
With 64KB at IDE (parallel) drives i get close to the full sequential speed.
So random probing then, with the caching system gets nearly the same bandwidth out of the drive as when you stream to/from it.