Matlab がコンピューティング クラスターでリソースを利用する方法には制限があるため、それぞれが特定のノードのすべてのコアを使用するいくつかのジョブを作成したいと考えています。--array オプションを他のパラメーターと組み合わせて使用することで、各ジョブを個別のノードで確実に取得できます。ただし、 -c オプションを使用して特定のノードのコアを最大化しようとしているにもかかわらず、何らかの理由で、クラスターの slurm スケジュールが既に使用されているノードにジョブを配置しています。
#SBATCH --array=1-2
#SBATCH -t 24:00:00
#SBATCH -n 1
#SBATCH -c 20
#SBATCH -N 1
#SBATCH --exclusive
#SBATCH --mem-per-cpu 4000
module add ~/matlab/2014a
srun matlab -nodisplay -r "myfun($SLURM_ARRAY_TASK_ID);quit"
--exclusive オプションを使用しても何も変わらないようです。私は単一のタスクでも同じ問題を抱えていました。私の回避策は、使用されていないノードを確認し、 --nodelist オプションを使用して具体的に要求することでした。--array を --nodelist と組み合わせて使用して、リスト内の各ジョブとノードが 1 対 1 で一致するようにする方法はありますか? 現在、SLURM は各ジョブにすべてのノードを使用しようとしています。