Advice wanted on parallel processing

j.waldmann waldmann at
Wed Mar 18 20:37:05 EDT 2009

> (I am not updating in place).
> The move generator produces a new board for each move.

Well, this is sound design, but current memory managers may not be up to it. 
If you check the (board) game programming literature, 
you'll find that engine authors take great efforts to bypass automatic
memory management  
(do all updates on the "current" board in-place, and write their own
malloc/free for game tree nodes).

This becomes even more important when trying to exploit concurrency.
In theory, that's all very nice (you can evaluate independent branches of
the game tree
in parallel) but in practice, you're doomed if your memory
is  still essentially single-threaded (that is, blocks all threads).

That's language independent (it's a property of the run-time system).
Of course in a more declarative language it should be easier for the
to analyze the source code and replace malloc/free by something better
(no allocation by immediate re-use, or easy deallocation by some stack


View this message in context:
Sent from the Haskell - Glasgow-haskell-users mailing list archive at

More information about the Glasgow-haskell-users mailing list