Skip to content

Commit d0f2b80

Browse files
committed
Update dev environment docs for 23.09 default CPE.
1 parent cf017ab commit d0f2b80

File tree

1 file changed

+95
-73
lines changed

1 file changed

+95
-73
lines changed

docs/user-guide/dev-environment.md

Lines changed: 95 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,24 @@ You can see what compiler environments are available with:
2222
```
2323
auser@uan01:~> module avail PrgEnv
2424
25-
--------------------------------------- /opt/cray/pe/lmod/modulefiles/core ----------------------------------------
26-
PrgEnv-aocc/8.3.3 PrgEnv-cray/8.3.3 (L) PrgEnv-gnu/8.3.3
25+
------------------------------------- /opt/cray/pe/lmod/modulefiles/core --------------------------------------
26+
PrgEnv-amd/8.3.3 PrgEnv-cray-amd/8.3.3 PrgEnv-gnu-amd/8.3.3
27+
PrgEnv-amd/8.4.0 (D) PrgEnv-cray-amd/8.4.0 (D) PrgEnv-gnu-amd/8.4.0 (D)
28+
PrgEnv-aocc/8.3.3 PrgEnv-cray/8.3.3 PrgEnv-gnu/8.3.3
29+
PrgEnv-aocc/8.4.0 (D) PrgEnv-cray/8.4.0 (L,D) PrgEnv-gnu/8.4.0 (D)
2730
2831
Where:
2932
L: Module is loaded
33+
D: Default Module
3034
3135
Module defaults are chosen based on Find First Rules due to Name/Version/Version modules found in the module tree.
3236
See https://lmod.readthedocs.io/en/latest/060_locating.html for details.
3337
38+
If the avail list is too long consider trying:
39+
40+
"module --default avail" or "ml -d av" to just list the default modules.
41+
"module overview" or "ml ov" to display the number of modules for each name.
42+
3443
Use "module spider" to find all possible modules and extensions.
3544
Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
3645
@@ -44,31 +53,45 @@ auser@uan01:~> module spider
4453
---------------------------------------------------------------------------------------------------------------
4554
The following is a list of the modules and extensions currently available:
4655
---------------------------------------------------------------------------------------------------------------
47-
PrgEnv-aocc: PrgEnv-aocc/8.3.3
56+
PrgEnv-amd: PrgEnv-amd/8.3.3, PrgEnv-amd/8.4.0
57+
58+
PrgEnv-aocc: PrgEnv-aocc/8.3.3, PrgEnv-aocc/8.4.0
59+
60+
PrgEnv-cray: PrgEnv-cray/8.3.3, PrgEnv-cray/8.4.0
61+
62+
PrgEnv-cray-amd: PrgEnv-cray-amd/8.3.3, PrgEnv-cray-amd/8.4.0
4863
49-
PrgEnv-cray: PrgEnv-cray/8.3.3
64+
PrgEnv-gnu: PrgEnv-gnu/8.3.3, PrgEnv-gnu/8.4.0
5065
51-
PrgEnv-gnu: PrgEnv-gnu/8.3.3
66+
PrgEnv-gnu-amd: PrgEnv-gnu-amd/8.3.3, PrgEnv-gnu-amd/8.4.0
5267
53-
amd-uprof: amd-uprof/3.6.449
68+
adios2: adios2/2.10.1-aocc, adios2/2.10.1-cray, adios2/2.10.1-gnu
5469
55-
aocc: aocc/3.2.0
70+
amd: amd/5.2.3
5671
57-
aocc-mixed: aocc-mixed/3.2.0
72+
amd-mixed: amd-mixed/5.2.3
73+
74+
amd-uprof: amd-uprof/4.0.341
75+
76+
aocc: aocc/3.2.0, aocc/4.0.0
77+
78+
aocc-mixed: aocc-mixed/3.2.0, aocc-mixed/4.0.0
5879
5980
aocl: aocl/3.1, aocl/4.0
6081
61-
forge: forge/24.0
82+
arm/forge: arm/forge/22.1.3
6283
63-
atp: atp/3.14.16
84+
atp: atp/3.14.16, atp/3.15.1
6485
65-
bolt: bolt/0.7, bolt/0.8
86+
blender: blender/4.2.2
87+
88+
bolt: bolt/0.8
6689
6790
boost: boost/1.72.0, boost/1.81.0
6891
69-
castep: castep/22.11
92+
castep: castep/23.11, castep/24.1, castep/25.11
7093
71-
cce: cce/15.0.0
94+
cce: cce/15.0.0, cce/16.0.1
7295
7396
...output trimmed...
7497
@@ -120,17 +143,17 @@ For example, at login, the default set of modules are:
120143
```
121144
auser@ln03:~> module list
122145
123-
1) craype-x86-rome 6) cce/15.0.0 11) PrgEnv-cray/8.3.3
124-
2) libfabric/1.12.1.2.2.0.0 7) craype/2.7.19 12) bolt/0.8
125-
3) craype-network-ofi 8) cray-dsmml/0.2.2 13) epcc-setup-env
126-
4) perftools-base/22.12.0 9) cray-mpich/8.1.23 14) load-epcc-module
127-
5) xpmem/2.5.2-2.4_3.30__gd0f7936.shasta 10) cray-libsci/22.12.1.1
128-
146+
Currently Loaded Modules:
147+
1) craype-x86-rome 6) cce/16.0.1 11) PrgEnv-cray/8.4.0
148+
2) libfabric/1.12.1.2.2.0.0 7) craype/2.7.23 12) bolt/0.8
149+
3) craype-network-ofi 8) cray-dsmml/0.2.2 13) epcc-setup-env
150+
4) perftools-base/23.09.0 9) cray-mpich/8.1.27 14) load-epcc-module
151+
5) xpmem/0.2.119-1.3_0_gnoinfo 10) cray-libsci/23.09.1.1
129152
```
130153

131154
from which we see the default compiler environment is Cray (indicated
132155
by `PrgEnv-cray` (at 11 in the list above) and the default compiler module
133-
is `cce/15.0.0` (at 6 in the list above). The compiler environment
156+
is `cce/16.0.1` (at 6 in the list above). The compiler environment
134157
will give access to a consistent set of compiler, MPI library via
135158
`cray-mpich` (at 9), and other libraries e.g., `cray-libsci` (at 10 in
136159
the list above).
@@ -144,14 +167,14 @@ Switching between different compiler environments is achieved using the
144167
```
145168
auser@ln03:~> module load PrgEnv-gnu
146169
147-
Lmod is automatically replacing "cce/15.0.0" with "gcc/11.2.0".
170+
Lmod is automatically replacing "cce/16.0.1" with "gcc/11.2.0".
148171
149172
150-
Lmod is automatically replacing "PrgEnv-cray/8.3.3" with "PrgEnv-gnu/8.3.3".
173+
Lmod is automatically replacing "PrgEnv-cray/8.4.0" with "PrgEnv-gnu/8.4.0".
151174
152175
153176
Due to MODULEPATH changes, the following have been reloaded:
154-
1) cray-mpich/8.1.23
177+
1) cray-mpich/8.1.27
155178
156179
```
157180

@@ -162,13 +185,11 @@ has been changed to the GCC environment:
162185
auser@ln03:~> module list
163186
164187
Currently Loaded Modules:
165-
1) craype-x86-rome 6) bolt/0.8 11) cray-dsmml/0.2.2
166-
2) libfabric/1.12.1.2.2.0.0 7) epcc-setup-env 12) cray-mpich/8.1.23
167-
3) craype-network-ofi 8) load-epcc-module 13) cray-libsci/22.12.1.1
168-
4) perftools-base/22.12.0 9) gcc/11.2.0 14) PrgEnv-gnu/8.3.3
169-
5) xpmem/2.5.2-2.4_3.30__gd0f7936.shasta 10) craype/2.7.19
170-
171-
188+
1) craype-x86-rome 6) bolt/0.8 11) cray-dsmml/0.2.2
189+
2) libfabric/1.12.1.2.2.0.0 7) epcc-setup-env 12) cray-mpich/8.1.27
190+
3) craype-network-ofi 8) load-epcc-module 13) cray-libsci/23.09.1.1
191+
4) perftools-base/23.09.0 9) gcc/11.2.0 14) PrgEnv-gnu/8.4.0
192+
5) xpmem/0.2.119-1.3_0_gnoinfo 10) craype/2.7.23
172193
```
173194

