[plt-dev] Parallel Futures Release

From: Doug Williams (m.douglas.williams at gmail.com)
Date: Mon Dec 7 12:44:56 EST 2009

This is something I've been waiting for for some time. I am doing
agent-based simulation using PLT Scheme and would love to be able to make
use of parallelism across multicore machines. It would also be interesting
to see what we could do to build this into the simulation collection to
allow concurrent execution of 'simultaneous' events.


On Mon, Dec 7, 2009 at 10:31 AM, James Swaine <james.swaine at gmail.com>wrote:

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

Posted on the dev mailing list.