Как использовать запрос 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