环路R的并行
我在for循环中调用一个函数环路R的并行,r,parallel-foreach,R,Parallel Foreach,我在for循环中调用一个函数 sample_fun <- function(x,y) { # do something with x,y and return value } My loop looks like result = list() for(i in 1:10000) result[i] = sample_fun(i,i+1) sample\u funlibrary(doSNOW) 样品很有趣,谢谢你。用户时间提高10%。你建议的任何更激进的方法。我正在尝试
sample_fun <- function(x,y) {
# do something with x,y and return value
}
My loop looks like
result = list()
for(i in 1:10000)
result[i] = sample_fun(i,i+1)
sample\u funlibrary(doSNOW)
样品很有趣,谢谢你。用户时间提高10%。你建议的任何更激进的方法。我正在尝试使用igraph Package处理巨大的图形查看链接。诀窍是适当地平衡传递给线程的每个处理块的大小。有了8个内核,我的性能提高了450%。还可以在任务管理器中观察新创建的R会话的情况—它们的CPU和RAM使用情况。
library(doSNOW)
sample_fun <- function(x,y) {
# do something with x,y and return value
}
threads <- 8
N <- 10000
cl <- makeCluster(threads)
registerDoSNOW(cl)
result <- foreach(i=1:N) %dopar% sample_fun(i,i+1)
stopCluster(cl)