Skip to content

Commit a5c4e09

Browse files
committed
Removed some TODOs to complete the tutorial.
1 parent bf25dba commit a5c4e09

4 files changed

Lines changed: 45 additions & 20 deletions

File tree

docs/2022-CSC_and_LO/1_Intro/1_01_what_is_easybuild.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,16 +103,14 @@ cannot easily overwrite those.
103103

104104
In addition to performance, **reproducibility of installations** is a core aspect of EasyBuild.
105105

106-
TODO correct link in the next lines.
107-
108-
Most software installations performed with EasyBuild use a **particular compiler <a href="#toolchains">toolchain</a>**,
106+
Most software installations performed with EasyBuild use a **particular compiler <a href="../1_05_terminology#toolchains">toolchain</a>**,
109107
with which we aim to be in control over the build environment and avoid relying on tools and libraries
110108
provided by the operating system. For similar reasons, we try to **provide all required dependencies through EasyBuild** as well,
111109
with a few notable exceptions, like ``OpenSSL`` for security reasons, and Infiniband and GPU drivers which
112110
are too closely intertwined with the operating system.
113111

114112
For both toolchains and dependencies, **fixed software versions** are specified in the
115-
<a href="#easyconfig-files">easyconfig files</a>. That way, easyconfig files can easily be shared with others:
113+
<a href="../1_05_terminology#easyconfig-files">easyconfig files</a>. That way, easyconfig files can easily be shared with others:
116114
if they worked for you it is very likely that they will work for others too, because the vast majority of the
117115
software stack is controlled by EasyBuild.
118116

docs/2022-CSC_and_LO/1_Intro/1_04_LUMI_software_stack.md

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,34 @@ On this page we focus more on the technical implementation behind it.
1515
LUMI has different node types providing compute resources:
1616

1717
- LUMI has 16 login nodes, though many of those are reserved for special purposes and not
18-
available to all users. TODO
18+
available to all users. These login nodes have a zen2 CPU. These nodes have a SlingShot 10
19+
interconnect.
20+
- There are 1536 regular CPU compute nodes in a partition denoted as LUMI-C. These
21+
compute nodes have a zen3 CPU and run a reduced version of SUSE Linux optimised
22+
by Cray to reduce OS jitter. These nodes will in the future be equipped with a
23+
SlingShot 11 interconnect card.
24+
- There are 2560 GPU compute nodes in a partition denoted as LUMI-G. These nodes have
25+
a single zen3-based CPU with optimised I/O die linked to 4 AMD MI250X GPUs. Each node
26+
has 4 SlingShot 11 interconnect cards, one attached to each GPU.
27+
- The interactive data analytics and visualisation partition is really two different partitions
28+
from the software point-of-view:
29+
- 8 nodes are CPU-only but differ considerably from the regular compute nodes,
30+
not only in the amount of memory. These nodes are equipped with zen2 CPUs
31+
and in that sense comparable to the login nodes. They also have local SSDs
32+
and are equipped with SlingShot 10 interconnect cards (2 each???)
33+
- 8 nodes have zen2 CPUs and 8 NVIDIA A40 GPUs each, and have 2 SlingShot 10
34+
interconnect cards each.
35+
- The early access platform (EAP) has 14 nodes equiped with a single 64-core
36+
zen2 CPU and 4 AMD MI100 GPUS. Each node has a single SlingShot 10 interconnect
37+
and also local SSDs.
38+
39+
SlingShot 10 and SlingShot 11 are different software-wise. SlingShot 10 uses a
40+
Mellanox CX5 NIC that support both OFI and UCX, and hence can also use the
41+
UCX version of Cray MPICH. SlingShot 11 uses a NIC code-named Cassini and
42+
supports only OFI with an OFI provider specific for the Cassini NIC. However,
43+
given that the nodes that are equipped with SlingShot 10 cards are not meant
44+
to be used for big MPI jobs, we build our software stack solely on top of
45+
libfabric and Cray MPICH.
1946

2047

