如果一个任务完成(我不想等待其他任务),我想取消集群计算并获得最快计算的返回值:
require(snow)
library(parallel)
tasks = list(
job1 = function(y, cl){
EMGMM(y=y, startMy = 0)
},
job2 = function(y, cl){
EMGMM(y=y, startMy = 1)
},
job3 = function(y, cl){
EMGMM(y=y, startMy = 2)
}
)
cl = makeCluster( length(tasks) )
clusterExport(cl, "dmvnorm") #needed in EMGMM()
res = clusterApply(cl, tasks, function(f) f(y))
如果我运行它,res
将存储三个作业的 3 个结果。但我只想要禁食工作的结果。
:)