原解決方案由 HPC 高級合作伙伴解決方案架構(gòu)師 Dnyanesh Digraskar 和高級合作伙伴開發(fā)經(jīng)理 Amit Varde 撰寫發(fā)布在 AWS HPC Blog
本文在速石平臺FCC-E環(huán)境中復(fù)現(xiàn).
先說結(jié)論 : 同樣運行10個Job,每個144個MPI任務(wù). 通過 lsdyna-spotless 執(zhí)行的任務(wù)相比按需集群, 作業(yè)總時長增加了7%, 但成本降低了63%.

解決方案簡述
lsdyna-spotless 是一組工具包, 用來在AWS Spot實例上運行LS-DYNA仿真. Github地址 : lsdyna-spotless 它的架構(gòu)如下 :

任務(wù)按以下步驟執(zhí)行 :
- 用戶在Head Node 上提交一個/一組 Ansys LS-DYNA作業(yè)
- 手動指定拆分為多個MPI任務(wù)
- 在每個計算節(jié)點都存活一個 poll , 用來輪訓所有MPI任務(wù)的EC2元數(shù)據(jù)中的實例中斷信號
- 在接收到中斷信號時, 正在進行的模擬/仿真會創(chuàng)建一個檢查點(checkpoint)并將其保存到共享位置 /shared 中, 這里head節(jié)點和compute節(jié)點都能夠訪問
- 作業(yè)守護進程, job-restarter, 能夠在計算資源恢復(fù)(重新申請)后, 重新將任務(wù)提交到隊列中
環(huán)境設(shè)置
- 下載安裝最新的Ansys LS-DYNA版本
- 從lsdyna-spotless的github地址下載工具包并解壓
- 在 env-vars.sh 中配置自定義選項
- 講 MPPDYNA 變量設(shè)置為Ansys LS-DYNA 可執(zhí)行文件的路徑
- 在環(huán)境變量中配置License服務(wù)器以及Slurm隊列
export LSTC_LICENSE_SERVER="IP-address-license-server"
export SQQUEUE="your-SLURM-queue-name"
- 使其它相關(guān)環(huán)境變量生效
source env-vars.sh
- 將解壓后的lsdyna-spotless工具包復(fù)制到以下目錄
cp * /shared/ansys/bin
提交任務(wù)
假設(shè)每個作業(yè)都位于其自己的唯一命名目錄中,并具有自己的 SLURM 作業(yè)腳本, Ansys LS-DYNA 的main input deck 為 main.k 提交作業(yè)命令 :
start-jobs 2 72 spotq.slurm job-1 job-2 job-3
提交的作業(yè) 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
如果需要停止任務(wù),請執(zhí)行:
stop-jobs
統(tǒng)計由于Spot中斷造成的時間開銷
利用calc-timing 統(tǒng)計任務(wù)的完成時間, 本次在2臺c5.18xlarge Spot上啟用了一組10個job,每個job包含144個MPI任務(wù), 以下是10個job運行時間輸出 :

結(jié)論
通過合理的配置, 在Spot實例上運行Ansys LS-DYNA仿真, 能夠節(jié)約高達60%的成本
參考文檔
Amazon EC2 Spot 實例
Spot 白皮書
LS-DYNA spotless Github
Cost-optimization on Spot Instances using checkpoint for Ansys LS-DYNA
關(guān)于fastone云平臺在EDA及其他行業(yè)應(yīng)用上的具體表現(xiàn),可以點擊以下應(yīng)用名稱查看:
- END -
我們有個為應(yīng)用定義的EDA云平臺
集成多種EDA應(yīng)用,大量任務(wù)多節(jié)點并行
應(yīng)對短時間爆發(fā)性需求,連網(wǎng)即用
跑任務(wù)快,原來幾個月甚至幾年,現(xiàn)在只需幾小時
5分鐘快速上手,拖拉點選可視化界面,無需代碼
支持高級用戶直接在云端創(chuàng)建集群
掃碼免費試用,送300元體驗金,入股不虧~
