отправка задания mpi в кластере lsf

Я обычно обрабатываю данные по университетскому кластеру. Большинство заданий, выполненных ранее, основаны на параллельной пакетной оболочке (разделите задание на несколько пакетов, а затем отправьте их параллельно). Пример этой оболочки показан ниже:

#! /bin/bash
#BSUB -J model_0001
#BSUB -o z_output_model_0001.o
#BSUB -n 8
#BSUB -e z_output_model_0001.e
#BSUB -q general
#BSUB -W 5:00
#BSUB -B
#BSUB -N
some command

На этот раз я тестирую задание mpi (на основе mpi4py). Код был протестирован на моем ноутбуке, работающем над одной задачей (1 задача использует 4 процессора для запуска). Теперь мне нужно отправить многозадачные (30) задания в кластер (1 задание, использующее 8 процессоров для запуска). Мой план таков: подготовьте 30 подобных файлов оболочки, указанных выше. команда в каждом заполнении оболочки - это моя команда mpi (что-то вроде «mpiexec -n 8 mycode.py args»). И каждая оболочка резервирует 8 процессоров.

Я представил вакансии. Но я не уверен, правильно ли я поступаю. Он работает, но я не уверен, работает ли он на основе mpi. Как я могу проверить? Вот еще 2 вопроса:

1) Для обычных параллельных заданий обычно существует ограничение на число, которое я могу зарезервировать для одной задачи — 16. Выше 16 мне никогда не удавалось. Если я использую mpi, могу ли я зарезервировать больше? Потому что mpi отличается. В принципе мне не нужна постоянная память.

2) Я думаю, что в кластере есть правило приоритета. Для обычных параллельных заданий, обычно когда я резервирую больше процессоров для 1 задачи (скажем, 10 задач и 16 процессоров на задачу), это требует гораздо большего времени ожидания в очереди, чем резервирование меньшего количества процессоров для одной задачи (скажем, разделить каждую задачу на 8 подзадач). -задач (всего 80 подзадач) и 2 процессора на подзадачу). Если я могу зарезервировать больше процессоров для mpi. Влияет ли это на это правило? Я боюсь, что буду ждать вечность...


person Kenny    schedule 06.10.2014    source источник
comment
Наверняка это вопрос к вашему администратору кластера? Точное решение полностью зависит от промежуточного программного обеспечения, которое работает в вашем кластере, и никто здесь не знает, что это такое.   -  person talonmies    schedule 06.10.2014
comment
Ну, lsf в заголовке вопроса и тег lsf предполагают, что указанное промежуточное программное обеспечение является платформой LSF. ;-)   -  person janneb    schedule 06.10.2014
comment
Ты прав. Я только что нашел здесь более полезное, чем ИТ-поддержка университета. Для университета, если проблема больше связана с моими собственными знаниями в области кодирования, обычно отсутствует полезный ответ. Может быть, они получали так много билетов каждый день. Вот почему я сначала пытаюсь увидеть, нет ли у меня какой-либо очевидной ошибки кодирования для использования mpi. Или, может быть, кластеры между университетами чем-то похожи? В любом случае, ваш комментарий правильный. Я свяжусь с ними.   -  person Kenny    schedule 06.10.2014


Ответы (1)


Что ж, увеличение «#BSUB -n» — это именно то, что вам нужно сделать. Эта опция сообщает, сколько «слотов» выполнения вы резервируете. Итак, если вы хотите запустить задание MPI с 20 рангами, вам нужно

#BSUB -n 20

IIRC слоты выполнения не нужно выделять на одном и том же узле, LSF будет выделять слоты из такого количества узлов, которое требуется для удовлетворения запроса. Но я уже давно не использовал LSF, и в настоящее время у меня нет доступа к системе, использующей его, поэтому я могу ошибаться (и это может зависеть от конфигурации локального кластера LSF).

person janneb    schedule 06.10.2014
comment
Спасибо. Я могу попробовать. Но мой опыт показывает, что я могу зарезервировать максимум 16 процессоров для одной задачи. Это основано на моем простом параллельном пакетном опыте. Это также влияет на mpi? - person Kenny; 06.10.2014
comment
Я попробовал -n 8, и это работает. Затем я переключаюсь на 20. Как я уже сказал, он кажется отложенным навсегда. Это меня смущает, так как мне не нужна непрерывная память, и для однопроцессорного задания я могу одновременно запускать как минимум 512, почему mpi не может зарезервировать 20... - person Kenny; 06.10.2014
comment
Опцию -R "span[ptile=#slots]" можно использовать для указания группировки слотов. - person Hristo Iliev; 06.10.2014
comment
Большое Вам спасибо. Решено с помощью -R! - person Kenny; 06.10.2014