高性能计算中的作业管理与文件操作
1. 长时间运行作业的自动重启
大多数高性能计算站点会限制作业的最大运行时间。对于长时间运行的作业,通常采用的方法是应用程序定期将其状态写入文件,然后提交一个后续作业,该作业读取该文件并从该点继续运行,这个过程被称为检查点和重启。
1.1 检查点和重启的作用
检查点过程对于处理批处理作业的有限时间以及处理系统崩溃或其他作业中断非常有用。在少量重启的情况下,你可以手动重启作业,但随着重启次数的增加,这将成为一个负担。因此,有必要实现自动重启功能,不过这需要对应用程序和批处理脚本进行修改。
1.2 示例批处理脚本
以下是一个用于 Slurm 的批处理脚本示例:
#!/bin/sh
#SBATCH -N 1
#SBATCH -n 4
#SBATCH --signal=23@160
#SBATCH -t 00:08:00
# Do not place bash commands before the last SBATCH directive
# Behavior can be unreliable
NUM_CPUS=${SLURM_NTASKS}
OUTPUT_FILE=run.out
EXEC_NAME=./testapp
MAX_RESTARTS=4
if [ -z ${COUNT} ]; then
export COUNT=0
fi
((COUNT++))
echo "Restart COUNT is ${COUNT}"
if [ ! -e DONE ]; then
if [ -e RESTART
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



