1 | library(doParallel)
|
---|
2 | # Enable command line arguments
|
---|
3 | args<-commandArgs(TRUE)
|
---|
4 |
|
---|
5 | # use the environment variable SLURM_NTASKS_PER_NODE to set the number of cores
|
---|
6 | registerDoParallel(cores=(as.integer(args[1])))
|
---|
7 |
|
---|
8 | # Bootstrapping iteration example
|
---|
9 | x <- iris[which(iris[,5] != "setosa"), c(1,5)]
|
---|
10 | iterations <- 10000# Number of iterations to run
|
---|
11 |
|
---|
12 | # Parallel version of code
|
---|
13 | # Note the '%dopar%' instruction
|
---|
14 | part <- system.time({
|
---|
15 | r <- foreach(icount(iterations), .combine=cbind) %dopar% {
|
---|
16 | ind <- sample(100, 100, replace=TRUE)
|
---|
17 | result1 <- glm(x[ind,2]~x[ind,1], family=binomial(logit))
|
---|
18 | coefficients(result1)
|
---|
19 | }
|
---|
20 | })[3]
|
---|
21 |
|
---|
22 | # Shows the number of Parallel Workers to be used
|
---|
23 | getDoParWorkers()
|
---|
24 | # Executes the functions
|
---|
25 | part
|
---|