Is there a way to run 2 different blocks of code at the same time. I have been looking at parallel packages within R and they all appear to be based on running the same function in a loop. I am looking for a way to run different functions at the same time (1 iteration of the loop). For example, I would like to create a model on a certain data object at the same time as creating another model on a different object. I could do this by starting another instance of R but would rather keep it all in the same script. Is this possible? I appreciate any advice.
Asked
Active
Viewed 1,823 times
2 Answers
3
You could try substituting/quoting the functions then evaluating them in parallel.
library(parallel)
ExpressionVect <- c(substitute(function1()),
substitute(function2()))
mclapply(ExpressionVect, eval, mc.cores= 2)
This allows the functions to be evaluated in parallel when they are independent functions

Jonno Bourne
- 1,931
- 1
- 22
- 45
0
You can use clusterMap
, which is a parallel version of mapply
. This assumes you want to fit the same type of model on each node (lm, glm, rpart, whatever).
clus <- makeCluster(2)
out <- clusterMap(clus, lm, formula=list(speed ~ dist, mpg ~ cyl + disp + hp),
data=list(cars, mtcars))

Hong Ooi
- 56,353
- 13
- 134
- 187
-
Thanks Hong, but I also have some more code that needs to run other than just model creation. I basically have two rather long functions that include model creation in each. Any ideas? – John Richardson Feb 03 '14 at 15:19