Parallel processing 朱莉娅没有';我不喜欢在不进行任何并行处理的情况下添加和删除进程
更新:确认为错误。有关更多详细信息,请参阅下面@ViralBShah提供的链接和详细信息 当我添加和删除进程(Parallel processing 朱莉娅没有';我不喜欢在不进行任何并行处理的情况下添加和删除进程,parallel-processing,julia,Parallel Processing,Julia,更新:确认为错误。有关更多详细信息,请参阅下面@ViralBShah提供的链接和详细信息 当我添加和删除进程(addprocs和rmprocs)时,Julia抛出了一个奇怪的错误,但前提是我在这两者之间没有进行任何并行处理。考虑下面的示例代码: #Set parameters numCore = 4; #Add workers print("Adding workers... "); addprocs(numCore - 1); println(string(string(numCore-1)
addprocs
和rmprocs
)时,Julia抛出了一个奇怪的错误,但前提是我在这两者之间没有进行任何并行处理。考虑下面的示例代码:
#Set parameters
numCore = 4;
#Add workers
print("Adding workers... ");
addprocs(numCore - 1);
println(string(string(numCore-1), " workers added."));
#Detect number of cores
println(string("Number of processes detected = ", string(nprocs())));
# Do some stuff (COMMENTED OUT)
# XLst = {rand(10, 1) for i in 1:8};
# XMean = pmap(mean, XLst);
#Remove the additional workers
print("Removing workers... ");
rmprocs(workers());
println("Done.");
println("Subroutine complete.");
请注意,我已经注释掉了唯一真正执行并行处理的代码(调用pmap
)。如果我在我的机器上运行此代码(Julia 0.2.1,Ubuntu 14.04),我会在控制台中得到以下输出:
Adding workers... 3 workers added.
Number of processes detected = 4
Removing workers... Done.
Subroutine complete.
fatal error on
In [86]: fatal error on 88: ERROR: 87: ERROR: connect: connection refused (ECONNREFUSED)
in yield at multi.jl:1540
connect: connection refused (ECONNREFUSED) in wait at task.jl:117
in wait_connected at stream.jl:263
in connect at stream.jl:878
in Worker at multi.jl:108
in anonymous at task.jl:876
in yield at multi.jl:1540
in wait at task.jl:117
in wait_connected at stream.jl:263
in connect at stream.jl:878
in Worker at multi.jl:108
in anonymous at task.jl:876
前四行是由我的程序打印的,似乎表明它运行到完成。但是我犯了一个致命的错误。有什么想法吗
关于这个错误最有趣的事情是,如果我调用
pmap
(即如果我真的进行了一些并行处理)取消对代码的注释,致命错误就会消失。这个问题正在跟踪中,我重现了Amit Murthy的答案:
这个问题正在跟踪,我复制了Amit Murthy的答案:
看起来像个虫子。您应该将此作为一个问题归档:看起来像一个bug。您应该将此作为问题提交:感谢您的跟进。我一直想回到这里,提供一个到github问题页面的链接,但还没有找到。ps我是茱莉亚的新皈依者,我喜欢它的每一秒,所以谢谢你。谢谢你的跟进。我一直想回到这里,提供一个到github问题页面的链接,但还没有找到。ps我是朱莉娅的新皈依者,我喜欢它的每一秒,所以谢谢你。