我发现了来自&& 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中提出这个问题。((((p
谢谢。