从manual学习Julia的过程中,我想看看是否可以让Julia立即在CPU的所有四个内核上运行一次硬计算。我用此命令启动了Julia;
julia -p 4
然后,我定义了以下函数,仅出于进行大量算术的目的。 Mod 13在那里,因此最终不会打印出大量数字。
@everywhere function hard_computation()
bigexp = BigInt(999)^99999999
bigexp % 13
end
然后,我告诉 Julia 在四个单独的过程中执行此操作。
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
。所以...出了什么问题?
系统信息;
最佳答案
大家都虚惊一场;原来我的RAM已损坏。
关于multithreading - Julia `remotecall`线程给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23588409/