Release overview introduction

This publication is an overview of the HPE Cray Compiling Environment (CCE) 17.0.1 release. CCE provides Fortran, C, and C++ compilers for HPE Cray EX supercomputer systems and HPE Apollo 2000 Gen10Plus systems.

Product and OS dependencies

This HPE CCE release is available for:

  • HPE Cray supercomputer systems running HPE Cray System Management (CSM) 1.5 with HPE Cray Supercomputing Operating System (COS) 23.11 and (SLES15 SP5),

  • HPE Cray Supercomputer systems running HPCM 1.11 with COS 23.11 (SLES15 SP5),

  • HPE Cray Supercomputer systems running HPCM 1.10 with COS 2.5.145+ and (SLES15 SP4), or

  • HPE Apollo 2000 Gen10Plus systems running HPCM 1.10 with RHEL 8.8.

Note that:

  • COS 23.11 components comprises:

    • COS Base

    • HPE Cray Supercomputing User Services Software (USS)

    • HPE SUSE Linux Enterprise Server

  • AMD GPU offloading support requires at least ROCm 5.0 and has been tested up to ROCm 5.7.

Package description

This HPE CCE release consists of:

  • HPE Cray Fortran compiler (17.0.1)

  • C and C++ compilers (17.0.1)

  • CrayLibs libraries and utilities (17.0.1)

  • Supporting documentation and man pages

Software enhancements and support

This section describes software enhancements and support details for the HPE CCE 17.0.1 release.

Language technology

  • HPE Cray Fortran fully supports the Fortran 2018 standard.

  • The C and C++ compilers are based on Clang and LLVM 17.0.6.

    • C fully supports c89 with partial support for c99, c11, and c17.

    • C++ fully supports C++17 with partial support for C++20 and C++23.

  • LLVM version 17.0.6 base.

Miscellaneous features

  • Added OMPT device tracing support, which allows for profiling of OpenMP-based applications

  • Tuned support for MI300A Accelerated Processing Unit (APU)

  • Added experimental LLVM Address Sanitizer (ASAN) compiler support for AMD GPUs for Fortran

Compatibilities, incompatibilities, and differences

  • The OpenACC acc_handle_kind type size has been changed from 4 to 8 bytes. This update requires the recompilation of any code that uses this data type.

  • Linking Fortran applications might fail with the hidden symbol <SYMBOL> in <LIB> is referenced by DSO error message. If you encounter this error message, add -lgcc_s to the issued link line. Note that this issue can affect the use of craypat and cray-parallel-netcdf but can be seen without them.

  • Programs compiling with -fopenmp must use CUDA 12.1.1 (or later) or alternatively, manually change the header to mitigate the cuda_fp16.h header bug detailed in the upstream issue.

Accessing product documentation

Access HPE documents and man pages for HPE CCE releases from:

  • HPE Support Center

    Access PDF versions of all CCE documents at the HPE Support Center. See Available publications for a complete list.

    To narrow search results from the HPE Support Center website, enter the publication and release number (for example, S-5212 17.0.1).

  • Release Package

    All HPE Cray Programming Environment (CPE) and HPE Cray Compiling Environment (CCE) documents are included in documentation tar files provided in the release package. See Available publications for details.

  • Man pages

    Man pages are textual help files available from the command line on HPE and HPE Cray systems. To access man pages, enter the man command followed by the name of the man page. For more information about man pages, see the man(1) man page by entering:

    hostname> man man
    

    Basic CCE man pages provided include crayftn(1), craycc(1), crayCC(1), intro_openmp(7), and intro_MPI(3).

    The ftn(1), cc(1), and CC(1) man pages are disambiguation man pages that provide basic introductions to the compiler environment. For information specific to the CCE Fortran compiler, see the crayftn(1) man page. For information specific to the CCE C, C++, or UPC compiler, see the clang(1) man page.

    Alternatively, the craycc(1) and crayCC(1) man pages are aliases that redirect to the Clang C, C++, and UPC man page.

  • Third-party documentation

    Third-party documentation is not provided by HPE.

Available publications

Publications supporting the compiling environment are:

Document Title

Number

Updated for CCE 17.0.1?

HPE Cray Compiling Environment Release Overview (this document)

S-5212

Yes

HPE Cray Fortran Reference Manual

S-3901

Yes

HPE Cray C and C++ Quick Reference

S-2179

Yes

The system-based programming environment installation and user guides are:

System

Guide

HPE Cray EX systems running CSM

HPE Cray Programming Environment Installation Guide: CSM on HPE Cray EX Systems (S-8003)

HPE Cray Programming Environment User Guide: CSM on HPE Cray EX Systems (S-8005)

HPE Cray EX or HPE Cray supercomputer systems running HPCM

HPE Cray Programming Environment Installation Guide: HPCM on HPE Cray EX and HPE Cray Supercomputer Systems (S-8022)

HPE Cray Programming Environment User Guide: HPCM on HPE Cray EX and HPE Cray Supercomputer Systems (S-8023)

HPE Apollo 2000 Gen10 Plus systems

HPE Cray Programming Environment Installation Guide: Apollo 2000 Gen10 Plus (x86) System (S-8012)

HPE Cray Programming Environment User Guide: Apollo 2000 Gen10 Plus (x86) System (S-8008)

All systems

HPE Performance Analysis Tools User Guide (S-8014)

Additional resources

Product

Documentation Source

Clang/LLVM C and C++ compiler

Documentation for the CCE C and C++ compilers is available here, in the clang(1) man page, and can be accessed by entering the -help command line option.

GNU compilers

Documentation for the GNU C and Fortran compilers is available here

glibc

glibc documentation is available here

GLIB

GLIB documentation is available here

RPM

RPM documentation is available here

Installing CCE

To install CCE:

hostname# rpm -ivh <rpm_name>.<arch>.rpm

To set CCE version <version> as default:

hostname# /opt/cray/pe/admin-pe/set_default_files/set_default_cce_<version>

All CPE installation guides are available on the HPE Support Center. The appropriate installation guide for the system is included in the documentation tar file packaged with the release.

System

Guide

HPE Cray EX systems running CSM

HPE Cray Programming Environment Installation Guide: CSM on HPE Cray EX Systems (S-8003)

HPE Cray EX or HPE Cray supercomputer systems running HPCM

HPE Cray Programming Environment Installation Guide: HPCM on HPE Cray EX and HPE Cray Supercomputer Systems (S-8022)

HPE Apollo 2000 Gen10 Plus systems

HPE Cray Programming Environment Installation Guide: Apollo 2000 Gen10 Plus (x86) System (S-8012)

Using the HPE Cray Compiling Environment

To use CCE:

hostname> module load PrgEnv-cray

This module defines the system paths and environment variables needed to build an application using CCE for supported systems and loads and links additional libraries as required. The exact modules loaded vary depending on the system type.

To switch to the x.y.z version of CCE:

hostname> module swap cce cce/x.y.z

Note that users at sites that opt to not enable CPE by default must source $CRAY_ENABLE_PE to enable use of the CPE module environment.

Compiling and linking code

To compile and link code, always use either the ftn, cc, or CC command. Due to the multiple compiling environments potentially available on HPE systems, the craype module provides compiler drivers that forward the ftn, cc, and CC commands to the commands required by specific compilers.

Documentation resources

For detailed information about the Cray compiler options, directives, pragmas, and optimizations, see the Cray Fortran Reference Manual (S-3901), HPE Cray C/C++ Quick Reference (S-2197), and Clang Compiler User’s Manual.