Skip to content

Instantly share code, notes, and snippets.

@kylebaron
Created August 15, 2016 15:39
Show Gist options
  • Select an option

  • Save kylebaron/2d0da708038dac83e033469f228b396b to your computer and use it in GitHub Desktop.

Select an option

Save kylebaron/2d0da708038dac83e033469f228b396b to your computer and use it in GitHub Desktop.
Future multicore
library(future)
library(future.BatchJobs)
library(mrgsolve)
library(dplyr)
library(parallel)
mod <- mrgsolve:::house()
data <- expand.ev(amt=100,ID=1:200)
#plan(eager)
#plan(lazy)
#plan(batchjobs_sge, pathname="simple.tmpl")
plan(multicore)
system.time({
f <- lapply(1:8, function(i) {
future({
mod %>%
Req(CP) %>%
data_set(data) %>%
mrgsim(end=24,delta=1) %>%
mutate(rep = i)
})
})
})
plan(eager)
system.time({
f <- lapply(1:8, function(i) {
future({
mod %>%
Req(CP) %>%
data_set(data) %>%
mrgsim(end=24,delta=1) %>%
mutate(rep = i)
})
})
})
system.time({
f <- mclapply(1:8,mc.cores=8, function(i) {
mod %>%
Req(CP) %>%
data_set(data) %>%
mrgsim(end=24,delta=1) %>%
mutate(rep = i)
})
})
@kylebaron
Copy link
Author

> system.time({
+   f <- lapply(1:8, function(i) {
+     future({
+       mod %>% 
+         Req(CP) %>% 
+         data_set(data) %>%
+         mrgsim(end=24,delta=1) %>% 
+         mutate(rep = i)
+     })
+   }) 
+ })
   user  system elapsed 
  0.200   0.696   7.538 
> plan(eager)
> system.time({
+   f <- lapply(1:8, function(i) {
+     future({
+       mod %>% 
+         Req(CP) %>% 
+         data_set(data) %>%
+         mrgsim(end=24,delta=1) %>% 
+         mutate(rep = i)
+     })
+   }) 
+ })
   user  system elapsed 
  0.288   0.000   0.287 
> 7.5/0.287
[1] 26.1324
> system.time({
+   f <- mclapply(1:8, function(i) {
+       mod %>% 
+         Req(CP) %>% 
+         data_set(data) %>%
+         mrgsim(end=24,delta=1) %>% 
+         mutate(rep = i)
+   }) 
+ })
   user  system elapsed 
  0.140   0.172   0.243 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment