Slurm не может запустить более одной задачи sbatch - PullRequest
0 голосов
/ 14 февраля 2019

Я установил Slurm в двухузловом кластере.Оба узла являются вычислительными узлами, один также является контроллером.Я могу успешно запустить srun с несколькими заданиями одновременно.Я выполняю задания на графическом процессоре и подтвердил, что могу получить несколько заданий на нескольких графических процессорах с srun, вплоть до количества графических процессоров в системах.

Однако, когда я пытаюсь запустить sbatch с одним и тем же тестовым файлом, онбудет запускаться только одно пакетное задание, и оно будет выполняться только на вычислительном узле, который также является контроллером.Другие сбои, с ExitCode 1: 0 в сводке sacct.Если я попытаюсь заставить его работать на вычислительном узле, который не является контроллером, он не запустится и покажет код выхода 1: 0.Однако простое использование srun будет работать на любом вычислительном узле.

Я убедился, что файлы /etc/slurm/slurm.conf соответствуют спецификациям машин.Вот файл .job sbatch, который я использую:

#!/bin/bash
#SBATCH --job-name=tf_test1
#SBATCH --output=/storage/test.out
#SBATCH --error=/storage/test.err
#SBATCH --ntasks=2
#SBATCH --cpus-per-task=1
#SBATCH --mem-per-cpu=2000
##SBATCH --mem=10gb
#SBATCH --gres=gpu:1
~/anaconda3/bin/python /storage/tf_test.py

Может быть, есть некоторые ограничения в sbatch, о которых я не знаю?

Ответы [ 3 ]

0 голосов
/ 29 марта 2019

Если использование srun на втором узле работает и использование sbatch со сценарием отправки, о котором вы упоминаете, завершается неудачей без какого-либо записанного вывода, наиболее вероятной причиной будет то, что /storage не существует или недоступен для записипользователь, на втором узле.

Журналы slurmd на втором узле должны быть явными об этом.Расположение по умолчанию /var/log/slurm/slurmd.log, но проверьте вывод scontrol show config| grep Log для получения окончательной информации.

Другая вероятная причина, которая приводит к тому же поведению, будет то, что пользователь не определен или имеет другой UID навторой узел (но тогда srun тоже потерпит неудачу)

0 голосов
/ 14 августа 2019

@ damienfrancois ответ был самым близким и, возможно, даже правильным.Убедившись, что местоположение / storage было доступно на всех узлах, все работает с sbatch.Самая большая проблема заключалась в том, что расположение / storage является общим через NFS, но оно было доступно только для чтения для вычислительных узлов.Это должно было быть изменено в / etc / exports так, чтобы оно выглядело примерно так:

/storage *(rw,sync,no_root_squash)

До того, как это было ro ...

У меня есть файл задания, который работаеттоже немного отличается.Вот текущий файл .job:

#!/bin/bash
#SBATCH -N 1      # nodes requested
#SBATCH --job-name=test
#SBATCH --output=/storage/test.out
#SBATCH --error=/storage/test.err
#SBATCH --time=2-00:00
#SBATCH --mem=36000
#SBATCH --qos=normal
#SBATCH --mail-type=ALL
#SBATCH --mail-user=$USER@nothing.com
#SBATCH --gres=gpu
srun ~/anaconda3/bin/python /storage/tf_test.py
0 голосов
/ 24 февраля 2019

sbatch создает распределение заданий и запускает так называемый «пакетный шаг».Если вы не знаете, что такое шаг задания, я рекомендую эту страницу: https://slurm.schedmd.com/quickstart.html

На шаге пакета выполняется сценарий, переданный ему из sbatch.Единственный способ запустить дополнительные шаги задания - вызвать srun внутри пакета.В вашем случае это будет

srun ~/anaconda3/bin/python /storage/tf_test.py

. Это создаст шаг задания, выполняемый tf_test.py для каждой задачи в распределении.Обратите внимание, что хотя команда такая же, как и при непосредственном запуске srun, она обнаруживает, что находится внутри выделения, через переменные среды из sbatch.Вы можете разделить распределение на несколько этапов работы, запустив srun с флагами, такими как -n[num tasks].то есть

#!/bin/bash
#SBATCH --ntasks=2
srun --ntasks=1 something.py
srun --ntasks=1 somethingelse.py

Я не знаю, возникают ли у вас какие-либо другие проблемы, потому что вы не публиковали никаких других сообщений об ошибках или журналах.

...