Torque PBS против многопроцессорной обработки Python

У меня есть скрипт Python, который работает на сервере с 512 процессорами и 4 ТБ памяти. Скрипт использует модуль многопроцессорной обработки Python для параллельной обработки, разветвляя 30 параллельных дочерних процессов. Теперь мне нужно написать сценарий PBS для удаленного вызова сценария с другого сервера. Я вижу, что есть два подхода: 1. Оставьте скрипт без изменений и используйте qsub для отправки задания, выполняющего скрипт. Тогда скрипт будет использовать многопроцессорный модуль для распараллеливания. 2. Измените сценарий на последовательную обработку, а затем используйте PBS для отправки 30 заданий с разными аргументами для распараллеливания.

Может ли кто-нибудь подсказать мне плюсы и минусы разных подходов? Спасибо.

1 ответ

Из того, что я вижу, плюсы и минусы каждого подхода не очень важны, так как в любом случае вы выполняете несколько отдельных заданий, а не одно задание MPI с 512 процессами.

Поскольку Torque является новой частью вашего рабочего процесса, вам необходимо выяснить, какую очередь использовать, и какие ограничения установлены в этой очереди. Пределы обычно устанавливаются администратором и могут быть настроены так, чтобы они благоприятствовали небольшому количеству крупных заданий, первый подход или большому количеству небольших заданий, второй подход. Бег

qmgr -c 'p s'

покажет вам часть этой информации, но беседа с администратором даст вам знать, как они собираются использовать систему, и, надеюсь, даст вам некоторое представление о том, как запустить вашу работу.

Если вы обнаружите, что ограничения не установлены, вы можете рассмотреть возможность использования большого количества небольших рабочих мест. Получить задание с 20 процессорами в очереди будет проще, чем получить задание с 200 процессорами для работы в общей системе.

Другие вопросы по тегам