Skip to content

Commit 0eec04a

Browse files
authored
Merge pull request #23 from JuliaParallel/initial
Update readme
2 parents 187a003 + 8f3d739 commit 0eec04a

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

README.md

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
$\Huge{\textbf{\color{purple}J\color{green}U\color{red}{HPC}}}$
1+
# $\textsf{\textbf{\color{purple}J\color{green}U\color{red}HPC}}$: Julia[up] for HPC <!-- omit from toc -->
2+
23

34
## Introduction: a community project for everyone - including end users
45

@@ -14,6 +15,7 @@ Concretely, JUHPC creates an HPC setup for Juliaup, Julia and some HPC key packa
1415

1516
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.
1617

18+
1719
## Table of contents <!-- omit from toc -->
1820
- [Introduction: a community project for everyone - including end users](#introduction-a-community-project-for-everyone---including-end-users)
1921
- [Usage](#usage)
@@ -38,46 +40,50 @@ Details are given in the following two subsections.
3840
### 1. Export environment variables for the installation of some HPC key packages
3941

4042
- 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).
4244
- `JUHPC_CUDA_RUNTIME_VERSION`: Used to set CUDA.jl preferences (fixes runtime version enabling pre-compilation on login nodes).
4345

4446
- 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).
4648

4749
- MPI
4850
- `JUHPC_MPI_HOME`: Activates HPC setup for MPI and is used to set MPI.jl preferences. Incompatible with `JUHPC_MPI_VENDOR`
4951
- `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"`.
5153

5254
- HDF5
5355
- `JUHPC_HDF5_HOME`: Activates HPC setup for HDF5 and is used to set HDF5.jl preferences.
5456

5557
- ADIOS2
5658
- `JUHPC_ADIOS2_HOME`: Activates HPC setup for ADIOS2 and is used to set ADIOS2.jl preferences.
5759

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.
5862
5963
### 2. Call JUHPC
6064

6165
The `juhpc` bash script is called as follows:
6266
```bash
63-
juhpc $JUHPC_SETUP_INSTALLDIR $JULIAUP_INSTALLDIR [$JUHPC_POST_INSTALL]
67+
juhpc $JUHPC_SETUP_INSTALLDIR $JULIAUP_INSTALLDIR [$JUHPC_POST_INSTALL_JL]
6468
```
6569
I.e., it takes the following arguments:
6670
- `JUHPC_SETUP_INSTALLDIR`: the folder into which the HPC setup is installed, e.g., `"$SCRATCH/../julia/${HOSTNAME%%-*}/juhpc_setup"`.
6771
- `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"`.
6872
- `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).
6973

70-
7174
> [!NOTE]
7275
> The above examples assume that `$SCRATCH/../julia` is a wipe out protected folder on scratch.
7376
7477
> [!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).
7679
7780

7881
## Examples: HPC setup installations on the ALPS supercomputer (CSCS)
7982

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/).
8187
8288
### Example 1: using Cray Programming Environment
8389

@@ -104,6 +110,9 @@ wget https://raw.githubusercontent.com/JuliaParallel/JUHPC/$VERSION/juhpc -O /tm
104110
bash -l /tmp/juhpc $JUHPC_SETUP_INSTALLDIR $JULIAUP_INSTALLDIR
105111
```
106112

113+
> [!TIP]
114+
> The corresponding file is found [here](/examples/cscs/alps/gh200/craype_config).
115+
107116
### Example 2: using UENV
108117

109118
```bash
@@ -172,6 +181,10 @@ cd ~/cudaaware
172181
MPICH_GPU_SUPPORT_ENABLED=1 srun -Acsstaff -C'gpu' -N2 -n2 julia cudaaware.jl
173182
```
174183

184+
> [!TIP]
185+
> The corresponding file is found [here](/examples/cscs/alps/gh200/test_craype_config).
186+
187+
175188
### Test of example 2
176189

177190
```bash
@@ -207,7 +220,7 @@ MPICH_GPU_SUPPORT_ENABLED=1 srun -Acsstaff -C'gpu' -N2 -n2 julia cudaaware.jl
207220
## Your contributions
208221

209222
Any contribution is valuable to the Julia HPC community:
210-
- contribute the HPC setup config file for your cluster or supercomputer in `configs` as an example for others;
223+
- contribute the HPC setup config file for your cluster or supercomputer in the folder [examples](/examples/) as an example for others;
211224
- open a PR with some enhancement or fix;
212225
- open an issue for a bug or an idea for enhancement.
213226

0 commit comments

Comments
 (0)