我在很长的名单上使用R多核。我在列表上调用了mclapply
,它在我的机器上使用了12个核心。
当我的列表有大约1000个元素长时,它运行正常。 当我的列表超过〜2000个元素时(我不确定这个行为会在多长时间内启动),那么提交给核心5的所有作业都会失败。
(我通过将列表元素ID提交给this website找到了这一点。)
我在几个节点上尝试了这个但是我总是得到以下警告:
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
问:为什么只有一个核心会失败?
非常感谢任何帮助。
PK
答案 0 :(得分:2)
我认为当至少一个数据激活代码中的错误时会发生这种情况。 multicore
无法恢复,并且该核心上的所有数据都已损坏。 mclapply
在所有节点上均匀地划分数据,如果在一个节点上甚至一个数据都失败了。
我建议使用以下解决方案:从M
个N
数据项开始;如果失败则逐渐减少M
直到它起作用;然后M+1
数据有问题。以mclapply
为止的数据连续运行代码(即不使用M+1
)并查看失败的位置。那就是错误。