主流CAE仿真软件如何在Linux&HPC并行计算集群上使用pbs或slurm脚本提交作业(上)?

内容介绍:

本文主要介绍,主流CAE仿真软件,如大型有限元分析软件ANSYS FLUENT、ANSYS MECHANICAL、ANSYS CFX、ANSYS LS-DYNA,ABAQUS、HFSS、NASTRAN、CST、STAR-CCM+、NUMECA、FEKO、COMSOL在HPC或Linux并行计算集群上如何使用pbs或slurm作业调度系统脚本提交作业以及如何使用软件在命令行提交作业,旨在帮助初入科研行业的小伙伴们,轻松使用以上软件在集群上快速运行自己的算例,不再为软件工具的使用或如何批量提交作业而煞费心思,从而回归到科研本身,欢迎有需要的伙伴学习!

软件下载请到HPC&Linux并行计算CAE常用软件网盘下载链接-CSDN博客下载

1. FLUENT标准测试

1.1 Fluent journal控制文件

cat truck_111m.jou
/file/rc truck_111m.cas
/solve/initialize/initialize-flow
/parallel/timer/reset
/solve/iterate 40
/parallel/timer/usage
/exit
OK

1.2 slurm测试脚本范例

#!/bin/bash
#SBATCH -J truck_14m
#SBATCH -N 16
#SBATCH -n 512
#SBATCH -p sugon
#SBATCH --ntasks-per-node=32
#SBATCH -o %x_%j.log
srun hostname | sort > hosts //获取mpi运行节点
job_name=${SLURM_JOB_NAME}
INPUT_FILE=truck_14m.jou  //fluent journal控制文件
/public/software/ANSYS/ansys2019/ansys_inc/v190/fluent/bin/fluent 3d -g -pinfiniband -t"$SLURM_NTASKS" -cnf=hosts -cflush -i "$INPUT_FILE" -mpi=intel -ssh >& "${SLURM_JOB_NAME}".txt     //命令行运行程序 3d表示三维单精度,对应的还有3ddp、2d、2ddp dp代表双精度 -g不开启图形界面 -p指定网络infiniband、ethernet -t总的核数 -cnf 运行的节点文件列表 -i journal输入文件 -mpi指定mpi类型2021以前intelmpi和ibmmpi、21以后intelmpi和openmpi -ssh节点互连认证方式 -cflush清空内存缓存

1.3 pbs测试脚本范例

#!/bin/bash
#PBS -N test  ##作业名自定义
#PBS -q normal  ##替换成实际的队列
#PBS -l nodes=node1:32 ##替换成实际的资源
#PBS -o std.out
#PBS -e std.err
NP=`cat $PBS_NODEFILE | wc -l`  ##计算总核数
cat $PBS_NODEFILE  | sort  > hosts ##获取节点列表
/public/software/ANSYS/ansys2019/ansys_inc/v190/fluent/bin/fluent 3d -g -pinfiniband -t"$SLURM_NTASKS" -cnf=hosts -cflush -i "$INPUT_FILE" -mpi=intel -ssh >& truck_111m.txt     //命令行运行程序 3d表示三维单精度,对应的还有3ddp、2d、2ddp dp代表双精度 -g不开启图形界面 -p指定网络infiniband、ethernet -t总的核数 -cnf 运行的节点文件列表 -i journal输入文件 -mpi指定mpi类型2021以前intelmpi和ibmmpi、21以后intelmpi和openmpi -ssh节点互连认证方式-cflush清空内存缓存

1.4 命令行方式测试提交作业

1)SMP运行方式:

/public/software/ANSYS/ansys2019/ansys_inc/v190/fluent/bin/fluent 3d -g -pinfiniband -t"$SLURM_NTASKS" -i "$INPUT_FILE" >& truck_111m.txt     //命令行运行程序 3d表示三维单精度,对应的还有3ddp、2d、2ddp dp代表双精度 -g不开启图形界面 -t总的核数 -i journal输入文件

2)MPP运行方式:

/public/software/ANSYS/ansys2019/ansys_inc/v190/fluent/bin/fluent 3d -g -pinfiniband -t"$SLURM_NTASKS" -cnf=hosts -cflush -i "$INPUT_FILE" -mpi=intel -ssh >& truck_111m.txt     //命令行运行程序 3d表示三维单精度,对应的还有3ddp、2d、2ddp dp代表双精度 -g不开启图形界面 -p指定网络infiniband、ethernet -t总的核数 -cnf 运行的节点文件 -i journal输入文件 -mpi类型2021以前intelmpi和ibmmpi、21以后intelmpi和openmpi -ssh节点互连认证方式

 2. MECHANICAL标准测试

