SLURM смущающее параллельное представление, требующее слишком много ресурсов - PullRequest
0 голосов
/ 28 августа 2018

, поэтому у меня есть следующий скрипт отправки:

#!/bin/bash
#
#SBATCH --job-name=P6
#SBATCH --output=P6.txt
#SBATCH --partition=workq
#SBATCH --ntasks=512
#SBATCH --time=18:00:00
#SBATCH --mem-per-cpu=2500
#SBATCH --cpus-per-task=1
#SBATCH --array=1-512

srun ./P6 $SLURM_ARRAY_TASK_ID

Что я хочу сделать, так это запустить 512 экземпляров программы P6 с аргументом от 1 до 512, и, насколько я знаю, вышеприведенное представление делает это. Тем не менее, после проверки Squeue и Sacm, кажется, SLURM назначил 512 процессоров для каждой задачи!

Что я сделал не так?

1 Ответ

0 голосов
/ 28 августа 2018

Вы попросили 512 заданий для каждой работы. Попросите один (или номер, который вы считаете подходящим для вашего кода):

#SBATCH --ntasks=1

Кстати, в вашем скрипте отправки есть несколько мелких проблем. Все задания в массиве заданий будут называться одинаково (что на самом деле не является проблемой), но они также будут использовать файл stdout, поэтому вы получите смешанную информацию обо всех заданиях в P6.txt. Я бы посоветовал вам различать их с помощью JobID или TaskId (% j /% A /% a).

Кроме того, вы не определяете стандартное назначение ошибок, поэтому, если что-то не получится или будет записано в stderr, вы потеряете эту информацию. Я рекомендую также определить стандартную ошибку (#SBATCH --error=P6.txt.%j).

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

...