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


Bug "Bus Error" fixed

The occasional "Bus error" in the logs of simulations was a bug affecting Eiger that has been reported to HPE/Cray support and has been fixed by the recent update of Eiger

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 (aocccce , 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:

CPE toolchains
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:  

Search for a module
$ module spider gromacs

--------------------------------------------------------------------------------------------------------------------------------
  GROMACS: GROMACS/2021.5
--------------------------------------------------------------------------------------------------------------------------------
    Description:
      GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for systems
      with hundreds to millions of particles.       

    Versions:
        GROMACS/2021.5

-----------------------------------------------------------------------------------------------------------------
  For detailed information about a specific "GROMACS" package (including how to load the modules) use the module's full name.
  Note that names that have a trailing (E) are extensions provided by other modules.
  For example:

     $ module spider GROMACS/2021.5

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:

Load a module with its toolchain
$ ml cpeGNU GROMACS

Due to MODULEPATH changes, the following have been reloaded:
  1) cray-mpich/8.1.12

$ ml

Currently Loaded Modules:
  1) craype-x86-rome                             6) cray-dsmml/0.2.2       11) perftools-base/21.12.0
  2) libfabric/1.11.0.4.79                       7) cray-libsci/21.08.1.2  12) cpe/21.12
  3) craype-network-ofi                          8) cray-mpich/8.1.12      13) cpeGNU/21.12
  4) xpmem/2.2.40-7.0.1.0_2.4__g1d7a24d.shasta   9) craype/2.7.13          14) craype-hugepages8M
  5) PrgEnv-gnu/8.3.0                           10) gcc/11.2.0             15) GROMACS/2021.5

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:

Available Applications on Eiger
cpeAMD: GSL   

cpeCray: GSL   

cpeGNU: Boost, Boost-python3, CDO, CP2K, GROMACS, GSL, Julia, JuliaExtensions, jupyterlab, LAMMPS, NAMD, NCO

cpeIntel: GSL, QuantumESPRESSO, VASP

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 ToolsFunctionalities (highlights)
Buildah
  • Build OCI compliant (Docker) container images directly on Eiger
  • Execute commands inside a running container 
  • Additional documentation
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.