2148
---
@@ -46,7 +73,9 @@ On LUMI, two types of software stacks are currently offered:
4673
A deliberate choice was made to only offer a limited number of software
4774
packages in the globally installed stack as the setup of redundancy on LUMI
4875
makes it difficult to update the stack in a way that is guaranteed to not
49-
affect running jobs and as a large central stack is also hard to manage.
76+
affect running jobs and as a large central stack is also hard to manage, especially
77+
as we expect frequent updates to the OS and compiler infrastructure in
78+
the first years of operation.
5079
However, the EasyBuild setup is such that users can easily install
5180
additional software in their home or project directory using EasyBuild build
5281
recipes that we provide or they develop, and that software will fully
@@ -72,12 +101,13 @@ set of target modules after loading the ``CrayEnv`` module.
72101
The ``LUMI`` module currently supports four partition modules, but that number may
73102
be reduced in the future:
74103

75-
| Partition | CPU target | Accelerator |
76-
|:----------------|-----------------------|:----------------------------|
77-
| ``partition/L`` | ``craype-x86-rome`` | ``craype-accel-host`` |
78-
| ``partition/C`` | ``craype-x86-milan`` | ``craype-accel-host`` |
79-
| ``partition/G`` | ``craype-x86-trento`` | ``craype-accel-amd-gfx90a`` |
80-
| ``partition/D`` | ``craype-x86-rome`` | ``craype-accel-nvidia80`` |
104+
| Partition | CPU target | Accelerator |
105+
|:------------------|-----------------------|:----------------------------|
106+
| ``partition/L`` | ``craype-x86-rome`` | ``craype-accel-host`` |
107+
| ``partition/C`` | ``craype-x86-milan`` | ``craype-accel-host`` |
108+
| ``partition/G`` | ``craype-x86-trento`` | ``craype-accel-amd-gfx90a`` |
109+
| ``partition/D`` | ``craype-x86-rome`` | ``craype-accel-nvidia80`` |
110+
| ``partition/EAP`` | ``craype-x86-rome`` | ``craype-accel-amd-gfx908`` |
81111

82112
All ``partition`` modules also load `craype-network-ofi``.
83113

docs/2022-CSC_and_LO/1_Intro/1_06_installation.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -417,23 +417,20 @@ export EB_PYTHON=python3
417417
To keep the different versions of the LUMI software stack as independent from one another as possible,
418418
EasyBuild is bootstrapped for each software stack by the ``prepare_LUMI_stack.sh`` script. We use the
419419
system Python 3 for running EasyBuild. That Python version currently doesn't have ``pip`` installed.
420+
Our procedure is based on the ["Installing EasyBuild with EasyBuild" procedure](#method-2-installing-easybuild-with-easybuild)
421+
but works around the lack of `pip`.
420422
EasyBuild is first installed in a temporary work directory from files downloaded from PyPi. These
421423
are each untarred and then installed into their location by running
422424
``python3 setup.py install --prefix=...`` in their unpacked directory.
423425
We do so only for the framework and easyblocks files as the easconfig files are not used to
424426
install EasyBuild. Instead we create our own EasyConfig file for EasyBuild which contains
425427
some additional packages that enable extra features in EasyBuild and also provide more information
426428
to Lmod. Next the configuration module for EasyBuild (see the next section,
427-
["Configuring EasyBuild"](1_07_configuration), for more information) and use the temporary
429+
["Configuring EasyBuild"](../1_07_configuration), for more information) and use the temporary
428430
installation of EasyBuild with our own EasyConfig file to do a proper installation of EasyBuild
429431
with module in the final location.
430432

431433

432-
TODO: follow development setup but with downloading rather than cloning, then use that one with the
433-
EasyBuild configuration module to install EasyBuild with itself.
434-
435-
436-
437434
## Verifying the installation
438435

439436
Regardless of how EasyBuild was installed, you can now run a couple of basic commands to verify the installation:
@@ -447,7 +444,8 @@ To check which EasyBuild version you have installed, run:
447444
eb --version
448445
```
449446

450-
The output should match with the <a href="https://pypi.org/project/easybuild/">latest EasyBuild version</a>.
447+
The latest version (and an overview of previous versions) can always be
448+
[found on PyPi](https://pypi.org/project/easybuild/).
451449

452450

453451
#### Consulting the help output

docs/2022-CSC_and_LO/1_Intro/1_08_basic_usage.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -965,7 +965,6 @@ won't go into those here).
965965
966966
## Exercises
967967
968-
TODO: Rework for LUMI and provide the necessary EasyConfig files.
969968
970969
***Guidelines***
971970

0 commit comments

Comments
 (0)