Как использовать запрос slurm только для одного ядра вместо узла или сокета?

Я написал сценарии Perl для анализа моих данных моделирования. Это не параллельная программа. В кластере восемь узлов. Каждый из узлов имеет 2 сокета, который обладает 10 ядрами. Я хочу отправить свою работу с помощью Slurm и запросить только одно ядро ​​для проведения анализа. Таким образом, я могу отправить больше (20) рабочих мест на одном узле. Однако я не могу реализовать эту цель. Ниже мои сценарии.

#!/bin/sh
#SBATCH -n 1
#SBATCH --mem-per-cpu=10gb
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH -t 45-00:00:00
#SBATCH -J 9430%j
#SBATCH -o 9430.out
#SBATCH -e 9430.err

/cm/shared/scripts/wcnqn.auto.pl

куда wcnqn.auto.pl это моя программа 9430 это atomID, который используется в качестве имени файла.

Системная информация:

  • CentOS 7
  • Управление кластерами: Bright Cluster Manager
  • Количество узлов: 8
  • Количество сокетов на узел: 2
  • Количество ядер на сокет:10
  • Оперативная память на узел: 125 ГБ

Любая помощь и дальнейшие комментарии будут высоко оценены.

1 ответ

Ваш сценарий выглядит хорошо.

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

В более новых версиях Slurm параметр OverSubscribe раздела

Управляет способностью раздела выполнять более одного задания одновременно на каждом ресурсе (узел, сокет или ядро ​​в зависимости от значения Select ‑ TypeParameters)

См. Страницу руководства slurm.conf

#SBATCH -n 1
#SBATCH --mem-per-cpu=10gb
#SBATCH --ntasks=1

-n а также --ntasks то же самое, вы должны использовать только один из них. Смотрите страницу руководства sbatch

Другие вопросы по тегам