Я использую pexpect
для написания некоторых сценариев Python, которые запускают параллельные процессы в кластере slurm.
Если я отправляю задание на один вычислительный узел, все работает нормально.Параллельные процессы реализуются с помощью 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
.
Как я могу это исправить?