Qsub для любого узла с более чем n ядрами

У меня есть программа, которая распараллеливается с использованием MPI. Он считает, что он может работать через несколько узлов на нашей сетке HPC (CentOS 6.6), когда на самом деле он успешно работает только на нескольких ядрах одного и того же вычислительного узла .

например, если я qsub задание на сетку с запросом на 20 ядер, и Grid Engine решает разбить его на два разных узла, программа не работает. Однако, если есть узел с 20 ядрами, и Grid Engine отправляет все это на тот, программа запускается успешно. Скрипт qsub содержит команду #$ -pe mpi 20 для выбора количества ядер.

Поэтому на данный момент я делаю qstat -f -u "*" чтобы вручную идентифицировать вычислительный узел с 20 доступными ядрами и отправить на этот узел с qsub -q general.q@node-XX

То, что я ищу, это способ сказать Grid Engine подождать и только отправить задание на один вычислительный узел, у которого есть необходимое количество доступных ядер. Это позволит мне автоматизировать подачу моей работы.

Я рассматриваю возможность написания сценария bash для анализа команды qstat -f -u "*" , но должно быть более элегантное решение. Я просмотрел руководство qsub, но не могу найти подходящий аргумент или аргумент командной строки.

В настоящее время я не могу изменить сама программа.

Вот некоторая информация о различных версиях программного обеспечения, которые у меня имеются:

Информация о MPI / gridengine:

 > ompi_info | grep gridengine MCA ras: gridengine (MCA v2.0, API v2.0, Component v1.6.2) 

Версия для сетевого решетки: OGS / GE 2011.11p1

  • Konsole работает, gnome-terminal нет?
  • в чем разница между qsub и ./
  • Вывод экрана в столбцы, чтобы использовать ширину экрана и избежать прокрутки
  • Удаленная компиляция и запуск программы с использованием ssh и экрана
  • значения статистики вычислительных узлов
  • Обобщающий файл задания qsub для Grid Engine для нескольких программ и имен входных файлов
  • перенаправление stdout. sh: ресурс временно недоступен
  • One Solution collect form web for “Qsub для любого узла с более чем n ядрами”

    Чтобы Gridengine планировал вашу 20-разрядную работу на одном узле, вам нужно было бы создать новую параллельную среду или настроить ту, которую вы используете. Необходимая настройка

     allocation_rule $pe_slots 

    От man sge_pe :

    Если используется специальный знаменатель $ pe_slots, весь набор процессов, заданный с помощью переключателя qsub (1) -pe, должен быть выделен на одном хосте.

    Не забудьте добавить новый PE в свою очередь.

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

    Interesting Posts

    Выполнить команду выбора рейнджера

    Копирование глубоко вложенной структуры каталогов

    Почему «tail -f … | хвост "не может произвести какой-либо выход?

    Определите, какой процесс занимает большую часть полосы пропускания диска?

    cshrc выполняет bashrc внутри себя?

    POSIX Awk на Solaris 11?

    Попытка установить раскладку клавиатуры с помощью конфигурации Xorg, но она не работает

    Установка приложения для запуска в файле в определенной папке?

    Ошибка при создании виртуальной среды с помощью venv

    Когда пустая строка обозначает текущий каталог?

    powerline добавляет имя хоста при входе через ssh

    Удостоверяются ли явные отвалы ядра конфиденциальной информацией?

    Как проверить целостность пакета debian-keyring Debian?

    Есть ли способ полностью отключить исходящую оппортунистическую поддержку TLS в SendMail?

    Ноутбук HP отказался загружать компакт-диски Arch или Fedora, но загружает файлы на основе Debian

    Linux и Unix - лучшая ОС в мире.