You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,4 +3,4 @@ Create an HPC setup for juliaup, julia and some HPC key packages (MPI.jl, CUDA.j
3
3
- preferences for HPC key packages that require system libraries;
4
4
- a wrapper for juliaup that installs juliaup (and latest julia) in an appropriate location (e.g., scratch) if it is not already installed;
5
5
- an activation script that sets environment variables for juliaup, julia and HPC key packages;
6
-
- an uenv view equivalent to the activation script (optional).
6
+
-optionally executing a site-specific post installation julia script, using the project where preferences were set (e.g, to modify preferences or to create an uenv view equivalent to the activation script).
Copy file name to clipboardExpand all lines: configs/cscs/alps/gh200/craype_config
+10-10Lines changed: 10 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -16,21 +16,21 @@ module list
16
16
17
17
18
18
# Environment variables for HPC key packages that require system libraries that require system libraries (MPI.jl, CUDA.jl, HDF5.jl and ADIOS2.jl)
19
-
export JUHPC_CUDA_HOME=$CUDA_HOME# Used for CUDA.jl runtime discovery (set as CUDA_HOME in the uenv view / activate script).
20
-
export JUHPC_CUDA_RUNTIME_VERSION=$CRAY_CUDATOOLKIT_VERSION# Used for CUDA.jl runtime version definition (set in preferences).
21
-
export JUHPC_ROCM_HOME= # Used for AMDGPU.jl runtime discovery (set as ROCM_PATH in the uenv view / activate script).
22
-
export JUHPC_MPI_HOME= # Used for MPI.jl system binary discovery (set in preferences).
23
-
export JUHPC_MPI_VENDOR="cray"# Used for MPI.jl system binary discovery (used to set preferences).
24
-
export JUHPC_MPI_EXEC="srun -C gpu"# Used for MPI.jl exec command discovery (set in preferences). Arguments are space separated, e.g. "srun -C gpu".
25
-
export JUHPC_HDF5_HOME=$HDF5_DIR# Used for HDF5.jl library discovery (set in preferences).
26
-
export JUHPC_ADIOS2_HOME= # Used for ADIOS2.jl library discovery (set as JULIA_ADIOS2_PATH in the uenv view / activate script).
19
+
export JUHPC_CUDA_HOME=$CUDA_HOME# Used for CUDA.jl runtime discovery (set as CUDA_HOME in the activate script).
20
+
export JUHPC_CUDA_RUNTIME_VERSION=$CRAY_CUDATOOLKIT_VERSION# Used for CUDA.jl runtime version definition (set in preferences).
21
+
export JUHPC_ROCM_HOME= # Used for AMDGPU.jl runtime discovery (set as ROCM_PATH in the activate script).
22
+
export JUHPC_MPI_HOME= # Used for MPI.jl system binary discovery (set in preferences).
23
+
export JUHPC_MPI_VENDOR="cray"# Used for MPI.jl system binary discovery (used to set preferences).
24
+
export JUHPC_MPI_EXEC="srun -C gpu"# Used for MPI.jl exec command discovery (set in preferences). Arguments are space separated, e.g. "srun -C gpu".
25
+
export JUHPC_HDF5_HOME=$HDF5_DIR# Used for HDF5.jl library discovery (set in preferences).
26
+
export JUHPC_ADIOS2_HOME= # Used for ADIOS2.jl library discovery (set as JULIA_ADIOS2_PATH in the activate script).
27
27
28
28
29
29
# Call JUHPC
30
30
git clone https://github.com/omlins/JUHPC
31
31
JUHPC=./JUHPC/src/juhpc
32
-
JUHPC_SETUP_INSTALLDIR=$SCRATCH/${HOSTNAME%%-*}/juhpc_setup # HPC setup installation environment variables must be expanded during installation.
33
-
JULIAUP_INSTALLDIR="\$SCRATCH/\${HOSTNAME%%-*}/juliaup"# User environment variables SCRATCH and HOSTNAME must not be expanded during uenv build, but during usage. Separate installation by HOSTNAME is required, because different hosts with different architectures can share the same file system (e.g., daint and eiger on ALPS).
32
+
JUHPC_SETUP_INSTALLDIR=$SCRATCH/${HOSTNAME%%-*}/juhpc_setup # HPC setup installation environment variables must be expanded during installation.
33
+
JULIAUP_INSTALLDIR="\$SCRATCH/\${HOSTNAME%%-*}/juliaup"# User environment variables SCRATCH and HOSTNAME must not be expanded HPC setup installation, but during usage. Separate installation by HOSTNAME is required, because different hosts with different architectures can share the same file system (e.g., daint and eiger on ALPS).
Copy file name to clipboardExpand all lines: configs/cscs/daint/gpu/craype_config
+24-16Lines changed: 24 additions & 16 deletions
Original file line number
Diff line number
Diff line change
@@ -3,35 +3,45 @@
3
3
# Author: Samuel Omlin, CSCS (omlins)
4
4
#
5
5
# Description: Definition of site specific variables and call of JUHPC.
6
-
# Site: ALPS:todi, Swiss National Supercomputing Centre (CSCS)
6
+
# Site: Piz Daint:gpu, Swiss National Supercomputing Centre (CSCS)
7
7
# Base: craype
8
8
9
9
10
-
# Load required modules (including correct CPU and GPU target modules)
10
+
# Load required modules, including correct CPU and GPU target modules (NOTE: the same modules should be loaded when running julia - JUHPC can be used in a module build recipe...)
11
11
module load daint-gpu
12
12
module switch PrgEnv-cray PrgEnv-gnu
13
-
module load cudatoolkit craype-accel-nvidia60
13
+
module load cudatoolkit/11.2.0_3.39-2.1__gf93aa1c craype-accel-nvidia60# Load latest available cudatoolkit
14
14
module load cray-hdf5-parallel
15
15
module list
16
16
17
17
18
18
# Environment variables for HPC key packages that require system libraries that require system libraries (MPI.jl, CUDA.jl, HDF5.jl and ADIOS2.jl)
19
-
export JUHPC_CUDA_HOME=$CUDA_HOME# Used for CUDA.jl runtime discovery (set as CUDA_HOME in the uenv view / activate script).
20
-
export JUHPC_CUDA_RUNTIME_VERSION=$CRAY_CUDATOOLKIT_VERSION# Used for CUDA.jl runtime version definition (set in preferences).
21
-
export JUHPC_ROCM_HOME= # Used for AMDGPU.jl runtime discovery (set as ROCM_PATH in the uenv view / activate script).
22
-
export JUHPC_MPI_HOME=$MPICH_DIR# Used for MPI.jl system binary discovery (set in preferences).
23
-
export JUHPC_MPI_VENDOR= # Used for MPI.jl system binary discovery (used to set preferences).
24
-
export JUHPC_MPI_EXEC="srun -C gpu"# Used for MPI.jl exec command discovery (set in preferences). Arguments are space separated, e.g. "srun -C gpu".
25
-
export JUHPC_HDF5_HOME=$HDF5_DIR# Used for HDF5.jl library discovery (set in preferences).
26
-
export JUHPC_ADIOS2_HOME= # Used for ADIOS2.jl library discovery (set as JULIA_ADIOS2_PATH in the uenv view / activate script).
19
+
export JUHPC_CUDA_HOME=$CUDA_HOME# Used for CUDA.jl runtime discovery (set as CUDA_HOME in the activate script).
20
+
export JUHPC_CUDA_RUNTIME_VERSION=$CRAY_CUDATOOLKIT_VERSION# Used for CUDA.jl runtime version definition (set in preferences).
21
+
export JUHPC_ROCM_HOME= # Used for AMDGPU.jl runtime discovery (set as ROCM_PATH in the activate script).
22
+
export JUHPC_MPI_HOME=$MPICH_DIR# Used for MPI.jl system binary discovery (set in preferences).
23
+
export JUHPC_MPI_VENDOR= # Used for MPI.jl system binary discovery (used to set preferences).
24
+
export JUHPC_MPI_EXEC="srun -C gpu"# Used for MPI.jl exec command discovery (set in preferences). Arguments are space separated, e.g. "srun -C gpu".
25
+
export JUHPC_HDF5_HOME=$HDF5_DIR# Used for HDF5.jl library discovery (set in preferences).
26
+
export JUHPC_ADIOS2_HOME= # Used for ADIOS2.jl library discovery (set as JULIA_ADIOS2_PATH in the activate script).
27
+
28
+
29
+
# Create site-specific post-install script (currently MPIPreferences does not provide an option to set required preloads if not automatically detected; JUHPC_MPI_VENDOR fails on Piz Daint...)
JUHPC_SETUP_INSTALLDIR=$SCRATCH/${HOSTNAME%%-*}/juhpc_setup # HPC setup installation environment variables must be expanded during installation.
33
-
JULIAUP_INSTALLDIR="\$SCRATCH/\${HOSTNAME%%-*}/juliaup"# User environment variables SCRATCH and HOSTNAME must not be expanded during uenv build, but during usage. Separate installation by HOSTNAME is required, because different hosts with different architectures can share the same file system (e.g., daint and eiger on ALPS).
JUHPC_SETUP_INSTALLDIR=$SCRATCH/../julia/${HOSTNAME%%[0-9]*}-gpu/juhpc_setup# HPC setup installation environment variables must be expanded during installation.
43
+
JULIAUP_INSTALLDIR="\$SCRATCH/../julia/\$USER/\${HOSTNAME%%[0-9]*}-gpu/juliaup"# User environment variables SCRATCH and HOSTNAME must not be expanded HPC setup installation, but during usage. Separate installation by HOSTNAME is required, because different hosts with different architectures can share the same file system (e.g., daint and eiger on ALPS).
# Description: Definition of site specific variables and call of JUHPC.
6
+
# Site: Piz Daint:mc, Swiss National Supercomputing Centre (CSCS)
7
+
# Base: craype
8
+
9
+
10
+
# Load required modules, including correct CPU and GPU target modules (NOTE: the same modules should be loaded when running julia - JUHPC can be used in a module build recipe...)
11
+
module load daint-mc
12
+
module switch PrgEnv-cray PrgEnv-gnu
13
+
module load cray-hdf5-parallel
14
+
module list
15
+
16
+
17
+
# Environment variables for HPC key packages that require system libraries that require system libraries (MPI.jl, CUDA.jl, HDF5.jl and ADIOS2.jl)
18
+
export JUHPC_CUDA_HOME= # Used for CUDA.jl runtime discovery (set as CUDA_HOME in the activate script).
19
+
export JUHPC_CUDA_RUNTIME_VERSION=$CRAY_CUDATOOLKIT_VERSION# Used for CUDA.jl runtime version definition (set in preferences).
20
+
export JUHPC_ROCM_HOME= # Used for AMDGPU.jl runtime discovery (set as ROCM_PATH in the activate script).
21
+
export JUHPC_MPI_HOME=$MPICH_DIR# Used for MPI.jl system binary discovery (set in preferences).
22
+
export JUHPC_MPI_VENDOR= # Used for MPI.jl system binary discovery (used to set preferences).
23
+
export JUHPC_MPI_EXEC="srun -C mc"# Used for MPI.jl exec command discovery (set in preferences). Arguments are space separated, e.g. "srun -C mc".
24
+
export JUHPC_HDF5_HOME=$HDF5_DIR# Used for HDF5.jl library discovery (set in preferences).
25
+
export JUHPC_ADIOS2_HOME= # Used for ADIOS2.jl library discovery (set as JULIA_ADIOS2_PATH in the activate script).
26
+
27
+
28
+
# Call JUHPC
29
+
git clone https://github.com/omlins/JUHPC
30
+
JUHPC=./JUHPC/src/juhpc
31
+
JUHPC_SETUP_INSTALLDIR=$SCRATCH/../julia/${HOSTNAME%%[0-9]*}-mc/juhpc_setup # HPC setup installation environment variables must be expanded during installation.
32
+
JULIAUP_INSTALLDIR="\$SCRATCH/../julia/\$USER/\${HOSTNAME%%[0-9]*}-mc/juliaup"# User environment variables SCRATCH and HOSTNAME must not be expanded HPC setup installation, but during usage. Separate installation by HOSTNAME is required, because different hosts with different architectures can share the same file system (e.g., daint and eiger on ALPS).
Copy file name to clipboardExpand all lines: src/juhpc
+34-27Lines changed: 34 additions & 27 deletions
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@
5
5
# - preferences for HPC key packages that require system libraries;
6
6
# - a wrapper for juliaup that installs juliaup (and latest julia) in an appropriate location (e.g., scratch) if it is not already installed;
7
7
# - an activation script that sets environment variables for juliaup, julia and HPC key packages;
8
-
# - an uenv view equivalent to the activation script (optional).
8
+
# - optionally executing a site-specific post installation julia script, using the project where preferences were set (e.g, to modify preferences or to create an uenv view equivalent to the activation script).
if [ ! -f $(ENV["JULIAUP_BINDIR"])/juliaup ]; then
159
-
info "installing juliaupand latest julia in $(ENV["JULIAUP_INSTALLDIR"])..."
159
+
info "This is the first call to juliaup; juliaup and the latest julia will now be installed. After that, you can use juliaup and julia normally. Installing in $(ENV["JULIAUP_INSTALLDIR"])..."
160
160
PATH_OLD=\$PATH
161
161
export PATH=\$(echo \$PATH | perl -pe "s|[^:]*juliaup(?:_wrapper)?[^:]*:?||g") # Remove all juliaup paths from PATH
0 commit comments