After watching this presentation[1] by Brian Goetz, in which he
discusses the fork-join framework and how it is intended to be used I
was left with a major question. Around the end of the talk he said and I
quote
"...fork-join can be used for game-tree exploration..."
while the slides actually had
-Move generation
-Alpha-beta
...
....
As soon as I saw/heard that I almost fell of my chair!!! He caught me
completely by surprise simply because I've given this quite a bit of
though myself... NOw, I'm not implying that I am nowhere near as smart
or informed as he is but the 'objection' I have is pretty simple. I
already have a parallel minimax (some of you have actually helped) so I
know how that's done and it wasn't too hard because minimax is
exhaustive search. No heuristics whatsoever...as long as you work with
immutable data-structures God is on your side and all is well!
HOWEVER, as soon as you introduce heuristics (even simplistic like
alpha-beta pruning) you 've lost the ability to split the work in
pieces. You've suddenly introduced coordination which only makes sense
in a serial fashion. Since pruning a particular branch of the game-tree
requires knowing how the previous branch did how can you ever fork?
What if these 2 branches are on separate threads? How can you ever do
that without locking?
I am very excited that someone like Brian Goetz is claiming something
like this even though I don't understand how such an inherently serial
process could be efficiently forked.
Can anyone help?
[1] http://www.infoq.com/presentations/brian-goetz-concurrent-parallel
Jim
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en