#python #mpi #python-multiprocessing #slurm
Вопрос:
Я пишу скрипт на Python, который является драйвером для двух внешних программ с разными моделями распараллеливания, и мне было интересно, как лучше всего запросить для него ресурсы в Slurm.
Одна программа параллельна с общей памятью ( #SLURM --ntasks 1 --cpus-per-task 16
), а другая использует MPI ( #SLURM --ntasks 16 --cpus-per-task 1
). Кроме того, в моем сценарии две программы могут управляться независимо друг от друга, поэтому в идеале я хотел бы запустить два процесса с multiprocessing
пакетом Python, а затем присоединиться, когда оба будут завершены.
Ограничения:
- Я не могу создавать новые экземпляры Python, что означает, что я не могу использовать сценарий менеджера для создания и запуска независимых заданий Slurm с различным распределением ресурсов.
Возможные решения:
- Выделите наибольшее количество как рабочих мест, так и ненужных ресурсов (
#SLURM --ntasks 16 --cpus-per-task 16
) - Каким — то образом используйте разнородные задания Slurm, хотя для этого, по-видимому, требуются
srun
два автономных исполняемых файла-любые советы по этому вопросу также были бы полезны.
Спасибо!