From 2dba0839344536d7804b30ca90367a38aa7c395d Mon Sep 17 00:00:00 2001 From: Samuel Omlin Date: Tue, 17 Sep 2024 19:22:07 +0200 Subject: [PATCH 1/2] add LUMI configuration --- configs/eurohpc/lumi/mi250x/craype_config | 42 +++++++++++++++++++ .../eurohpc/lumi/mi250x/test_craype_config | 38 +++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 configs/eurohpc/lumi/mi250x/craype_config create mode 100644 configs/eurohpc/lumi/mi250x/test_craype_config diff --git a/configs/eurohpc/lumi/mi250x/craype_config b/configs/eurohpc/lumi/mi250x/craype_config new file mode 100644 index 0000000..969233f --- /dev/null +++ b/configs/eurohpc/lumi/mi250x/craype_config @@ -0,0 +1,42 @@ +#!/bin/bash + +# Author: Samuel Omlin, CSCS (omlins) +# +# Description: Definition of site specific variables and call of JUHPC. +# Site: LUMI, EuroHPC JU +# Base: craype + + +# module load LUMI/22.08 +# module load partition/G +# module load rocm/5.3.3 +# module load cray-hdf5-parallel + +# module load CrayEnv +# module switch PrgEnv-cray PrgEnv-gnu #PrgEnv-amd +# module load rocm craype-accel-nvidia90 +# module load cray-hdf5-parallel +# module list + +# Load required modules (including correct CPU and GPU target modules) +module load LUMI +module load partition/G # loads CPU and GPU target modules (craype-x86-trento, craype-accel-amd-gfx90a) +module load cpeGNU # LUMI-wrapper for PrgEnv-gnu +module load rocm +module load cray-hdf5-parallel +module list + +# Environment variables for HPC key packages that require system libraries that require system libraries (MPI.jl, CUDA.jl, HDF5.jl and ADIOS2.jl) +export JUHPC_ROCM_HOME=$ROCM_PATH +export JUHPC_MPI_VENDOR="cray" +export JUHPC_MPI_EXEC="srun" +export JUHPC_HDF5_HOME=$HDF5_DIR + + +# Call JUHPC +JUHPC_SETUP_INSTALLDIR=$SCRATCH/${HOSTNAME%%[0-9]*}/juhpc_setup #SCRATCH is assumed to be defined in ~/.bashrc, e.g., SCRATCH=/scratch/project_465000105/$USER +JULIAUP_INSTALLDIR="\$SCRATCH/\${HOSTNAME%%[0-9]*}/juliaup" +VERSION="v0.1.0" +#wget https://raw.githubusercontent.com/JuliaParallel/JUHPC/$VERSION/juhpc -O /tmp/juhpc +wget https://raw.githubusercontent.com/JuliaParallel/JUHPC/main/juhpc -O /tmp/juhpc +bash -l /tmp/juhpc $JUHPC_SETUP_INSTALLDIR $JULIAUP_INSTALLDIR diff --git a/configs/eurohpc/lumi/mi250x/test_craype_config b/configs/eurohpc/lumi/mi250x/test_craype_config new file mode 100644 index 0000000..ba06a57 --- /dev/null +++ b/configs/eurohpc/lumi/mi250x/test_craype_config @@ -0,0 +1,38 @@ +#!/bin/bash + +# Variable set in craype_config +JUHPC_SETUP_INSTALLDIR=$SCRATCH/${HOSTNAME%%[0-9]*}/juhpc_setup + +# Load required modules (including correct CPU and GPU target modules) +module load LUMI +module load partition/G # loads CPU and GPU target modules (craype-x86-trento, craype-accel-amd-gfx90a) +module load cpeGNU # LUMI-wrapper for PrgEnv-gnu +module load rocm +module load cray-hdf5-parallel +module list + +# Activate the HPC setup environment variables +. $JUHPC_SETUP_INSTALLDIR/activate + +# Call juliaup to install juliaup and latest julia on scratch +juliaup + +# Call juliaup to see its options +juliaup + +# Call julia Pkg +julia -e 'using Pkg; Pkg.status()' + +# Add AMDGPU.jl +julia -e 'using Pkg; Pkg.add("AMDGPU"); using AMDGPU; AMDGPU.versioninfo()' + +# Add MPI.jl +julia -e 'using Pkg; Pkg.add("MPI"); using MPI; MPI.versioninfo()' + +# Add HDF5.jl +julia -e 'using Pkg; Pkg.add("HDF5"); using HDF5; @show HDF5.has_parallel()' + +# Test AMDGPU-aware MPI +julia -e 'using Pkg; Pkg.add(["ImplicitGlobalGrid", "ParallelStencil"]);' +cd ~/rocmaware +MPICH_GPU_SUPPORT_ENABLED=1 IGG_ROCMAWARE_MPI=1 srun --time=00:09:00 -pdev-g -Aproject_465000557 -N2 -n2 --gpus-per-node=8 julia -O3 --check-bounds=no diffusion3D.jl \ No newline at end of file From 5d19b1b957442f6586198d4f340952e66c785899 Mon Sep 17 00:00:00 2001 From: Samuel Omlin Date: Tue, 17 Sep 2024 19:29:28 +0200 Subject: [PATCH 2/2] update configurations to use 0.1.1 --- README.md | 4 ++-- configs/cscs/alps/gh200/craype_config | 2 +- configs/cscs/alps/mc/craype_config | 2 +- configs/cscs/daint/gpu/craype_config | 2 +- configs/cscs/daint/mc/craype_config | 2 +- configs/eurohpc/lumi/mi250x/craype_config | 19 +++---------------- 6 files changed, 9 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index da42e5d..19a1e7d 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ export JUHPC_HDF5_HOME=$HDF5_DIR # Call JUHPC JUHPC_SETUP_INSTALLDIR=$SCRATCH/../julia/${HOSTNAME%%-*}/juhpc_setup JULIAUP_INSTALLDIR="\$SCRATCH/../julia/\$USER/\${HOSTNAME%%-*}/juliaup" -VERSION="v0.1.0" +VERSION="v0.1.1" wget https://raw.githubusercontent.com/JuliaParallel/JUHPC/$VERSION/juhpc -O /tmp/juhpc bash -l /tmp/juhpc $JUHPC_SETUP_INSTALLDIR $JULIAUP_INSTALLDIR ``` @@ -124,7 +124,7 @@ export JUHPC_ADIOS2_HOME=$(spack -C $ENV_MOUNT/config location -i adios2) JUHPC_SETUP_INSTALLDIR=$ENV_MOUNT/juhpc_setup JULIAUP_INSTALLDIR="\$SCRATCH/../julia/\$USER/\${HOSTNAME%%-*}/juliaup" JUHPC_POST_INSTALL_JL=$ENV_EXTRA/uenv_view.jl -VERSION="v0.1.0" +VERSION="v0.1.1" wget https://raw.githubusercontent.com/JuliaParallel/JUHPC/$VERSION/juhpc -O /tmp/juhpc bash -l /tmp/juhpc $JUHPC_SETUP_INSTALLDIR $JULIAUP_INSTALLDIR $JUHPC_POST_INSTALL_JL ``` diff --git a/configs/cscs/alps/gh200/craype_config b/configs/cscs/alps/gh200/craype_config index 47bad5b..27b7920 100644 --- a/configs/cscs/alps/gh200/craype_config +++ b/configs/cscs/alps/gh200/craype_config @@ -26,6 +26,6 @@ export JUHPC_HDF5_HOME=$HDF5_DIR # Call JUHPC JUHPC_SETUP_INSTALLDIR=$SCRATCH/${HOSTNAME%%-*}/juhpc_setup JULIAUP_INSTALLDIR="\$SCRATCH/\${HOSTNAME%%-*}/juliaup" -VERSION="v0.1.0" +VERSION="v0.1.1" wget https://raw.githubusercontent.com/JuliaParallel/JUHPC/$VERSION/juhpc -O /tmp/juhpc bash -l /tmp/juhpc $JUHPC_SETUP_INSTALLDIR $JULIAUP_INSTALLDIR diff --git a/configs/cscs/alps/mc/craype_config b/configs/cscs/alps/mc/craype_config index cf592c9..428c5e6 100644 --- a/configs/cscs/alps/mc/craype_config +++ b/configs/cscs/alps/mc/craype_config @@ -23,6 +23,6 @@ export JUHPC_HDF5_HOME=$HDF5_DIR # Call JUHPC JUHPC_SETUP_INSTALLDIR=$SCRATCH/${HOSTNAME%%-*}/juhpc_setup JULIAUP_INSTALLDIR="\$SCRATCH/\${HOSTNAME%%-*}/juliaup" -VERSION="v0.1.0" +VERSION="v0.1.1" wget https://raw.githubusercontent.com/JuliaParallel/JUHPC/$VERSION/juhpc -O /tmp/juhpc bash -l /tmp/juhpc $JUHPC_SETUP_INSTALLDIR $JULIAUP_INSTALLDIR diff --git a/configs/cscs/daint/gpu/craype_config b/configs/cscs/daint/gpu/craype_config index 7aa725c..0f18bf2 100644 --- a/configs/cscs/daint/gpu/craype_config +++ b/configs/cscs/daint/gpu/craype_config @@ -36,6 +36,6 @@ echo 'using Preferences # Call JUHPC JUHPC_SETUP_INSTALLDIR=$SCRATCH/../julia/${HOSTNAME%%[0-9]*}-gpu/juhpc_setup JULIAUP_INSTALLDIR="\$SCRATCH/../julia/\$USER/\${HOSTNAME%%[0-9]*}-gpu/juliaup" -VERSION="v0.1.0" +VERSION="v0.1.1" wget https://raw.githubusercontent.com/JuliaParallel/JUHPC/$VERSION/juhpc -O /tmp/juhpc bash -l /tmp/juhpc $JUHPC_SETUP_INSTALLDIR $JULIAUP_INSTALLDIR $JUHPC_POST_INSTALL_JL diff --git a/configs/cscs/daint/mc/craype_config b/configs/cscs/daint/mc/craype_config index 427f808..828bbcc 100644 --- a/configs/cscs/daint/mc/craype_config +++ b/configs/cscs/daint/mc/craype_config @@ -23,6 +23,6 @@ export JUHPC_HDF5_HOME=$HDF5_DIR # Call JUHPC JUHPC_SETUP_INSTALLDIR=$SCRATCH/../julia/${HOSTNAME%%[0-9]*}-mc/juhpc_setup JULIAUP_INSTALLDIR="\$SCRATCH/../julia/\$USER/\${HOSTNAME%%[0-9]*}-mc/juliaup" -VERSION="v0.1.0" +VERSION="v0.1.1" wget https://raw.githubusercontent.com/JuliaParallel/JUHPC/$VERSION/juhpc -O /tmp/juhpc bash -l /tmp/juhpc $JUHPC_SETUP_INSTALLDIR $JULIAUP_INSTALLDIR diff --git a/configs/eurohpc/lumi/mi250x/craype_config b/configs/eurohpc/lumi/mi250x/craype_config index 969233f..26ee5dc 100644 --- a/configs/eurohpc/lumi/mi250x/craype_config +++ b/configs/eurohpc/lumi/mi250x/craype_config @@ -4,19 +4,7 @@ # # Description: Definition of site specific variables and call of JUHPC. # Site: LUMI, EuroHPC JU -# Base: craype - - -# module load LUMI/22.08 -# module load partition/G -# module load rocm/5.3.3 -# module load cray-hdf5-parallel - -# module load CrayEnv -# module switch PrgEnv-cray PrgEnv-gnu #PrgEnv-amd -# module load rocm craype-accel-nvidia90 -# module load cray-hdf5-parallel -# module list +# Base: craype (LUMI-flavored) # Load required modules (including correct CPU and GPU target modules) module load LUMI @@ -36,7 +24,6 @@ export JUHPC_HDF5_HOME=$HDF5_DIR # Call JUHPC JUHPC_SETUP_INSTALLDIR=$SCRATCH/${HOSTNAME%%[0-9]*}/juhpc_setup #SCRATCH is assumed to be defined in ~/.bashrc, e.g., SCRATCH=/scratch/project_465000105/$USER JULIAUP_INSTALLDIR="\$SCRATCH/\${HOSTNAME%%[0-9]*}/juliaup" -VERSION="v0.1.0" -#wget https://raw.githubusercontent.com/JuliaParallel/JUHPC/$VERSION/juhpc -O /tmp/juhpc -wget https://raw.githubusercontent.com/JuliaParallel/JUHPC/main/juhpc -O /tmp/juhpc +VERSION="v0.1.1" +wget https://raw.githubusercontent.com/JuliaParallel/JUHPC/$VERSION/juhpc -O /tmp/juhpc bash -l /tmp/juhpc $JUHPC_SETUP_INSTALLDIR $JULIAUP_INSTALLDIR