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
# $\textsf{\textbf{\color{purple}J\color{green}U\color{red}HPC}}$: Julia[up] for HPC <!-- omit from toc -->
2
+
2
3
3
4
## Introduction: a community project for everyone - including end users
4
5
@@ -14,6 +15,7 @@ Concretely, JUHPC creates an HPC setup for Juliaup, Julia and some HPC key packa
14
15
15
16
HPC sites can install the HPC setup into a folder in a location accessible to all users (which can also be part, e.g., of a uenv). HPC end users can install the HPC setup into any folder to their liking, accessible from the compute nodes; it is then enough to source the activate script in this folder in order to activate the HPC setup.
16
17
18
+
17
19
## Table of contents <!-- omit from toc -->
18
20
-[Introduction: a community project for everyone - including end users](#introduction-a-community-project-for-everyone---including-end-users)
19
21
-[Usage](#usage)
@@ -38,46 +40,50 @@ Details are given in the following two subsections.
38
40
### 1. Export environment variables for the installation of some HPC key packages
39
41
40
42
- CUDA
41
-
-`JUHPC_CUDA_HOME`: Activates HPC setup for CUDA and is used for CUDA.jl runtime discovery (set as CUDA_HOME in the activate script).
43
+
-`JUHPC_CUDA_HOME`: Activates HPC setup for CUDA and is used for CUDA.jl runtime discovery (set as `CUDA_HOME` in the activate script).
42
44
-`JUHPC_CUDA_RUNTIME_VERSION`: Used to set CUDA.jl preferences (fixes runtime version enabling pre-compilation on login nodes).
43
45
44
46
- AMDGPU
45
-
-`JUHPC_ROCM_HOME`: Activates HPC setup for AMDGPU and is used for AMDGPU.jl runtime discovery (set as ROCM_PATH in the activate script).
47
+
-`JUHPC_ROCM_HOME`: Activates HPC setup for AMDGPU and is used for AMDGPU.jl runtime discovery (set as `ROCM_PATH` in the activate script).
46
48
47
49
- MPI
48
50
-`JUHPC_MPI_HOME`: Activates HPC setup for MPI and is used to set MPI.jl preferences. Incompatible with `JUHPC_MPI_VENDOR`
49
51
-`JUHPC_MPI_VENDOR`: Activates HPC setup for MPI and is used to set MPI.jl preferences (currently only "cray" is valid, see [here](https://juliaparallel.org/MPI.jl/stable/configuration/#Notes-about-vendor-provided-MPI-backends)). Incompatible with `JUHPC_MPI_HOME`.
50
-
-`JUHPC_MPI_EXEC`: Used to set MPI.jl preferences (exec command definition). Arguments are space separated, e.g., "srun -C gpu".
52
+
-`JUHPC_MPI_EXEC`: Used to set MPI.jl preferences (exec command definition). Arguments are space separated, e.g., `"srun -C gpu"`.
51
53
52
54
- HDF5
53
55
-`JUHPC_HDF5_HOME`: Activates HPC setup for HDF5 and is used to set HDF5.jl preferences.
54
56
55
57
- ADIOS2
56
58
-`JUHPC_ADIOS2_HOME`: Activates HPC setup for ADIOS2 and is used to set ADIOS2.jl preferences.
57
59
60
+
> [!NOTE]
61
+
> The automatically defined preferences suitable for typical HPC needs can be modified with a post install Julia script (see `JUHPC_POST_INSTALL_JL` in next section). Also preferences for other packages could be added this way if needed. Of course, any of these preferences can later be overwritten by local preferences.
-`JUHPC_SETUP_INSTALLDIR`: the folder into which the HPC setup is installed, e.g., `"$SCRATCH/../julia/${HOSTNAME%%-*}/juhpc_setup"`.
67
71
-`JULIAUP_INSTALLDIR`: the folder into which Juliaup and Julia will automatically be installed the first time the end user calls `juliaup`. *User environment variables should be escaped* in order not to have them expanded during HPC setup installation, but during its usage by the end user, e.g., `"\$SCRATCH/../julia/\$USER/\${HOSTNAME%%-*}/juliaup"`.
68
72
-`JUHPC_POST_INSTALL_JL` (optional): 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).
69
73
70
-
71
74
> [!NOTE]
72
75
> The above examples assume that `$SCRATCH/../julia` is a wipe out protected folder on scratch.
73
76
74
77
> [!IMPORTANT]
75
-
> Separate installation by HOSTNAME is required if different hosts with different architectures share file system used for installation (e.g., daint and eiger on ALPS).
78
+
> Separate installation by `HOSTNAME` is required if different hosts with different architectures share file system used for installation (e.g., daint and eiger on ALPS).
76
79
77
80
78
81
## Examples: HPC setup installations on the ALPS supercomputer (CSCS)
79
82
80
-
Examples of HPC setup installations are found in the folder `configs` of which two are featured in the following.
83
+
In the following you can find two examples of HPC setup installations.
84
+
85
+
> [!TIP]
86
+
> More examples are found in the folder [examples](/examples/).
0 commit comments