I hadn't heard of the CloudAsia 2010 conference before, but from the programme the workshop Master Class on HPC Application For Life Sciences looked like it was interesting. One workshop session in particular caught my eye: Practical Parallel Computing in R by Xie Chao and Tan Tin Wee (from the National University of Singapore). The workshop notes (PDF) provide a practical and concise overview of the parallel programming options in R, including several examples using our own foreach package under the heading "One Ring to Rule Them All":
The foreach and iterators packages created by REvolution Computing [now Revolution Analytics -- ed.] provide us a convenient framework for parallel computing in R. With these two packages, you only need to write one version of your code for all parallel backends.
The document gives examples of using several parallel backends with foreach, including doMC, doSNOW and doMPI.
By the way, If you're planning to try out foreach yourself, don't forget that a new parallel backend for Windows is now available: doSMP, included with all editions of Revolution R. doSMP is an open-source R package, we're haven't yet submitted it to CRAN. But if you want to get in early and try it with R 2.11, Tal Galili has compiled it and made a Windows binary compatible with R 2.11 at his R Statistics blog (thanks, Tal!).
CloudAsia 2010: Master Class on HPC Applications For Life Sciences
Thanks for the post David.
I would just like to emphasize that the person responsible for the proper compiling of the package is Tao Shi.
Thanks for making your code available.
Best,
Tal
Posted by: Tal Galili | May 18, 2010 at 13:50
Would be great if you could make it work on Linux as well. Would make my life a lot easier, with a lot less if() statements. :)
Other than that, great package. In my view, one of the top contributions lately!
Posted by: romunov | August 03, 2010 at 05:07
foreach works on all platforms, and there are several parallel backends that you can use on Linux, including doMC (for single-machine SMP); and doSNOW, and doNWS (included in Revolution R Enterprise) for cluster/grid processing.
Posted by: David Smith | August 03, 2010 at 06:50