集群的登录节点设置有资源限制,请勿在登录节点进行大量计算。
集群的计算节点默认不允许用户直接登录,对需要交互式处理的程序,在登录到集群后,使用
salloc
命令分配节点,然后再ssh到分配的节点上进行处理:
这里注意一下,我们可以直接ssh到我们的节点,区别于上医的服务器,我们可以直接进行ssh。如:
计算完成后,使用
exit
命令推出节点。
注意需要如果是salloc得到的节点,则需要
exit
两次,第一次
exit
是从计算节点退出到登录节点,第二次
exit
是释放所申请的资源。
可以通过将程序执行命令放入作业提交脚本,并通过
sbatch
命令作业提交的方式在集群中进行计算。
一个简单的脚本示例如下:
#!/bin/bash
#SBATCH --job-name=JOBNAME
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=10
#SBATCH --time=2:00:00
### 程序的执行命令
python count.py
上述中
JOBNAME
:作业的作业名。
上述中
nodes
指定该作业需要2个节点数。
上述中
ntasks-per-node
每个节点所运行的进程数。
上述中
time
作业最大的运行时间。
第一行表示这是一个bash脚本,第3-6行以
#SBATCH
开头的命令表示这些是需要slurm系统处理的参数。
如下图所示,通过
sbatch+作业脚本名
提交作业,系统会返回作业编号,通过
squeue
命令可以看到作业运行状态,等作业执行完成后,默认会把程序的输出放到
slurm-作业编号.out
的文件中,可通过该文件查看程序的输出。
GPU集群作业提交