超算集群提交CFDEM作业(Slurm作业脚本)

发布时间 2023-12-14 20:30:36作者: Johnny_z_Z

CFDEM Coupling 官方Tutorial中包含了快捷运行算例的脚本,因此提交超算只需将Slurm(PBS)作业脚本中加入执行CFDEM命令即可。


此处利用了Tutorial中parCFDDEMrun.sh脚本。
完整的CFDEM算例目录中应包含CFD/DEM/SlurmRun.shparCFDDEMrun.sh

Slurm脚本SlurmRun.sh内容如下:

#!/bin/bash
#SBATCH -A AccountName
#SBATCH -N NodeNumber
#SBATCH -n ProcessorNumber
#SBATCH -p PartitionName
#SBATCH -J JobName
#SBATCH -q QosName

srun -N ${SLURM_NNODES} -n ${SLURM_NTASKS} hostname -s > mf1
/public/home/YourOwnCasePath/parCFDDEMrun.sh

其中processor number需要与算例并行核数一直,最后一行需要将parCFDDEMrun.sh的存放路径需对应修改。


CFDEM算例运行脚本parCFDDEMrun.sh内容如下:

#!/bin/bash

#- source CFDEM env vars
. ~/.bashrc

#- include functions
source $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/functions.sh

#--------------------------------------------------------------------------------#
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
logpath=$casePath
headerText="run_parallel_cfdemSolverPiso_settlingTestMPI_CFDDEM"
logfileName="log_$headerText"
solverName="cfdemSolverPiso"
nrProcs="ProcessorNumber"
machineFileName="$casePath/mf1"   # yourMachinefileName | none
debugMode="off"          # on | off| strict
testHarnessPath="$CFDEM_TEST_HARNESS_PATH"
runOctave="false"
cleanUp="false"
postproc="false"
#--------------------------------------------------------------------------------#

#- call function to run a parallel CFD-DEM case
parCFDDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode "true"

其中 processor number需要与算例并行计算核数一致。


提交作业前,需保证LIGGGHTS执行脚本liggghts.inparCFDDEMrun.sh处于可执行权限下(显示Xshell默认显示绿色),否则使用命令赋予权限:
chmod +x liggghts.in parCFDDEMrun.sh


在算例目录下使用sbatch命令提交作业即可:
sbatch SlurmRun.sh






总结不易,转载请注明出处。