2.1 slurm测试脚本范例

#!/bin/bash
#SBATCH -J V17cg
#SBATCH -N 16
#SBATCH -n 576
#SBATCH -p intel36_2
#SBATCH --ntasks-per-node=36
job_name=${SLURM_JOB_NAME}
INPUT_FILE=V17sp-5.dat
machines=""
for i in $(scontrol show hostnames=$SLURM_JOB_NODELIST); do
        machines=$machines:$i:$SLURM_NTASKS_PER_NODE
done
machnies=${machines#:}
/public/software/test/ansys192/ansys_inc/v192/ansys/bin/ansys192 -b -i "${INPUT_FILE}" -dis -mpi intelmpi -machines "$machines" >& ${job_name}.log  ##-b不开启图形界面 -i输入控制文件 -dis分布式并行 -mpi指定Mpi类型 -machines 指定节点名称和核数(node1:30:node2:30)

2.2 pbs测试脚本范例

#!/bin/bash
#PBS -N test  ##作业名自定义
#PBS -q normal  ##替换成实际的队列
#PBS -l nodes=node1:32 ##替换成实际的资源
#PBS -o std.out
#PBS -e std.err
NP=`cat $PBS_NODEFILE | wc -l`  ##计算总核数
Machines=$(cat $PBS_NODEFILE|sort|uniq -c|awk '{print $2":"$1}'|sed ':a;N;s/\n/:/g;t a') ##获取节点列表
/public/software/test/ansys192/ansys_inc/v192/ansys/bin/ansys192 -b -i "${INPUT_FILE}" -dis -mpi intelmpi -machines "$machines" >& V17cg.log  ##-b不开启图形界面 -i输入控制文件 -dis分布式并行 -mpi指定Mpi类型 -machines 指定节点名称和核数(node1:30:node2:30)

2.3 命令行方式测试提交作业

1)SMP提交方式:

/public/software/test/ansys192/ansys_inc/v192/ansys/bin/ansys192 -b -i "${INPUT_FILE}" -np 40 >& V17cg.log  ##-b不开启图形界面 -i输入控制文件 -np指定节点运行的核数可根据实际情况调整

2)MPP提交方式:

/public/software/test/ansys192/ansys_inc/v192/ansys/bin/ansys192 -b -i "${INPUT_FILE}" -dis -mpi intelmpi -machines "$machines" >& V17cg.log  ##-b不开启图形界面 -i输入控制文件 -dis分布式并行 -mpi指定mpi类型 -machines 指定节点名称和核数(node1:30:node2:30)

3. CFX标准测试

3.1 slurm测试脚本范例

#!/bin/bash
#SBATCH -J perf_Airfoil_50M_R16M
#SBATCH -N 8
#SBATCH -n 288
#SBATCH -p intel36
#SBATCH --ntasks-per-node=36
#SBATCH -w comput[175-182]
job_name=${SLURM_JOB_NAME}
INPUT_FILE=perf_Airfoil_50M_R16M.def
hosts=`srun hostname | sort | uniq -c| awk '{print $2"*"$1}'|sed ':a;N;s/\n/,/;ta'` ##获取运行节点列表
/public/software/test/ansys192/ansys_inc/v192/CFX/bin/cfx5solve -batch -affinity explicit -parallel -single -def "${INPUT_FILE}" -par-dist ${hosts} >& ${job_name}.log  ##-batch 批处理运行方式 -affinity开启进程绑定
-parallel 并行方式运行 -single单精度 -def 算例输入文件 -par-dist 运行的节点和核数

3.2 pbs测试脚本范例

#!/bin/bash
#PBS -N test  ##作业名自定义
#PBS -q normal  ##替换成实际的队列
#PBS -l nodes=node1:32 ##替换成实际的资源
#PBS -o std.out
#PBS -e std.err
NP=`cat $PBS_NODEFILE | wc -l`  ##计算总核数
machines=$(cat $PBS_NODEFILE|sort|uniq -c|awk '{print $2"*"$1}'|sed ':a;N;s/\n/:/g;t a') ##获取节点列表
/public/software/test/ansys192/ansys_inc/v192/CFX/bin/cfx5solve -batch -affinity explicit -parallel -single -def "${INPUT_FILE}" -par-dist ${hosts} >& ${job_name}.log  ##-batch 批处理运行方式 -affinity开启进程绑定
-parallel 并行方式运行 -single单精度 -def 算例输入文件 -par-dist 运行的节点和核数

