salloc
申请计算节点,然后登录到申请到的计算节点上运行指令
一个简单的例子
申请一个计算节点6个核心,运行时间为2小时,并跳转到该节点上运行程序
salloc -p compute -N 1 -n 1 -c 6 -t 2:00:00 # salloc 申请成功后会返回申请到的节点和作业ID等信息,假设申请到的是c02节点,作业ID为1078858。如无法获取节点信息,请执行命令squeue进行查询。 ssh c02 # 直接登录到刚刚申请到的节点c02调式作业 scancel 1078858 # 计算资源使用完后取消作业 squeue -j 1078858 # 查看作业是否还在运行,确保作业已经退出,避免产生不必要的费用
一个GPU节点的例子
申请一个gpu节点,16个核心,1块GPU卡,运行时间为2天,并跳转到节点上运行程序
salloc -p gpu -N 1 -n 1 -c 16 --gres=gpu:1 -t 2-00:00:00 # 假设申请成功后返回的作业号为1078859,申请到的节点是g05。如无法获取节点信息,请执行命令squeue进行查询。 ssh g05 # 登录到gpu05上调式作业 scancel 1078859 # 计算资源使用完后取消作业 squeue -j 1078859 # 查看作业是否还在运行,确保作业已经退出,避免产生不必要的费用
注意: 由于GPU节点上的GPU卡是共享的,所以在申请GPU节点时,需要指定GPU卡的数量,否则会报错
一个跨节点使用案例
申请两个大内存节点,每个节点12个核心,运行时间为6小时20分钟
salloc -p big -N 2 -n 12 -t 6:20:00 # salloc 申请成功后会返回申请到的节点和作业ID等信息,假设申请到的是b[05-06]节点,作业ID为1078857。如无法获取节点信息,请执行命令squeue进行查询。 # 这里申请两个节点,每个节点12个进程,每个进程一个核心 # 根据需求导入MPI环境 module load openmpi4/4.1.1 module load mvapich2/2.3.6 # 根据以下命令生成MPI需要的machine file srun hostname -s | sort -n > slurm.hosts mpirun -np 24 -machinefile slurm.hosts hostname scancel 1078857 # 计算资源使用完后取消作业 squeue -j 1078857 # 查看作业是否还在运行,确保作业已经退出,避免产生不必要的费用
注意: 由于MPI的运行机制,需要在申请节点时指定每个节点的进程数,否则会报错