У меня есть программа на Python, которая работает следующим образом:
Инициализация данных
Вызвать внешнее программное обеспечение, чтобы вычислить результат данных (используя подпроцесс), прочитать обратно в вывод внешнего программного обеспечения
манипулировать выводом, подготовить его к переходу к шагу 1.
Я хочу распараллелить шаг 2 в кластерной среде (slurm), используя для этого многоузловую среду.
Я пытался найти самый простой подход к этому, поскольку я не думаю, что подпроцесс автоматически будет использовать несколько узлов, если они выделены для программы python в пакетном файле.
Я попытался использовать dask-jobqueue, однако это основано на создании пакетного файла для каждого работника, то есть мне пришлось бы делать 10 секунд вызовов пакетного файла и ждать, пока они все догонят код, чтобы использовать их все.
Мне было интересно, есть ли у кого-нибудь какой-нибудь совет, так как кажется, что это должно быть легко сделать.
Редактировать: это сложнее, чем просто использование многопроцессорности, я думаю. Этот вопрос касается того, что я пытаюсь выполнить, мне интересно, какой идеальный пакет будет для решения проблемы такого типа