174195
### Switching between compiler versions
@@ -182,14 +203,14 @@ the older 10.3.0 version, you would use
182203
```
183204
auser@ln03:~> module load PrgEnv-gnu
184205
185-
Lmod is automatically replacing "cce/15.0.0" with "gcc/11.2.0".
206+
Lmod is automatically replacing "cce/16.0.1" with "gcc/11.2.0".
186207
187208
188-
Lmod is automatically replacing "PrgEnv-cray/8.3.3" with "PrgEnv-gnu/8.3.3".
209+
Lmod is automatically replacing "PrgEnv-cray/8.4.0" with "PrgEnv-gnu/8.4.0".
189210
190211
191212
Due to MODULEPATH changes, the following have been reloaded:
192-
1) cray-mpich/8.1.23
213+
1) cray-mpich/8.1.27
193214
194215
auser@ln03:~> module load gcc/10.3.0
195216
@@ -206,11 +227,11 @@ will show that your environment has been changed:
206227
auser@ln03:~> module list
207228
208229
Currently Loaded Modules:
209-
1) craype-x86-rome 6) bolt/0.8 11) cray-libsci/22.12.1.1
210-
2) libfabric/1.12.1.2.2.0.0 7) epcc-setup-env 12) PrgEnv-gnu/8.3.3
211-
3) craype-network-ofi 8) load-epcc-module 13) gcc/10.3.0
212-
4) perftools-base/22.12.0 9) craype/2.7.19 14) cray-mpich/8.1.23
213-
5) xpmem/2.5.2-2.4_3.30__gd0f7936.shasta 10) cray-dsmml/0.2.2
230+
1) craype-x86-rome 6) bolt/0.8 11) cray-libsci/23.09.1.1
231+
2) libfabric/1.12.1.2.2.0.0 7) epcc-setup-env 12) PrgEnv-gnu/8.4.0
232+
3) craype-network-ofi 8) load-epcc-module 13) gcc/10.3.0
233+
4) perftools-base/23.09.0 9) craype/2.7.23 14) cray-mpich/8.1.27
234+
5) xpmem/0.2.119-1.3_0_gnoinfo 10) cray-dsmml/0.2.2
214235
215236
216237
```
@@ -311,14 +332,14 @@ compiler environment via:
311332
```
312333
auser@ln03:~> module load PrgEnv-gnu
313334
314-
Lmod is automatically replacing "cce/15.0.0" with "gcc/11.2.0".
335+
Lmod is automatically replacing "cce/16.0.1" with "gcc/11.2.0".
315336
316337
317-
Lmod is automatically replacing "PrgEnv-cray/8.3.3" with "PrgEnv-gnu/8.3.3".
338+
Lmod is automatically replacing "PrgEnv-cray/8.4.0" with "PrgEnv-gnu/8.4.0".
318339
319340
320341
Due to MODULEPATH changes, the following have been reloaded:
321-
1) cray-mpich/8.1.23
342+
1) cray-mpich/8.1.27
322343
323344
```
324345

