用nohup运行mpi4py。 mpiexec注意到在节点ip-x-xx-xx-xxxx上的PID 70581的进程等级6退出信号1(Hangup)

时间:2016-10-21 05:51:37

标签: python parallel-processing mpi nohup

我试图运行一个python脚本,该脚本经过修改以在多个内核中执行操作。我尝试使用nohup运行相同的操作,它工作正常,但当我尝试在更大的样本上运行它时,我得到以下错误。 mpiexec注意到在节点ip-xx-x-xxx上的PID 70581的进程等级6在信号1(Hangup)上退出。 任何关于它为什么发生以及如何纠正它的想法。如果有人可以建议在多个核心中运行python脚本的更好方法,那就太棒了。

例如我有一个脚本abc.py

a=[1,2,3,4]
result=[]

def foo(x,y):
    #do some maths
    score_pair=#some more maths depending on x and y
    return score_pair

if __name__=='__main__':
    for x in a:
        for y in a:
            score_pair=foo(x,y)
            result.append([x,y,score_pair])
    #save result in pickle

我使用mpi4py修改了for循环,以便脚本可以利用计算机上可用的多个核心。我正在使用

运行python脚本
 nohup mpiexec -n 16 python abc.py > nohupfile.out &

只要a的大小很小(即执行时间很短),代码就可以正常工作。如果我增加a的大小,则进程挂断会产生上述错误。 知道怎么纠正这个吗?如果有其他方法可以并行化脚本吗?

0 个答案:

没有答案