设置parLapply()进行并行处理

时间:2019-02-14 20:11:03

标签: r parallel-processing

我有一个非常大的数据集(360个样本中有17,000个特征),为此我需要计算一些多样性指数。这需要非常长的时间(单个样本需要3-4天),所以我想平行进行。我大约有50个cpus,因此每个cpu应该依次执行约7个样本(列)。

我可以运行:

df <- data.frame(matrix(sample.int(1000, 2000*360, TRUE), 2000, 360))
dflist <- as.list(df)

library(parallel)
cl <- makeCluster(detectCores()-1)

clusterExport(cl, "dflist")
results <- parLapply(cl, df.list, function(x) range(x)) #range as a wild card 

,这将产生所需的输出,但是我不知道这是否真的有效,如我认为的那样。 所以,我的问题是: 一旦完成当前任务,此命令是否允许每个进程拾取dflist中的下一个空闲对象? 还是我必须在dflist中为每个进程分配一组特定的对象?

0 个答案:

没有答案