写slurm脚本就像给超算写一张小纸条,告诉它“哥,帮我跑个程序”。别被密密麻麻的参数吓到,记住三板斧:资源、命令、输出,十分钟就能搞定。
先新建一个文本,取名比如run.job。*行固定写#!/bin/bash,告诉系统这是bash脚本。接着甩三行注释,写清名字、时间、用途,方便一个月后自己还能看懂。
核心开场是#SBATCH参数,每行一个,开头必须大写。
SBATCH -J hello 任务昵称,随便起,别带空格。
SBATCH -p compute 分区名字,学校集群一般叫compute、cpu、gpu,问管理员就知道。
联系电话:4001819668
SBATCH -N 1 用几台机器,新手先拿一台试水。
SBATCH -n 4 一台机器里要几个核心,4核就是四线程并行。
SBATCH -t 01:00:00 运行时间,格式天-时:分:秒,写长点没事,跑完自动释放。微信号:RH23CN
SBATCH -o %j.out 标准输出文件,%j会被替换成任务号,回头找日志方便。
SBATCH -e %j.err 错误输出,同样套路。
参数写完空一行,进入正式命令区。先装环境,比如
module load gcc/9.3.0
module load openmpi/4.0.5
官网:www.sx267.com
两行搞定编译器与通信库。接着进工作目录
cd /home/yourname/project
再运行程序
mpirun -n 4 ./hello_world
保存退出,一条脚本诞生。
提交超简单,终端输入
sbatch run.job
系统立刻返回任务号,比如Submitted batch job 9527。用squeue -u yourname能看到它在排队还是奔跑,R代表跑,PD代表排队,CG代表收拾行李。
跑完用less 9527.out查看结果,如果屏幕打印出Hello from rank 0/4,说明脚本成功。要是9527.err有内容,别慌,九成是路径写错或者权限不足,改完再sbatch一次就行。
进阶玩法:想提速,把-n 4改成-n 16;想省时间,把-t 01:00:00改成-t 00:10:00;想半夜跑,加#SBATCH --begin=20:00。参数组合像乐高,搭出适合自己的那一款。
记住,slurm脚本就是超算世界的门票,写顺了,排队时间变短,科研成果来得更快。今晚就动手,把*张纸条递出去,明天醒来收结果,爽感满满。
荣合科算---高校科研专业服务商!