3.3 命令行方式测试提交作业 

1)SMP提交方式:

/public/software/ansys/ansys_inc/v195/CFX/bin/cfx5solve -batch -par-local -part 128 -single -parallel -def perf_Airfoil_50M_R16M.def##-batch 批处理运行方式 -single单精度 -def 算例输入文件 -par-local 本地节点运行 -part 运行的核数

2)MPP提交方式:

/public/software/test/ansys192/ansys_inc/v192/CFX/bin/cfx5solve -batch -affinity explicit -parallel -single -def "${INPUT_FILE}" -par-dist ${hosts}>& perf_Airfoil.log  ##-batch 批处理运行方式 -affinity开启进程绑定
-parallel 并行方式运行 -single单精度 -def 算例输入文件 -par-dist 运行的节点和核数

4. LS-DYNA标准测试

4.1 slurm测试脚本范例

#!/bin/bash
#SBATCH -J 3cars
#SBATCH -N 8
#SBATCH -n 448
#SBATCH -p hygon64
#SBATCH --ntasks-per-node=56
#SBATCH -w hgcomput[13-20]
job_name=${SLURM_JOB_NAME}
INPUT_FILE=3cars_shell2_150ms.k
machines=""
for i in $(scontrol show hostnames=$SLURM_JOB_NODELIST); do
        machines=$machines:$i:$SLURM_NTASKS_PER_NODE
done
machines=${machines#:*}  ##获取节点列表
export LSTC_MEMORY=AUTO ##内存自适应
/public/software/test/ansys192/ansys_inc/v192/ansys/bin/lsdyna192 -dis -mpi ibmmpi -machines "$machines" memory=200m memory2=100m i=${INPUT_FILE} >& ${job_name}.log ###-dis 分布式并行计算 -mpi指定mpi类型 -machines 指定运行的节点列表 memory memory2 运行中mpi主进程和slave进程所分配的内存 -dp为双精度,默认为单精度

4.2 pbs测试脚本范例

#!/bin/bash
#PBS -N test  ##作业名自定义
#PBS -q normal  ##替换成实际的队列
#PBS -l nodes=node1:32 ##替换成实际的资源
#PBS -o std.out
#PBS -e std.err
NP=`cat $PBS_NODEFILE | wc -l`  ##计算总核数
machines=$(cat $PBS_NODEFILE|sort|uniq -c|awk '{print $2"*"$1}'|sed ':a;N;s/\n/:/g;t a') ##获取节点列表
export LSTC_MEMORY=AUTO ##内存自适应
/public/software/test/ansys192/ansys_inc/v192/ansys/bin/lsdyna192 -dis -mpi ibmmpi -machines "$machines" memory=200m memory2=100m i=${INPUT_FILE} >& ${job_name}.log ###-dis 分布式并行计算 -mpi指定mpi类型 -machines 指定运行的节点列表 memory memory2 运行中mpi主进程和slave进程所分配的内存-dp为双精度,默认为单精度

4.3 命令行方式测试提交作业

1)SMP提交方式:

export LSTC_MEMORY=AUTO ##内存自适应
/public/software/test/ansys192/ansys_inc/v192/ansys/bin/lsdyna192 ncpu=40 memory=200m memory2=100m i=${INPUT_FILE} >& ${job_name}.log ###ncpu单节点运行的核数 memory memory2 运行中mpi主进程和slave进程所分配的内存

2)MPP提交方式:

export LSTC_MEMORY=AUTO ##内存自适应
/public/software/test/ansys192/ansys_inc/v192/ansys/bin/lsdyna192 -dis -mpi ibmmpi -machines "$machines" memory=200m memory2=100m i=${INPUT_FILE} >& ${job_name}.log ###-dis 分布式并行计算 -mpi指定mpi类型 -machines 指定运行的节点列表 memory memory2 运行中mpi主进程和slave进程所分配的内存

xiaxia

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术瘾君子1573

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值