原解决方案由 HPC 高级合作伙伴解决方案架构师 Dnyanesh Digraskar 和高级合作伙伴开发经理 Amit Varde 撰写发布在 AWS HPC Blog
本文在速石平台FCC-E环境中复现.
先说结论 : 同样运行10个Job,每个144个MPI任务. 通过 lsdyna-spotless 执行的任务相比按需集群, 作业总时长增加了7%, 但成本降低了63%.
解决方案简述
lsdyna-spotless 是一组工具包, 用来在AWS Spot实例上运行LS-DYNA仿真. Github地址 : lsdyna-spotless 它的架构如下 :
任务按以下步骤执行 :
- 用户在Head Node 上提交一个/一组 Ansys LS-DYNA作业
- 手动指定拆分为多个MPI任务
- 在每个计算节点都存活一个 poll , 用来轮训所有MPI任务的EC2元数据中的实例中断信号
- 在接收到中断信号时, 正在进行的模拟/仿真会创建一个检查点(checkpoint)并将其保存到共享位置 /shared 中, 这里head节点和compute节点都能够访问
- 作业守护进程, job-restarter, 能够在计算资源恢复(重新申请)后, 重新将任务提交到队列中
环境设置
- 下载安装最新的Ansys LS-DYNA版本
- 从lsdyna-spotless的github地址下载工具包并解压
- 在 env-vars.sh 中配置自定义选项
- 讲 MPPDYNA 变量设置为Ansys LS-DYNA 可执行文件的路径
- 在环境变量中配置License服务器以及Slurm队列
export LSTC_LICENSE_SERVER="IP-address-license-server"
export SQQUEUE="your-SLURM-queue-name"
- 使其它相关环境变量生效
source env-vars.sh
- 将解压后的lsdyna-spotless工具包复制到以下目录
cp * /shared/ansys/bin
提交任务
假设每个作业都位于其自己的唯一命名目录中,并具有自己的 SLURM 作业脚本, Ansys LS-DYNA 的main input deck 为 main.k 提交作业命令 :
start-jobs 2 72 spotq.slurm job-1 job-2 job-3
提交的作业 spotq.slurm 示例为:
#!/bin/bash
#SBATCH -J job # Job name
#SBATCH -o job.%j.out # Name of stdout output file
INPUTDECK="main.k"
if ls d3dump* 1>/dev/null 2>&1; then
mode="r=$(ls -t d3dump* | head -1 | cut -c1-8)"
op="restart"
else
mode="i=$INPUTDECK"
op="start"
fi
# create/overwrite checkpoint command file
echo "sw1." >switch
# launch monitor tasks
job_file=$(scontrol show job $SLURM_JOB_ID | awk -F= '/Command=/{print $2}')
srun --overcommit --ntasks=$SLURM_JOB_NUM_NODES --ntasks-per-node=1 $SQDIR/bin/poll "$SLURM_JOB_ID" "$SLURM_SUBMIT_DIR" "$job_file" &>/dev/null &
# Launch MPI-based executable
echo -e "$SLURM_SUBMIT_DIR ${op}ed: $(date) | $(date +%s)" >>$SQDIR/var/timings.log
srun --mpi=pmix_v3 --overcommit $MPPDYNA $mode
echo -e "$SLURM_SUBMIT_DIR stopped: $(date) | $(date +%s)" >>$SQDIR/var/timings.log
如果需要停止任务,请执行:
stop-jobs
统计由于Spot中断造成的时间开销
利用calc-timing 统计任务的完成时间, 本次在2台c5.18xlarge Spot上启用了一组10个job,每个job包含144个MPI任务, 以下是10个job运行时间输出 :
结论
通过合理的配置, 在Spot实例上运行Ansys LS-DYNA仿真, 能够节约高达60%的成本
参考文档
Amazon EC2 Spot 实例
Spot 白皮书
LS-DYNA spotless Github
Cost-optimization on Spot Instances using checkpoint for Ansys LS-DYNA
关于fastone云平台在EDA及其他行业应用上的具体表现,可以点击以下应用名称查看:
- END -
我们有个为应用定义的EDA云平台
集成多种EDA应用,大量任务多节点并行
应对短时间爆发性需求,连网即用
跑任务快,原来几个月甚至几年,现在只需几小时
5分钟快速上手,拖拉点选可视化界面,无需代码
支持高级用户直接在云端创建集群
扫码免费试用,送300元体验金,入股不亏~