中断忙碌的工人朱莉娅

时间:2017-05-06 04:08:03

标签: parallel-processing julia

我刚开始在具有多个内核的群集上运行我的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

0 个答案:

没有答案