I'm pleased to announce the initial release of parallel futures, a<br>
construct for fine-grained parallelism in PLT. Roughly speaking, a<br>
programmer passes a thunk to 'future' and it gets run in parallel.<br>
That "roughly" holds a few gotchas, partly because we're just getting<br>
started and partly due to the technique we're using. See the<br>
documentation for more details:<br>
<div class="im"><br>
<a href="http://pre.plt-scheme.org/docs/html/futures/" target="_blank">http://pre.plt-scheme.org/docs/html/futures/</a><br>
<br>
</div>If you've got a multicore machine where you can't keep the cores busy<br>
or your office/machine room is a bit cold, try this program:<br>
<br>
#lang scheme<br>
(require scheme/futures)<br>
(define (loop) (loop))<br>
(for-each<br>
touch<br>
(for/list ([i (in-range 0 (processor-count))])<br>
(future loop)))<br>
<br>
Note that you have to build mzscheme with futures; it isn't enabled by<br>
default, but see the docs above for how to do that. Beyond the above,<br>
we've also gotten a few parallel kernels going and are seeing good<br>
scalability up to 8 cores (the biggest machine we have around for the<br>
time being).<br>
<div class="im"><br>
Many thanks to Matthew, Robby, Kevin, and Peter Dinda, without whom this<br>
release wouldn't have been possible.<br>
<br>
</div>Feedback welcome!<br>
<br>
James