朱莉娅`remotecall`线程给出了不同的结果

时间:2014-05-11 02:46:27

标签: multithreading julia

在从manual学习Julia时,我想知道是否可以让Julia同时在我的所有四个CPU内核上运行硬计算。我用这个命令启动了Julia;

julia -p 4

然后我定义了以下函数,只是为了进行大量的算术运算。 mod 13就在那里,它最终不会打印出庞大的数字。

@everywhere function hard_computation()         
  bigexp = BigInt(999)^99999999
  bigexp % 13
end

然后我告诉朱莉娅在四个不同的过程中这样做。

for i in 1:4
  push!(r, remotecall(i, hard_computation))
end

当我fetch编辑r中的值时,我得到了[5, 6, 5, 5]。我试了几次,然后得到了; 5, 5, 5, 5, 5, 1, 5, 5, 5, 2, 0, 5, 5, 5, 5, 7。正确答案是5

那么......出了什么问题?

系统信息;

  • Julia 0.2.1
  • Linux 3.5.0-17-generic(x86_64)
  • 英特尔酷睿i5-2430M

1 个答案:

答案 0 :(得分:0)

每个人都是误报;事实证明我的RAM已损坏。