to submit LS-Dyna R11 job to SLURM queue you need to load the appropriate module first:
module load lsdyna/R11_XXX
and (if you use parallel runs)
module load lsdyna/pmpi
Then you can select appropriate solver variety (MPP or SMP [parallel or not-parallel (but multi-threaded), DP or SP [double or single precision]]
using the following command:
where variable LSDYNA_HOME is the location of LSDYNA (it is defined in lsdyna/R11_XXX, modulefile that you loaded so you don’t have to set it yourself)
EXEC_TYPE=”MPP” (or “SMP”)
PREC=”DP” (or SP) is precision
CPU = “sse” (or “avx2”, use avx2 for Broadwell CPUs only, older ones do not support these CPU optimizations)
SLURM file for LS-Dyna 9.1.0 submission is here lsdyna.
You have to put the submission script e.g. “lsdyna.slurm” in your case folder with all simulation files, which are necessary for the solver to run.
E.g. I put some test key-file of LS-DYNA “YARI_2_YARI_STD.key” and the submission script in the same separate folder, say, /home/myusername/lsdyna/test1/.
The script below is for 9.0.1 version of LS-DYNA, otherwise define the version required at the line of slurm script below, in variable LSDYNA_VER=”…”
You can see all versions available on Zeus by listing content of folder where all executables reside.
ls /share/apps/EC_STRUCT_SIM/LS-DYNA/
You can also put your own executable in your home folder and use that instead, changing its location path in the submission script below.
Two modulefiles are required for LSDYNA to work, one is general module load lsdyna/971, which defines license server location etc, and the other defining the version of MPI used (in pre-8 versions of LSDYNA we used HPMPI) in 8+ it is IBM Platform MPI, so module load lsdyna/pmpi is needed in your slurm script. Note that this script do not specify number of nodes or CPUs required, see note below.
#!/bin/bash
#SBATCH --time=12:00:00
#SBATCH --job-name="lsdyna9"
HOSTFILE=`srun /bin/hostname`
echo $HOSTFILE > hostlist.txt
WORKDIR=${SLURM_SUBMIT_DIR}
LOGFILE=${SLURM_SUBMIT_DIR}/${SLURM_JOBID}_log.txt
module purge
module load lsdyna/971
module load lsdyna/pmpi
LSDYNA_VER="971_9.0.1"
EXEC_TYPE="MPP" #or SMP or Hybrid
PREC="DP" # DP or SP (double or single precision)
EXECUTABLE="$LSDYNA_HOME/$LSDYNA_VER/$EXEC_TYPE/$PREC/*.exe"
KEYFILE="YARI_2_YARI_STD" # keyfile WITHOUT extension .key
keyfile=${WORKDIR}/${KEYFILE}
MPIRUN=`which mpirun`
export MPI_ROOT=$(dirname $(dirname "$MPIRUN"))
ARGS="i=${keyfile}.key O=${keyfile}.otf G=${keyfile}.ptf D=${keyfile}.dpf F=${keyfile}.thf U=${keyfile}.xtf memory=500m" #500m memory words is 4Gb per core
NPROCS=$SLURM_NTASKS
echo "Nodelist: ${SLURM_JOB_NODELIST}" >> ${LOGFILE}_nodes
CMD="${MPIRUN} -hostfile ${WORKDIR}/hostlist.txt ${EXECUTABLE} ${ARGS}"
echo "Launching: $CMD" >> ${LOGFILE}_cmd
$CMD | tee ${SLURM_JOBID}_out.log
The above command reserves 24 hours for 32 CPU cores of two Broadwell nodes, 16 CPU-cores per node. Trials show that using more cores per node (each Broadwell node has 2×16 CPU-cores in 2 CPU-sockets) in MPP version of LSDYNA results in deterioration of the overall performance. So using fewer CPU-cores per node gives the same speed of solution as using more than 16 cores (or improvement is barely noticeable).
Warning: Attempt to read property "comment_ID" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 72
Warning: Attempt to read property "comment_author_email" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 592
Warning: Attempt to read property "comment_post_ID" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 593
Warning: Attempt to read property "comment_ID" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 72
Warning: Attempt to read property "comment_author_email" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 592
Warning: Attempt to read property "comment_post_ID" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 593
Warning: Attempt to read property "comment_ID" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 72
Warning: Attempt to read property "comment_author_email" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 592
Warning: Attempt to read property "comment_post_ID" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 593
Warning: Attempt to read property "comment_ID" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 72
Warning: Attempt to read property "comment_author_email" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 592
Warning: Attempt to read property "comment_post_ID" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 593
Warning: Attempt to read property "comment_ID" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 72
Warning: Attempt to read property "comment_author_email" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 592
Warning: Attempt to read property "comment_post_ID" on null in /home/hpccoven/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 593
LS-DYNA
LS-Dyna R11
to submit LS-Dyna R11 job to SLURM queue you need to load the appropriate module first:
module load lsdyna/R11_XXXand (if you use parallel runs)
module load lsdyna/pmpiThen you can select appropriate solver variety (MPP or SMP [parallel or not-parallel (but multi-threaded), DP or SP [double or single precision]]
using the following command:
EXECUTABLE=`ls $LSDYNA_HOME/R11_142770/$EXEC_TYPE/$PREC/*$CPU*`lsdyna/R11_XXX, modulefile that you loaded so you don’t have to set it yourself)The example slurm file, which automates all this procedure can be found at http://zeus/slurm/slurm_scripts/lsdyna_R11_xxx.slurm
This SLURM file can be launched as ( e.g. on 64 CPUs of any kind for 12 hours )
sbatch -n64 -t 12:00:00 lsdyna_R11_xxx.slurmIf you want to use AVX2 solvers (i.e. you selected CPU=”avx2″) in slurm file, chose Broadwell 932-CPU) nodes:
sbatch -n64 -t 12:00:00 -- constraint=Broadwell lsdyna_R11_xxx.slurmLS-Dyna 9
SLURM file for LS-Dyna 9.1.0 submission is here lsdyna.
You have to put the submission script e.g. “lsdyna.slurm” in your case folder with all simulation files, which are necessary for the solver to run.
E.g. I put some test key-file of LS-DYNA “YARI_2_YARI_STD.key” and the submission script in the same separate folder, say, /home/myusername/lsdyna/test1/.
The script below is for 9.0.1 version of LS-DYNA, otherwise define the version required at the line of slurm script below, in variable LSDYNA_VER=”…”
You can see all versions available on Zeus by listing content of folder where all executables reside.
ls /share/apps/EC_STRUCT_SIM/LS-DYNA/You can also put your own executable in your home folder and use that instead, changing its location path in the submission script below.
Two modulefiles are required for LSDYNA to work, one is general
module load lsdyna/971, which defines license server location etc, and the other defining the version of MPI used (in pre-8 versions of LSDYNA we used HPMPI) in 8+ it is IBM Platform MPI, somodule load lsdyna/pmpiis needed in your slurm script. Note that this script do not specify number of nodes or CPUs required, see note below.#!/bin/bash #SBATCH --time=12:00:00 #SBATCH --job-name="lsdyna9" HOSTFILE=`srun /bin/hostname` echo $HOSTFILE > hostlist.txt WORKDIR=${SLURM_SUBMIT_DIR} LOGFILE=${SLURM_SUBMIT_DIR}/${SLURM_JOBID}_log.txt module purge module load lsdyna/971 module load lsdyna/pmpi LSDYNA_VER="971_9.0.1" EXEC_TYPE="MPP" #or SMP or Hybrid PREC="DP" # DP or SP (double or single precision) EXECUTABLE="$LSDYNA_HOME/$LSDYNA_VER/$EXEC_TYPE/$PREC/*.exe" KEYFILE="YARI_2_YARI_STD" # keyfile WITHOUT extension .key keyfile=${WORKDIR}/${KEYFILE} MPIRUN=`which mpirun` export MPI_ROOT=$(dirname $(dirname "$MPIRUN")) ARGS="i=${keyfile}.key O=${keyfile}.otf G=${keyfile}.ptf D=${keyfile}.dpf F=${keyfile}.thf U=${keyfile}.xtf memory=500m" #500m memory words is 4Gb per core NPROCS=$SLURM_NTASKS echo "Nodelist: ${SLURM_JOB_NODELIST}" >> ${LOGFILE}_nodes CMD="${MPIRUN} -hostfile ${WORKDIR}/hostlist.txt ${EXECUTABLE} ${ARGS}" echo "Launching: $CMD" >> ${LOGFILE}_cmd $CMD | tee ${SLURM_JOBID}_out.logSubmit to the queue with e.g.
sbatch -N2 -n32 --ntasks-per-node=16 -t 24:00:00 -p Broadwell --exclusive lsdyna.slurmThe above command reserves 24 hours for 32 CPU cores of two Broadwell nodes, 16 CPU-cores per node. Trials show that using more cores per node (each Broadwell node has 2×16 CPU-cores in 2 CPU-sockets) in MPP version of LSDYNA results in deterioration of the overall performance. So using fewer CPU-cores per node gives the same speed of solution as using more than 16 cores (or improvement is barely noticeable).
Alex Pedcenko