Futures: Fine Grained Parallelism in PLT
We're 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:
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/future) (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).