使用mclapply运行函数时的环境

时间:2018-03-14 20:01:20

标签: r parallel-processing mclapply

我有以下功能:

fxn <- function(X) {
    data <- replicate(10, rnorm(10000)) 
    clusters <- kmeans(data, X)
    write.csv(clusters$cluster, paste0("kmeans", X, ".csv"))}

我想使用mclapply并行迭代它。

list <- list(10, 50, 100, 150, 200, 250, 300)
mclapply(list, fxn, mc.cores = 8)

这是我的函数和用例的一个非常简化的版本,但是我想用它来阐明在使用用户定义的函数和mclapply时如何处理环境。

因为这是在同一个RAM上并行处理的,所以我想知道mclapply函数是否会被混淆&#34;在某个时刻,将dataclusters混合为另一个参数(如list中所定义)(通过覆盖dataclusters并使用变量这是使用错误的X)制作的。我知道每个函数都维护着自己的环境,但是由于同时使用了多次相同的函数,我想确认它是如何工作的。

如果您能为我澄清这一点或指出我正确的方向,我将非常感激。

谢谢!

0 个答案:

没有答案