• 首页

  • 产品
  • 解决方案
  • 案例
  • BLOG

  • 资源中心
  • 关于速石
联系我们021-31263638

利用 Spot计算资源降低Ansys LS-DYNA运行成本

原解决方案由 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 它的架构如下 :

任务按以下步骤执行 :

  1. 用户在Head Node 上提交一个/一组 Ansys LS-DYNA作业
  2. 手动指定拆分为多个MPI任务
  3. 在每个计算节点都存活一个 poll , 用来轮训所有MPI任务的EC2元数据中的实例中断信号
  4. 在接收到中断信号时, 正在进行的模拟/仿真会创建一个检查点(checkpoint)并将其保存到共享位置 /shared 中, 这里head节点和compute节点都能够访问
  5. 作业守护进程, job-restarter, 能够在计算资源恢复(重新申请)后, 重新将任务提交到队列中

环境设置

  1. 下载安装最新的Ansys LS-DYNA版本
  2. 从lsdyna-spotless的github地址下载工具包并解压
  3. 在 env-vars.sh 中配置自定义选项
  4. 讲 MPPDYNA 变量设置为Ansys LS-DYNA 可执行文件的路径
  5. 在环境变量中配置License服务器以及Slurm队列
      export LSTC_LICENSE_SERVER="IP-address-license-server"
      export SQQUEUE="your-SLURM-queue-name"
  1. 使其它相关环境变量生效
      source env-vars.sh
  1. 将解压后的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元体验金,入股不亏~


  • 在线咨询

  • 公众号

    扫码关注我们

  • 微信咨询

    添加小F@速石科技

    说出你的应用

    我们就有故事

  • 免费试用

立即免费试用

限时领取 200元 体验金