我正在使用pexpect
编写一些在slurm集群上运行并行进程的python脚本。
如果我将作业提交到单个计算节点,则一切正常。并行过程由pexpect.spawn
实现,如下所示:
worker_command = '%s -m worker' % python + " %i " + server_socket
children = []
for pid in range(no_of_workers):
child = pexpect.spawn(worker_command % pid)
children.append(child)
其中worker.py
与用于提交作业的bash脚本放在同一文件夹中。
但是,当我使用两个计算节点运行脚本时,其中一个计算节点找不到脚本worker.py
。如果我仍然使用相同的worker_command
,则命令
ssh = pxssh.pxssh()
ssh.sendline(worker_command % pid)
将不会运行worker.py
所在的计算机可以找到的zmq.REP
脚本。
我该如何解决?