相关疑难解决方法(0)

mclapply是否保证按顺序返回结果?

我的工作mclapplymulticore包(在Ubuntu),我正在写需要的是结果的函数mclapply(x, f),以便返回(也就是f(x[1]), f(x[2]), ...., f(x[n])).

# multicore doesn't work on Windows

require(multicore)
unlist(mclapply(
    1:10,
    function(x){
        Sys.sleep(sample(1:5, size = 1))
        identity(x)}, mc.cores = 2))

[1] 1 2 3 4 5 6 7 8 9 10
Run Code Online (Sandbox Code Playgroud)

上面的代码似乎暗示mclapply返回的结果顺序与lapply.

但是,如果这个假设是错误的,我将不得不花费很长时间来重构我的代码,所以我希望得到更熟悉这个包/并行计算的人的保证,这个假设是正确的.

是否可以安全地假设mclapply始终按顺序返回结果,而不管它是否给出了可选参数?

parallel-processing multicore r

13
推荐指数
1
解决办法
2382
查看次数

标签 统计

multicore ×1

parallel-processing ×1

r ×1