У меня есть установка, состоящая из 3 рабочих и узла управления, которую я использую для отправки задач. Я хотел бы одновременно выполнить сценарий установки на всех воркерах:

bsub -q queue -n 3 -m 'h0 h1 h2' -J "%J_%I" mpirun setup.sh

Насколько я понимаю, я мог бы использовать ограничение ресурса ptile для принудительного выполнения всех рабочих:

bsub -q queue -n 3 -m 'h0 h1 h2' -J "%J_%I" -R 'span[ptile=1]' mpirun setup.sh

Однако иногда я сталкиваюсь с проблемой, что мой скрипт выполнялся несколько раз одним и тем же воркером.

Это ожидаемое поведение? Или в моей настройке есть ошибка? Есть ли лучший способ принудительного выполнения нескольких рабочих?

lsf
1
CaptainTrunky 12 Ноя 2018 в 10:48

1 ответ

Лучший ответ

Вы правильно понимаете span[ptile=1]. LSF будет использовать только 1 ядро ​​на хост для вашей работы. Если на основе -n хостов недостаточно, задание будет отложено, пока что-то не освободится.

Однако иногда я сталкиваюсь с проблемой, что мой скрипт выполнялся несколько раз одним и тем же воркером.

Подозреваю, что дело в твоем скрипте. например, LSF добавляет в файл стандартного вывода по умолчанию. Используйте -oo для перезаписи.

1
Michael Closson 12 Ноя 2018 в 18:00