С помощью PBSpro я могу запрашивать ресурсы для выполнения моей работы.Моя работа в параллельном кластере сводится к запуску одного и того же файла несколько раз, каждый раз с другим идентификатором индекса / задания.Каждая задача порождает свои собственные подпроцессы, и каждая задача в общей сложности использует 4 ЦП.Эта работа смущающе параллельна, с каждой задачей, независимой друг от друга, и, таким образом, хорошо подходит для параллельного инструмента GNU.Чтобы наилучшим образом использовать кластер и сжимать мои задачи там, где есть место, я помещаю запрос ресурсов в PBS следующим образом: PBS -l select=60:ncpus=4:mpiprocs=1
.В результате $PBS_NODEFILE
содержит список хостов, назначенных для задачи.
Проблема заключается в том, что менеджер заданий PBSpro может назначать несколько заданий одному узлу или только одно задание узлуи каким-то образом эта информация должна передаваться в GNU параллельно.Выполнение этого с --sshloginfile $PBS_NODEFILE
не переносит информацию о различных ресурсах, доступных на каждом узле (и кажется, что параллельная версия GNU использует только уникальные имена из этого списка).
Недостатком является то, что параллельная GNU видит число Xядер (количество ядер для хоста / узла) независимо от того, было ли назначено только 1 задание этому хосту.Ограничение количества заданий на хост приводит к неэффективному использованию хоста с незанятыми ядрами или к запуску большего количества задач на хосте, чем доступных ресурсов, превышающих подписку на ядра.
Проблема сводится к:
- Как можно эффективно запускать параллельные задачи через PBSpro,
- каждая задача с использованием более 1 процессора,
- на случайном (выделенном PBS) выборе узлов,
- каждый сразличное количество назначенных ресурсов,
- , которые не обязательно соответствуют фактическим физическим ресурсам узла.