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/