【问题标题】:How do I use sbatch with SLURM and a makefile?如何将 sbatch 与 SLURM 和 makefile 一起使用?
【发布时间】:2014-09-30 09:35:50
【问题描述】:

我正在尝试向 SLURM 提交批处理作业,但我不断收到 JobState=FAILED Reason=NonZeroExitCode。我可以在常规 g++ 上很好地编译和运行代码,但我必须使用 SLURM 来完成学校的作业。我以为我在正确地运行它们,我从根目录得到了一个讨厌的语法,告诉我退出在登录节点上运行的脚本。任何帮助,将不胜感激。这是我的批处理文件和我的 Makefile:

#!/bin/bash
#SBATCH -N1 -n1 --mem-per-cpu=100m -t00:05:00
echo "#SBATCH -N1 -n1 --mem-per-cpu=100m -t00:05:00 --qos=test"
cd /home/<username>/AFS/cse_430/Project1/Parallel/
module load gcc/4.9.1
make clean
make all
echo "Running single threaded code..."
./run "SeqCA(57;4,10).txt"
echo "Done experiment. Check log.txt"

生成文件:

EXEC=run    # name of executable is run
CC=g++      # compile with g++
CFLAGS=-std=c++11 -fopenmp -c -Wall 

all: $(EXEC)

$(EXEC): main.o threeSeq.o fourSeq.o fiveSeq.o
    $(CC) -fopenmp -o $(EXEC) main.o threeSeq.o fourSeq.o fiveSeq.o 

main.o: main.cpp
    $(CC) $(CFLAGS) main.cpp

threeSeq.o: threeSeq.cpp threeSeq.hpp
    $(CC) $(CFLAGS) threeSeq.cpp

fourSeq.o: fourSeq.cpp fourSeq.hpp
    $(CC) $(CFLAGS) fourSeq.cpp

fiveSeq.o: fiveSeq.cpp fiveSeq.hpp
    $(CC) $(CFLAGS) fiveSeq.cpp

clean: 
    rm -f *.o
    rm -f $(EXEC)
    rm -f *log.txt

【问题讨论】:

    标签: c++ batch-file makefile slurm sbatch


    【解决方案1】:

    您应该通过以下方式提交您的工作: sbatch jobscript.sh

    还要检查来自 slurm 的输出文件,以检查作业执行中的错误。默认情况下,slurm 将 stdout 和 err 存储在 slurm-.out 文件中

    【讨论】:

    • 这很奇怪......它说有一个 slurm 输出文件,但它不存在。我上面的脚本名称为 job2.sh,我使用 sbatch job2.sh 提交它。我的程序接收一个输入文件并在其上进行计算。也许这引起了问题?我看过示例脚本,我的看起来是正确的。
    • 您从哪里提交工作?你在哪条路上?该路径应该可以从任何计算节点访问,以便 slurm 能够创建输出文件。
    • 路径在我服务器上的一个文件夹中:hphn1.a2c2.asu.edu/home/<username>/AFS/cse_430/Project1/…
    • 如果路径可以从所有节点访问,一切看起来都很好。提交时可以看到队列中的作业吗?尝试使用“-o”标志指定输出文件
    • 我可以看到它在排队,但是当我打电话给scontrol show job &lt;job number&gt;时它通常只是失败了
    猜你喜欢
    • 2019-04-03
    • 2016-05-18
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2021-01-19
    • 2014-08-21
    • 2021-07-26
    相关资源
    最近更新 更多