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

  • Grid Engine для программы, которая нуждается в X11, но не требует ввода пользователя
  • Konsole работает, gnome-terminal нет?
  • Удаленная компиляция и запуск программы с использованием ssh и экрана
  • в чем разница между qsub и ./
  • Обобщающий файл задания 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

    Испытание, если целые ряды строго возрастают

    Можно ли отправить событие клавиатуры в фоновый скрипт, ожидающий взаимодействия с пользователем? (Использование 'read')

    arm-eabi-gcc: невозможно выполнить двоичный файл

    Как переименовать файл в случайный GUID?

    Являются ли ограничения в linux (например, контролируемыми ulimit или /etc/security/limits.conf) для каждого пользователя или для каждого пользователя за процесс?

    Карта Capslock для управления на Wayland

    Как сделать патч не настолько строгим?

    Как безопасно удалить каталог, не оставляя следа?

    Преобразование всех изображений, отличных от JPG, в JPG

    autossh во многих портах LocalForward

    Невозможно использовать vi в однопользовательском режиме

    тайм-аут вызывает, когда цикл чтения заканчивается, когда `cat` отключен

    Полностью отключить функцию рабочего пространства

    Настройка входа в систему XScreenSaver

    Выравнивание выходного файла скрипта Bash

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