Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
technical:recipes:ls-dyna [2024-06-07 11:46] – frey | technical:recipes:ls-dyna [2024-06-07 12:51] (current) – [VALET package definition] frey | ||
---|---|---|---|
Line 21: | Line 21: | ||
For this example, LS-DYNA will be installed in a workgroup' | For this example, LS-DYNA will be installed in a workgroup' | ||
- | ===== Directory | + | ===== Directory |
- | The LS-DYNA software packages must be downloaded to the cluster. | + | The LS-DYNA software packages must be downloaded to the cluster. |
<code bash> | <code bash> | ||
- | $ mkdir -p " | + | $ LS_DYNA_PREFIX=" |
+ | $ mkdir -p " | ||
</ | </ | ||
Line 32: | Line 33: | ||
<code bash> | <code bash> | ||
- | $ wget --directory-prefix=" | + | $ wget --directory-prefix=" |
| | ||
'< | '< | ||
Line 46: | Line 47: | ||
<code bash> | <code bash> | ||
- | $ ls -l "${WORKDIR}/sw/ls-dyna/ | + | $ ls -l "${LS_DYNA_PREFIX}/ |
total 234420 | total 234420 | ||
-rw-r--r-- 1 user group 140454912 Apr 7 22:15 ls-dyna_hyb_d_R15_0_2_x64_centos79_ifort190_avx2_openmpi405.tgz_extractor.sh | -rw-r--r-- 1 user group 140454912 Apr 7 22:15 ls-dyna_hyb_d_R15_0_2_x64_centos79_ifort190_avx2_openmpi405.tgz_extractor.sh | ||
Line 60: | Line 61: | ||
<code bash> | <code bash> | ||
- | $ mkdir -p "${WORKDIR}/sw/ls-dyna/ | + | $ mkdir -p "${LS_DYNA_PREFIX}/ |
</ | </ | ||
Line 68: | Line 69: | ||
<code bash> | <code bash> | ||
- | $ pushd "${WORKDIR}/sw/ls-dyna/ | + | $ pushd "${LS_DYNA_PREFIX}/ |
- | $ sh "${WORKDIR}/sw/ls-dyna/ | + | $ sh "${LS_DYNA_PREFIX}/ |
</ | </ | ||
Line 107: | Line 108: | ||
==== Open MPI install ==== | ==== Open MPI install ==== | ||
- | The procedure | + | The procedure is presented |
<code bash> | <code bash> | ||
Line 145: | Line 146: | ||
</ | </ | ||
- | If the configuration is successful, the software | + | If the configuration is successful, the software |
<code bash> | <code bash> | ||
Line 166: | Line 167: | ||
</ | </ | ||
+ | === VALET package definition === | ||
+ | To make this version of Open MPI available to your LS-DYNA installs, a VALET package definition file should be created. | ||
+ | |||
+ | <WRAP center round alert 80%> | ||
+ | If the workgroup already has an existing '' | ||
+ | </ | ||
+ | |||
+ | For the configuration made on Caviness above: | ||
+ | |||
+ | <file yaml openmpi.vpkg_yaml> | ||
+ | openmpi: | ||
+ | description: | ||
+ | url: | ||
+ | prefix: | ||
+ | versions: | ||
+ | " | ||
+ | description: | ||
+ | dependencies: | ||
+ | - intel/2019 | ||
+ | - libfabric/ | ||
+ | </ | ||
+ | |||
+ | On DARWIN, the file is slightly different. | ||
+ | |||
+ | <file yaml openmpi.vpkg_yaml> | ||
+ | openmpi: | ||
+ | description: | ||
+ | url: | ||
+ | prefix: | ||
+ | versions: | ||
+ | " | ||
+ | description: | ||
+ | dependencies: | ||
+ | - intel/2019 | ||
+ | </ | ||
+ | |||
+ | ===== VALET package definition ===== | ||
+ | |||
+ | With the necessary dependencies satisfied, a VALET package definition for LS-DYNA can be created. | ||
+ | |||
+ | <code bash> | ||
+ | $ echo $LS_DYNA_PREFIX | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | The ''< | ||
+ | |||
+ | <file yaml ls-dyna.vpkg_yaml> | ||
+ | ls-dyna: | ||
+ | prefix: < | ||
+ | url: http:// | ||
+ | description: | ||
+ | |||
+ | actions: | ||
+ | - variable: LSTC_LICENSE | ||
+ | action: set | ||
+ | value: network | ||
+ | - variable: LSTC_LICENSE_SERVER | ||
+ | action: set | ||
+ | value: < | ||
+ | - variable: LSTC_INTERNAL_CLIENT | ||
+ | action: set | ||
+ | value: off | ||
+ | - variable: LSTC_ROOT | ||
+ | action: set | ||
+ | value: ${VALET_PATH_PREFIX} | ||
+ | - bindir: ${VALET_PATH_PREFIX} | ||
+ | |||
+ | default-version: | ||
+ | |||
+ | versions: | ||
+ | |||
+ | " | ||
+ | description: | ||
+ | prefix: 15.0.2/ | ||
+ | dependencies: | ||
+ | - openmpi/ | ||
+ | " | ||
+ | description: | ||
+ | prefix: 15.0.2/ | ||
+ | dependencies: | ||
+ | - openmpi/ | ||
+ | </ | ||
+ | |||
+ | Loading one of these packages into the shell environment makes the '' | ||
+ | |||
+ | <code bash> | ||
+ | $ vpkg_require ls-dyna/ | ||
+ | Adding dependency `intel/ | ||
+ | Adding dependency `libfabric/ | ||
+ | Adding dependency `openmpi/ | ||
+ | Adding package `ls-dyna/ | ||
+ | |||
+ | $ which ls-dyna | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | ===== Running jobs ===== | ||
+ | |||
+ | On the Caviness/ | ||
+ | |||
+ | * The number of Slurm //tasks// represent the MPI ranks for a hybrid or MPP variant of LS-DYNA | ||
+ | * The number of CPUs per Slurm task represent the Open MP threads for an smp or hybrid variant of LS-DYNA | ||
+ | |||
+ | Follow the comments in the script header to determine which flags to alter and how to do so. The script template must be altered to add the desired version/ | ||
+ | |||
+ | < | ||
+ | # | ||
+ | # [EDIT] Do any pre-processing, | ||
+ | # or explicit changes to PATH, LD_LIBRARY_PATH, | ||
+ | # | ||
+ | vpkg_require ls-dyna/ | ||
+ | </ | ||
+ | |||
+ | Toward the end of the job script template, the LS-DYNA program is run: | ||
+ | |||
+ | < | ||
+ | # | ||
+ | # [EDIT] Execute your MPI program | ||
+ | # | ||
+ | ${UD_MPIRUN} ls-dyna i=my_model.k | ||
+ | mpi_rc=$? | ||
+ | </ |