使用R多核时,一个核上的所有作业都会失败
我在一个长长的列表中使用R多核。我调用列表中的使用R多核时,一个核上的所有作业都会失败,r,multicore,mclapply,R,Multicore,Mclapply,我在一个长长的列表中使用R多核。我调用列表中的mclappy,它使用我机器上的12个内核 当我的列表有大约1000个元素时,它运行良好。 当我的列表长度超过~2000个元素时(我不确定这种行为会持续多长时间),那么提交给core 5的所有作业都会失败 (我是通过向提交列表元素ID发现这一点的。) 我已在多个节点上尝试过此操作,但始终收到以下警告: Warning message: In mclapply(h.list, train_and_predict, learn.bias = F, ntr
mclappy
,它使用我机器上的12个内核
当我的列表有大约1000个元素时,它运行良好。
当我的列表长度超过~2000个元素时(我不确定这种行为会持续多长时间),那么提交给core 5的所有作业都会失败
(我是通过向提交列表元素ID发现这一点的。)
我已在多个节点上尝试过此操作,但始终收到以下警告:
Warning message:
In mclapply(h.list, train_and_predict, learn.bias = F, ntree = ntree, :
scheduled core 5 encountered error in user code, all values of the job will be affected
Q:为什么只有一个内核会失败?
任何帮助都将不胜感激
PK我认为当至少一个数据激活代码中的错误时,就会发生这种情况<代码>多核无法恢复,该核上的所有数据都已损坏
mclappy
在所有节点上均匀地分割数据,如果一个节点上的一个数据失败
我建议以下解决方案:从
M
的N
数据项开始;如果失败,则逐渐减小M
,直至其工作;然后M+1
基准出现故障。仅使用第M+1个数据连续运行代码(即不使用mclappy
),并查看失败的位置。那就是bug。我也遇到过这种情况。对任何想法都感兴趣!请提供一个重现此问题的示例。当我遇到这种情况时,总是因为完整列表中的某些元素破坏了我的代码,而较短列表中没有任何元素破坏了我的代码。@Paul Hiemstra:我使用的数据非常大(~100Mb)。你能抓住它吗?你可以给我们提供一个文件链接,没有这样的例子,很难超越猜测,为什么会发生这种情况,以及如何修复它。