@@ -412,9 +433,9 @@ As CCE is the default compiler environment on ARCHER2, you do not usually
412433
need to issue any commands to enable CCE.
413434

414435
!!! note
415-
The CCE Clang compiler uses a GCC 8 toolchain so only C++ standard
416-
library features available in GCC 8 will be available in CCE Clang.
417-
You can add the compile option `--gcc-toolchain=/opt/gcc/11.2.0/snos`
436+
The CCE Clang compiler uses a GCC 10 toolchain so only C++ standard
437+
library features available in GCC 10 will be available in CCE Clang.
438+
You can add the compile option `--gcc-toolchain=/opt/cray/pe/gcc/12.2.0/snos`
418439
to use a more recent version of the C++ standard library if you
419440
wish.
420441

@@ -429,7 +450,7 @@ Language, warning, Debugging options:
429450
| Option | Comment |
430451
| ------ | ------- |
431452
| `-std=<standard>` | Default is `-std=gnu11` (`gnu++14` for C++) \[1\] |
432-
| `--gcc-toolchain=/opt/cray/pe/gcc/12.2.0/snos` | Use the GCC 12.2.0 toolchain instead of the default 11.2.0 version packaged with CCE |
453+
| `--gcc-toolchain=/opt/cray/pe/gcc/12.2.0/snos` | Use the GCC 12.2.0 toolchain instead of the default 10.3.0 version packaged with CCE |
433454

434455
Performance options:
435456

