Named after the mountain of the Bernese Alps, Eiger is the production partition on Alps, the HPE Cray EX Supercomputer, which is accessible via SSH as eiger.cscs.ch
from the frontend ela.cscs.ch
.
Latest news
You can read the Latest news on Eiger, that include the announcements about planned interventions on the system. The list of past and on-going interventions is available in the page about Past interventions.
Architecture
Compute Nodes (CN) feature two sockets with one AMD EPYCTM 7742 64-Core processor per socket, that interface with the high-speed HPE Slingshot interconnect: please check the system specifics of the HPE Cray EX Supercomputer. More detailed information on the supercomputer cabinets and the HPE Slingshot interconnect is available in the HPE Cray EX Liquid-Cooled Cabinet for Large-Scale Systems brochure.
Optimal CPU affinity settings require an understanding of the architectural features of the AMD EPYCTM 7742 processor: please refer to the technical description of the processor for further details.
Please find additional details on the Compute node configuration and the CPU configuration following the links to the dedicated pages.
Cray Programming Environment (CPE)
User Access Nodes (UAN) are the login nodes of the system and feature the Cray Programming Environment (CPE). The CPE provides tools for applications development and code performance analysis, including compilers, analyzers, optimized libraries, and debuggers. The CPE implementation on the system is controlled using the environment modules system Lmod, written in the Lua programming language, which provides a hierarchical mechanism to access compilers, tools and applications. Please find out more in the page Lmod with the CPE.
No modules are loaded by default at login: users need to load the module cray
first, then they will be able to load the modules available in the default Cray programming environment. Therefore users are invited to add the command module load cray
to their scripts and workflows.
Cray meta-modules
CPE modulefiles are organized into meta-modules, each one supporting a different compiler suite, that can be loaded as usual with the command module load
. The CPE on the system comes with the definition of the meta-modules PrgEnv-aocc
, PrgEnv-cray
, PrgEnv-gnu
and PrgEnv-intel
.
Depending on the chosen CPE meta-module, the environment variable PE_ENV
will be defined (with value AOCC
, CRAY
, GNU
or INTEL
respectively), loading the module craype
with the compiler wrappers (cc
for C code, CC
for C++ code and ftn
for Fortran code), the compiler (aocc
, cce
, gcc
or intel
according to the selected environment), the MPI library (cray-mpich
) and the scientific library (cray-libsci
).
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. The compilers available on the system support different implementations of the OpenMP API. Please check the _OPENMP
macro for each compiler version, which helps mapping it with the supported OpenMP API. For instance, the clang-cpp
pre-processor of the aocc
and cce
available loading the default modules will return 201811
(Nov 2018) using the command below:
$ echo | clang-cpp -fopenmp -dM | grep _OPENMP #define _OPENMP 201811
Supported applications and libraries
Supported applications and libraries are built using the EasyBuild toolchains cpeAMD
, cpeCray,
cpeGNU
and cpeIntel,
which load compilers and libraries of the modules PrgEnv-aocc
, PrgEnv-cray,
PrgEnv-gnu
and PrgEnv-intel
respectively: please have a look at Building software with EasyBuild for more details. After loading a toolchain module, you will be able to list with module avail
and load with module load
additional applications and libraries built with the currently loaded toolchain. The available CPE toolchains can be listed using the following command:
module avail cpe
You can list all the modules on the system by typing the command module spider
. Add an argument to the module spider
command to get the instructions to load a specific module. When multiple versions are available, you have to provide the module full name as argument to the module spider
command, in order to see how to load it, as in the example below:
As explained in the section Module hierarchy, the search is case insensitive: however, you need to type the correct case when loading the module.
Please note that the toolchains follow the naming convention of the Cray Programming Environment, that is released on a monthly basis: as a consequence, the version of the toolchain modules has the format YY.MM
(two digits for the year, two digits for the month). If you don't specify the version in your module
command, the default will be selected by Lmod; when no default is set, Lmod will load the latest one:
You can retrieve the complete list of modules available on the system with the command module spider
, as described above. Software commonly used on the system is listed below:
Running Jobs
Please have a look at the page dedicated to Eiger under the section Running jobs for detailed information and a template batch job submission script on Eiger.
Container solutions
Available Tools | Functionalities (highlights) |
---|---|
Buildah |
|
Sarus |
|
Singularity |
|
Please click on the name of the tool to access the dedicated pages available in the CSCS Knowledge Base.
Debugging and Performance analysis tools
The HPE/Cray EX Programming Environment provides a set of debugging and performance analysis tools to analyse the behaviour and performance of programs running on the system, namely cray-ccdb
, cray-stat
, gdb4hpc
, valgrind
, papi
, perftools
.
In addition to the tools provided by HPE/Cray, we also support the ddt
debugger.
Interactive Computing with JupyterLab
JupyterLab is available on the system and can be used as described in the dedicated page on JupyterLab in the CSCS Knowledge Base. For further information on creating Jupyter kernels from virtual environments or if you run into any issues using any of our tools, please contact us as described below.
Contact us
Please have a look at the article How to submit a support request on the CSCS Knowledge Base: after logging in with your credentials, you can select a request type that best matches your question, that will be directed to the team in charge and will help us react faster.
Please make sure to include all relevant information to help us address your request: kindly note that the request summary, description and project are mandatory fields for all request types, while the system is mandatory for some request types only.