Cray Programming Environment

HPE Cray Programming Environment (CPE) suite offers programmers a comprehensive set of tools for developing, porting, debugging, and tuning applications.

Note

Use CPE devices for maximum performance. CPE devices ensure maximum Slingshot optimized operation. Slingshot high speed network description: https://docs.hpc.kifu.hu/en/hardware/network.html

CPE Components

PrgEnv-aocc

AMD Optimizing C/C++ bundle

PrgEnv-cray

CCE Fortran, C/C++ compilers

PrgEnv-gnu

GNU compiler

PrgEnv-intel

Intel oneAPI bundle

PrgEnv-nvhpc

Nvidia HPC SDK bundle

atp

Abnormal Termination Processing (ATP)

cray-R

R for use on HPE Cray HPC systems

cray-ccdb

Cray Comparative Debugger (CCDB) tool

cray-cti

Cray Common Tools Interface (CTI)

cray-dsmml

Distributed symmetric memory management library (DSMML)

cray-dyninst

Dynamic instrumentation libraries

cray-fftw

Fastest Fourier Transform in the West (FFTW3)

cray-libpals

Parallel Application Launch Service library

cray-libsci

Cray Scientific Libraries

cray-libsci_acc

Cray Scientific Libraries for GPU

cray-mpich

Cray MPICH Message Passing Interface

cray-mpich-abi

Cray MPICH ABI Compatibility module

cray-mpich-abi-pre-intel-5.0

cray Cray MPICH pre-Intel MPI 5.0 ABI Compatibility module

cray-mpich-ucx

Message Passing Interface (MPI) for the UCX netmod

cray-mrnet

Multicast Reduction Network module

cray-openshmemx

Logically shared distributed memory access routines

cray-pals

Parallel Application Launch Service

cray-parallel-netcdf

Parallel I/O library for NetCDF file access

cray-pmi

Cray Process Management Interface

cray-python

Python programming language and libraries for Cray PE

cray-stat

Cray Stack Trace Analysis Tool

craype

Setup for Cray PE driver set and targeting modules

craype-dl-plugin-ftr

Cray PE DL Plugin with fault tolerance support

craype-dl-plugin-py3

Cray PE DL Plugin for accelerating distributed deep learning

gdb4hpc

Cray Line Mode Parallel Debugger

papi

Performance API (PAPI) project specifies a standard API

perftools-base

Performance Tools module (CrayPat, Apprentice2, Reveal)

sanitizers4hpc

Fool for running HPC code instrumented with LLVM Sanitizer

valgrind4hpc

Valgrind-based debugging tool to aid in the detection of memory leaks

CPE Environment

The Cray Compiling Environment (CCE) module and its dependencies are loaded by default on each node and on the login server.

Currently Loaded Modulefiles:
  1) craype-x86-rome          3) craype-network-ofi       5) cce/16.0.1               7) cray-dsmml/0.2.2         9) cray-libsci/23.09.1.1
  2) libfabric/1.15.2.0       4) perftools-base/23.09.0   6) craype/2.7.23            8) cray-mpich/8.1.27       10) PrgEnv-cray/8.4.0

The GNU compiler can be loaded instead of the CCE compiler:

module swap PrgEnv-cray PrgEnv-gnu

The Nvidia HPC SDK and the Nvidia compiler can be used as follows:

module swap PrgEnv-cray PrgEnv-nvhpc

More information: Programming Models

Useful Compiler Settings

CCE Compiler

Directive

Flag

Default Optimization

-O0

Aggressive Optimization

-Ofast -flto

Good Performance

-O2 -funroll-loops -ffast-math

A100 Card Optimization

-target-accel=nvidia80

Enable OpenMP

-fopenmp

Debug

-g -O0

Verbose

-v

GNU Compiler

Directive

Flag

Default Optimization

-O0

Aggressive Optimization

-Ofast

Good Performance

-O2 -ftree-vectorize -funroll-loops -ffast-math

Enable OpenMP

-fopenmp

Debug

-g -O0

Verbose

-v

Nvidia Compiler

Compiling Directive

Nvidia

Default Optimization

-O1

Aggressive Optimization

-O4 -fast

A100 Card Optimization

-gpu=cc80

Enable OpenMP

-mp (CPU) -mp=gpu (GPU)

Enable OpenAC

-acc

Debug

-g -O0 (default)

Verbose

-v

Reference Manuals:

Language

Wrapper

CCE

GNU

C

man cc

man CC

man ftn

C++

man craycc

man crayCC

man crayftn

Fortran

man gcc

man g++

man gfortran

HPE Cray Programming Environment documentation: https://cpe.ext.hpe.com/docs/