@@ -492,14 +513,14 @@ compiler environment via:
492513
```
493514
auser@ln03:~> module load PrgEnv-aocc
494515
495-
Lmod is automatically replacing "cce/15.0.0" with "aocc/3.2.0".
516+
Lmod is automatically replacing "cce/16.0.1" with "aocc/4.0.0".
496517
497518
498-
Lmod is automatically replacing "PrgEnv-cray/8.3.3" with "PrgEnv-aocc/8.3.3".
519+
Lmod is automatically replacing "PrgEnv-cray/8.4.0" with "PrgEnv-aocc/8.4.0".
499520
500521
501522
Due to MODULEPATH changes, the following have been reloaded:
502-
1) cray-mpich/8.1.23
523+
1) cray-mpich/8.1.27
503524
504525
```
505526

@@ -515,7 +536,7 @@ Due to MODULEPATH changes, the following have been reloaded:
515536

516537
HPE Cray provide, as standard, an MPICH implementation of the message
517538
passing interface which is specifically optimised for the ARCHER2
518-
interconnect. The current implementation supports MPI standard version 3.1.
539+
interconnect. The current implementation supports MPI standard version 3.4.
519540

520541
The HPE Cray MPICH implementation is linked into software by default when
521542
compiling using the standard wrapper scripts: `cc`, `CC` and `ftn`.
@@ -616,8 +637,8 @@ first choice for access to software libraries if available.
616637

617638
ARCHER2 currently has the following HPE Cray Programming Environment (CPE) releases available:
618639

619-
- **22.12: Current default**
620-
- 23.09
640+
- 22.12
641+
- **23.09: Current default**
621642

