Skip to content

This code mimics the basic MPI+GPU tasks of PSI's codes, for use with testing multi-GPU multi-node clusters

License

Notifications You must be signed in to change notification settings

predsci/multigpu-test-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Dec 13, 2024
664c1ff · Dec 13, 2024

History

13 Commits
Feb 23, 2022
Feb 23, 2022
Dec 13, 2024
Dec 13, 2024
Dec 13, 2024
Dec 13, 2024
Dec 13, 2024
Dec 13, 2024
Dec 13, 2024

Repository files navigation

multigpu-test-code

This code mimics the basic MPI+OpenACC tasks of PSI's codes, for use with testing multi-GPU multi-node clusters. It relies on the use of GPU-aware MPI.

Five versions are provided:

psi_multigpu_test_code_openacc.f90:
OpenACC for computation, device selection, and data movement.

psi_multigpu_test_code_openacc_nodata.f90:
OpenACC for computation and device selection only. This should be used with managed or unified memory.

psi_multigpu_test_code_stdpar.f90:
Standard Fortran (no directives at all). This should be used with managed or unified memory and a special launch script for device selection (an example script for OpenMPI is provided).

psi_multigpu_test_code_stdpar_accdata.f90:
Standard Fortran with OpenACC for device selection and data movement.

psi_multigpu_test_code_stdpar_ompdata.f90:
Standard Fortran with OpenMP Target for data movement and OpenACC+OpenMP for device selection.

Example compile lines using the NVIDIA HPC SDK 24.11 on GPUs:

mpif90 psi_multigpu_test_code_stdpar.f90 -stdpar=gpu -gpu=ccnative,mem:unified -Minfo=accel -o psi_multigpu_test_code_stdpar

mpif90 psi_multigpu_test_code_stdpar_accdata.f90 -stdpar=gpu -acc=gpu -gpu=ccnative,mem:separate -Minfo=accel -o psi_multigpu_test_code_stdpar_accdata

mpif90 psi_multigpu_test_code_stdpar_ompdata.f90 -stdpar=gpu -acc=gpu -mp=gpu -gpu=ccnative,mem:separate -Minfo=accel -o psi_multigpu_test_code_stdpar_ompdata

mpif90 psi_multigpu_test_code_openacc.f90 -acc=gpu -gpu=ccnative,mem:separate -Minfo=accel -o psi_multigpu_test_code_openacc

mpif90 psi_multigpu_test_code_openacc_nodata.f90 -acc=gpu -gpu=ccnative,mem:unified -Minfo=accel -o psi_multigpu_test_code_openacc_nodata

Example launch commands:

mpiexec -npernode 4 ./psi_multigpu_test_code_openacc
mpiexec -npernode 4 ./launch_multigpu_openmpi.sh psi_multigpu_test_code_stdpar

About

This code mimics the basic MPI+GPU tasks of PSI's codes, for use with testing multi-GPU multi-node clusters

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published