Как я могу дать вычислительному узлу знать, какой файл Python выполнять (slurm)? - PullRequest
0 голосов
/ 19 декабря 2018

Я использую 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.

Как я могу это исправить?

...