622643
You can find information, notes, and lists of changes for current and upcoming ARCHER2
623644
HPE Cray programming environments in [the HPE Cray Programming Environment GitHub
@@ -646,42 +667,42 @@ Loading a `cpe` module will do the following:
646667
- All HPE Cray PE modules will be updated so their default version is the
647668
one from the PE you have selected
648669

649-
For example, if you have a code that uses the Gnu compiler environment, FFTW
650-
and NetCDF parallel libraries and you want to compile in the (non-default) 22.04
651-
programming environment, you would do the following:
670+
For example, if you have a code that uses the Gnu compiler environment, FFTW and
671+
NetCDF parallel libraries and you want to compile in the (non-default and older)
672+
22.12 programming environment, you would do the following:
652673

653-
First, load the `cpe/23.09` module to switch all the defaults to the versions from
654-
the 22.04 PE. Then, swap to the GNU compiler environment and load the required library
674+
First, load the `cpe/22.12` module to switch all the defaults to the versions from
675+
the 22.12 PE. Then, swap to the GNU compiler environment and load the required library
655676
modules (FFTW, hdf5-parallel and NetCDF HDF5 parallel). The loaded module list shows they
656-
are the versions from the 22.04 PE:
677+
are the versions from the 22.12 PE:
657678

658679

659680
```bash
660-
module load cpe/23.09
681+
module load cpe/22.12
661682
```
662683

663684
Output:
664685
```output
665686
666687
The following have been reloaded with a version change:
667-
1) PrgEnv-cray/8.3.3 => PrgEnv-cray/8.4.0 4) cray-mpich/8.1.23 => cray-mpich/8.1.27
668-
2) cce/15.0.0 => cce/16.0.1 5) craype/2.7.19 => craype/2.7.23
669-
3) cray-libsci/22.12.1.1 => cray-libsci/23.09.1.1 6) perftools-base/22.12.0 => perftools-base/23.09.0
688+
1) PrgEnv-cray/8.4.0 => PrgEnv-cray/8.3.3 4) cray-mpich/8.1.27 => cray-mpich/8.1.23
689+
2) cce/16.0.1 => cce/15.0.0 5) craype/2.7.23 => craype/2.7.19
690+
3) cray-libsci/23.09.1.1 => cray-libsci/22.12.1.1 6) perftools-base/23.09.0 => perftools-base/22.12.0
670691
```
671692

672693
```bash
673694
module load PrgEnv-gnu
674695
```
675696
Output:
676697
```output
677-
Lmod is automatically replacing "cce/16.0.1" with "gcc/11.2.0".
698+
Lmod is automatically replacing "cce/15.0.0" with "gcc/11.2.0".
678699
679700
680-
Lmod is automatically replacing "PrgEnv-cray/8.4.0" with "PrgEnv-gnu/8.4.0".
701+
Lmod is automatically replacing "PrgEnv-cray/8.3.3" with "PrgEnv-gnu/8.3.3".
681702
682703
683704
Due to MODULEPATH changes, the following have been reloaded:
684-
1) cray-mpich/8.1.27
705+
1) cray-mpich/8.1.23
685706
686707
```
687708

@@ -695,11 +716,12 @@ module list
695716
Output:
696717
```output
697718
Currently Loaded Modules:
698-
1) craype-x86-rome 6) epcc-setup-env 11) craype/2.7.23 16) cray-fftw/3.3.10.5
699-
2) libfabric/1.12.1.2.2.0.0 7) load-epcc-module 12) cray-dsmml/0.2.2 17) cray-hdf5-parallel/1.12.2.7
700-
3) craype-network-ofi 8) perftools-base/23.09.0 13) cray-mpich/8.1.27 18) cray-netcdf-hdf5parallel/4.9.0.7
701-
4) xpmem/2.5.2-2.4_3.30__gd0f7936.shasta 9) cpe/23.09 14) cray-libsci/23.09.1.1
702-
5) bolt/0.8 10) gcc/11.2.0 15) PrgEnv-gnu/8.4.0
719+
1) craype-x86-rome 7) load-epcc-module 13) cray-mpich/8.1.23
720+
2) libfabric/1.12.1.2.2.0.0 8) perftools-base/22.12.0 14) cray-libsci/22.12.1.1
721+
3) craype-network-ofi 9) cpe/22.12 15) PrgEnv-gnu/8.3.3
722+
4) xpmem/0.2.119-1.3_0_gnoinfo 10) gcc/11.2.0 16) cray-fftw/3.3.10.5
723+
5) bolt/0.8 11) craype/2.7.19 17) cray-hdf5-parallel/1.12.2.1
724+
6) epcc-setup-env 12) cray-dsmml/0.2.2 18) cray-netcdf-hdf5parallel/4.9.0.1
703725
704726
```
705727

@@ -728,12 +750,12 @@ environment variable.
728750

729751
**At compile time** you need to load the version of the library module before you compile
730752
*and* set the LD_LIBRARY_PATH environment variable to include the contencts of
731-
`$CRAY_LD_LIBRARY_PATH` as the first entry. For example, to use the, non-default, 23.09.1.1
753+
`$CRAY_LD_LIBRARY_PATH` as the first entry. For example, to use the, non-default, older 22.12.1.1
732754
version of HPE Cray LibSci in the default programming environment (Cray Compiler Environment,
733755
CCE) you would first setup the environment to compile with:
734756

735757
```bash
736-
module load cray-libsci/23.09.1.1
758+
module load cray-libsci/22.12.1.1
737759
export LD_LIBRARY_PATH=$CRAY_LD_LIBRARY_PATH:$LD_LIBRARY_PATH
738760
```
739761

@@ -753,7 +775,7 @@ Output:
753775
```
754776
linux-vdso.so.1 (0x00007ffc7fff5000)
755777
libm.so.6 => /lib64/libm.so.6 (0x00007fd6a6361000)
756-
libsci_cray.so.5 => /opt/cray/pe/libsci/23.09.1.1/CRAY/12.0/x86_64/lib/libsci_cray.so.5 (0x00007fd6a2419000)
778+
libsci_cray.so.5 => /opt/cray/pe/libsci/22.12.1.1/CRAY/9.0/x86_64/lib/libsci_cray.so.5 (0x00007fd6a2419000)
757779
libdl.so.2 => /lib64/libdl.so.2 (0x00007fd6a2215000)
758780
libxpmem.so.0 => /opt/cray/xpmem/default/lib64/libxpmem.so.0 (0x00007fd6a68b3000)
759781
libquadmath.so.0 => /opt/cray/pe/gcc-libs/libquadmath.so.0 (0x00007fd6a1fce000)
@@ -799,7 +821,7 @@ look like:
799821
#SBATCH --reservation=shortqos
800822
801823
# Setup up the environment to use the non-default version of LibSci
802-
module load cray-libsci/23.09.1.1
824+
module load cray-libsci/22.12.1.1
803825
export LD_LIBRARY_PATH=$CRAY_LD_LIBRARY_PATH:$LD_LIBRARY_PATH
804826
805827
# Check which library versions the executable is pointing too

0 commit comments

Comments
 (0)