Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1a34bd5

Browse files
author
Francesco Gadaleta
committed
running parallel code in R
1 parent 96a9d1d commit 1a34bd5

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

parallel_template.R

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
require(snowfall)
2+
3+
4+
p = 2000; n = 200
5+
x <- matrix(rnorm(n*p), nrow=n, ncol=p)
6+
#df <- data.frame(x)
7+
8+
# split data to parallelise
9+
mats = {}
10+
for(i in 1:p){
11+
yi = x[,i]
12+
xi = x[,-i]
13+
mi = cbind(yi, xi)
14+
mats[[i]] = mi
15+
}
16+
17+
18+
singlefit <- function(dat) {
19+
fit = glmnet(y=dat[,1], x=dat[,-1], alpha=1, intercept=F, lambda=0.1)
20+
singlecoeffs <- as.matrix(t(coef(fit)))
21+
singlecoeffs <- singlecoeffs[,-1]
22+
return(singlecoeffs)
23+
}
24+
25+
start = Sys.time()
26+
27+
sfInit(parallel = T, cpus = 4, type="SOCK")
28+
sfLibrary(glmnet)
29+
res <- sfLapply(mats, singlefit)
30+
sfStop()
31+
32+
end = Sys.time()
33+
elapsed = end-start
34+
elapsed*60
35+

0 commit comments

Comments
 (0)