2.9 KiB
title, keywords, last_updated, summary, sidebar, permalink
title | keywords | last_updated | summary | sidebar | permalink |
---|---|---|---|---|---|
Cray Programming Environment | cray, module | 24 Mai 2023 | This document describes how to use the Cray Programming Environment on Merlin7. | merlin7_sidebar | /merlin7/cray-module-env.html |
Loading the Cray module
The Cray Programming Environment, with Cray's compilers and MPI, is not loaded by default.
To load it, one has to run the following command:
module load cray
The Cray Programming Environment will load all the necessary dependencies. In example:
🔥 [caubet_m@login001:~]# module list
Currently Loaded Modules:
1) craype-x86-rome 2) libfabric/1.15.2.0
3) craype-network-ofi
4) xpmem/2.9.6-1.1_20240510205610__g087dc11fc19d 5) PrgEnv-cray/8.5.0
6) cce/17.0.0 7) cray-libsci/23.12.5
8) cray-mpich/8.1.28 9) craype/2.7.30
10) perftools-base/23.12.0 11) cpe/23.12
12) cray/23.12
You will notice an unfamiliar PrgEnv-cray/8.5.0
that was loaded. This is a meta-module that Cray provides to simplify the switch of compilers and their associated dependencies and libraries,
as a whole called Programming Environment. In the Cray Programming Environment, there are 4 key modules.
cray-libsci
is a collection of numerical routines tuned for performance on Cray systems.libfabric
is an important low-level library that allows you to take advantage of the high performance Slingshot network.cray-mpich
is a CUDA-aware MPI implementation, optimized for Cray systems.cce
is the compiler from Cray. C/C++ compilers are based on Clang/LLVM while Fortran supports Fortran 2018 standard. More info: https://user.cscs.ch/computing/compilation/cray/
You can switch between different programming environments. You can check the available module with the module avail
command, as follows:
🔥 [caubet_m@login001:~]# module avail PrgEnv
--------------------- /opt/cray/pe/lmod/modulefiles/core ---------------------
PrgEnv-cray/8.5.0 PrgEnv-gnu/8.5.0
PrgEnv-nvhpc/8.5.0 PrgEnv-nvidia/8.5.0
Switching compiler suites
Compiler suites can be exchanged with PrgEnv (Programming Environments) provided by HPE-Cray. The wrappers call the correct compiler with appropriate options to build and link applications with relevant libraries, as required by the loaded modules (only dynamic linking is supported) and therefore should replace direct calls to compiler drivers in Makefiles and build scripts.
To swap the the compiler suite from the default Cray to GNU compiler, one can run the following.
🔥 [caubet_m@login001:~]# module swap PrgEnv-cray/8.5.0 PrgEnv-gnu/8.5.0
Lmod is automatically replacing "cce/17.0.0" with "gcc-native/12.3".