Thursday, October 1, 2009

fork processes in R using package multicore

I just found this wicked cool way to fork processes (for multi-core CPUs) in R.... Works just like you'd expect!

library(multicore)

job1 <- mcparallel(bigMachingLeaningFunction1())
job2 <- mcparallel(bigMachingLeaningFunction2())
job3 <- mcparallel(bigMachingLeaningFunction3())
job4 <- mcparallel(bigMachingLeaningFunction4())

###### time goes by .....

results1 <- collect(job1)
results2 <- collect(job2)
results3 <- collect(job3)
results4 <- collect(job4)


Note to emacs ESS users -- just be sure all your libraries are already loaded, and set silent=TRUE in the mcparallel call.... that will keep your ESS buffer from going read-only.

No comments:

Post a Comment