我知道我不应该嵌套并行运算符,但我的情况是我必须mclapply()
在我的代码中基本上嵌套两个调用。这是因为在我的代码中,我有一个已经在其中使用的函数(我们称之为它foo()
)mclapply()
。我想要的基本上是运行顺序版本的并行线程foo()
,执行如下操作:
mclapply(X, function(x) {
foo(x, mc.cores = 1)
},
mc.cores = 4)
我可以只运行内部mclapply()
还是mc.cores = 1
我应该实现一个顺序版本foo()
?
换句话说:mclapply(..., mc.cores = 1)
行为是否完全一样lapply(...)
?在这种情况下,是否存在减慢程序的并行开销?