clusterMap与try块无法正常工作

时间:2017-11-17 08:35:09

标签: r parallel-processing try-catch

我发现了来自&& 39; parallel'的clusterMap函数的奇怪问题。包装在R。

代码示例:

library(parallel);

maxThreads <- max(1, detectCores() - 1);
internalCluster <- makeCluster(maxThreads, homogeneous=FALSE, XDR=FALSE);

modelList <- clusterMap(internalCluster, function(i)
{
    try(1/'a', silent = TRUE);
}, 1:100000, .scheduling = "dynamic");

stopCluster(internalCluster);

此代码必须正常,但每次运行时,都会出错:

  

checkForRemoteErrors(val)出错:1e + 05个节点产生错误;   第一个错误:1 /&#34; a&#34; :二元运算符的非数字参数

所以,如果我们稍微更改一下这个代码,它就可以了!

library(parallel);

maxThreads <- max(1, detectCores() - 1);
internalCluster <- makeCluster(maxThreads, homogeneous=FALSE, XDR=FALSE);

modelList <- parLapply(internalCluster, 1:100000, function(i)
{
    try(1/'a', silent = TRUE);
});

stopCluster(internalCluster);

这是一个R代码错误吗?不幸的是,我不能直接在R bugzilla中提出这个问题。(((谢谢。

0 个答案:

没有答案