我刚开始在具有多个内核的群集上运行我的Julia代码,因此更改了我的代码以尝试利用它。我用julia -p 12
启动了julia。但是,我总是得到一个错误,繁忙的工人被打断了。
对于此代码,我让主进程创建一个名为Train
的{{1}}类型数组。我想执行一个函数ResultTable
,它将gamerunner
作为输入并返回ResultTable
。
对于我的第一次尝试,我尝试了Int
数据大小正确,但错误
“警告:强行中断繁忙的工作人员ArgumentError(”流是 关闭或无法使用“)”
被退回。
我不知道该怎么做,所以我试过
result=pmap(gamerunner,Train)
和
@sync result=pmap(gamerunner,Train)
给出了同样的错误。然后我在文档中看到@sync begin
result=pmap(gamerunner,Train)
end
没有说它适用于@sync
,所以我决定尝试pmap
而不是
@parallel
并收到错误
“运行终结器时出错:InterruptException()警告:强行 中断繁忙的工作人员ArgumentError(“流已关闭或 不可用 “)”
最后,我认为既然我已经阅读了很多关于@sync begin
@parallel for i=1:size(Train)[1]
Train[i].result=gamerunner(Train[i])
end
end
的内容,也许我必须这样做才能让它发挥作用,所以我试过
fetch
这给了我错误
“警告:强行打断繁忙的工作人员警告:无法执行此操作 终止所有工人“
我越来越困惑。非常感谢您的帮助。
评论示例:
@parallel for i=1:size(Train)[1]
Train[i].result=gamerunner(Train[i])
end
for i=1:size(Train)[1]
fetch(Train[i].result)
end