Release overview introduction

This publication provides a general overview of the HPE Cray Compiling Environment (CCE) 18.0.0 release. CCE provides Fortran, C, and C++ compilers for HPE Cray Supercomputing EX systems and HPE Apollo 2000 Gen10Plus systems.

Product and OS dependencies

This HPE CCE release is available for:

  • HPE Cray Supercomputing systems running HPE Cray System Management (CSM) 1.5 with HPE Cray Supercomputing Operating System (COS) 24.7 (COS Base 3.1.0/USS 1.1.0) and SLES15 SP5;

  • HPE Cray Supercomputing systems running HPCM 1.11 with COS 24.7 (COS Base 3.1.0/USS 1.1.0) and SLES15 SP5 (X86) or SLES15 SP5 (AArch64);

  • HPE Cray Supercomputing systems running HPCM 1.11 and RHEL8.10, RHEL9.4 (X86), or RHEL9.4 (AArch64); or

  • HPE Apollo 2000 Gen10Plus systems running HPCM 1.11 with RHEL 8.10 and the Mellanox OFED (MOFED) networking stack 5.8.

Note that:

  • COS 23.11 (and later) components comprise:

    • COS Base

    • HPE Cray Supercomputing User Services Software (USS)

    • HPE SUSE Linux Enterprise Server

  • AMD GPU offloading support requires ROCm 6.0 or 6.1.

Package description

This HPE CCE release consists of:

  • HPE Cray Fortran compiler (18.0.0)

  • C and C++ compilers (18.0.0)

  • CrayLibs libraries and utilities (18.0.0)

  • Supporting documentation and manpages

Downloading HPE Cray Supercomputing EX software

To download HPE Cray Supercomputing EX software, refer to the HPE Support Center or download it directly from My HPE Software Center. The HPE Support Center contains a wealth of documentation, training videos, knowledge articles, and alerts for HPE Cray Supercomputing EX systems. It provides the most detailed information about a release as well as direct links to product firmware, software, and patches available through My HPE Software Center.

Downloading the software through the HPE Support Center

HPE recommends downloading software through the HPE Support Center because of the many other resources available on the website.

  1. Visit the HPE Cray Supercomputing EX product page on the HPE Support Center.

  2. Search for specific product info, such as the full software name or recipe name and version.

    For example, search for “Slingshot 2.1” or “Cray System Software with CSM 24.3.0.”

  3. Find the desired software in the search results and select it to review details.

  4. Select Obtain Software and select Sign in Now when prompted.

    If a customer’s Entitlement Order Number (EON) is tied to specific hardware rather than software, the software is available without providing account credentials. Access the software instead by selecting Download Software and skip the next step in this procedure.

  5. Enter account credentials when prompted and accept the HPE License Terms.

    To download software, customers must ensure their Entitlement Order Number (EON) is active under My Contracts & Warranties on My HPE Software Center. If customers have trouble with the EON or are not entitled to a product, they must contact their HPE contract administrator or sales representative for assistance.

  6. Choose the needed software and documentation files to download and select curl Copy to access the files.

    Just like the software files, the documentation files change with each release. In addition to the official documentation, valuable information for a release is often available in files that include the phrase README in their name. Be sure to select and review these files in detail.

    HPE recommends the curl Copy option, which downloads a single text file with curl commands to use on the desired system. You must run the curl commands within 24 hours of downloading them or download new commands if more than 24 hours have passed.

    To validate the security of the downloads, you can later compare the files on the desired system against the checksums provided by HPE underneath each selected download.

  7. Save the text file to a central location.

  8. On the system where the software will be downloaded, run a shell script to execute the text file that includes the curl commands.

    For example:

    ncn-m001# bash -x <TEXT_FILE_PATH>
    

    The -x option in this example tracks the download progress of each curl command in the text file.

Downloading the software directly from the My HPE Software Center

Users already familiar with a release can save time by downloading software directly from My HPE Software Center.

  1. Visit My HPE Software Center and select Sign in.

  2. Enter account credentials when prompted and select Software in the left navigation bar.

  3. Search for specific product info, such as the full software name or recipe name and version.

    For example, search for “Slingshot 2.1” or “Cray System Software with CSM 24.3.0.”

  4. Find the desired software in the search results and review details by selecting Product Details under the Action column.

    Image of Product Details option

  5. Select Go To Downloads Page and accept the HPE License Terms.

    To download software, customers must ensure their Entitlement Order Number (EON) is active under My Contracts & Warranties. If customers have trouble with the EON or are not entitled to a product, they must contact their HPE contract administrator or sales representative for assistance.

  6. Choose the needed software and documentation files to download and select curl Copy to access the files.

    Just like the software files, the documentation files change with each release. In addition to the official documentation, valuable information for a release is often available in files that include the phrase README in their name. Be sure to select and review these files in detail.

    HPE recommends the curl Copy option, which downloads a single text file with curl commands to use on the desired system. You must run the curl commands within 24 hours of downloading them or download new commands if more than 24 hours have passed.

    To validate the security of the downloads, you can later compare the files on the desired system against the checksums provided by HPE underneath each selected download

  7. Save the text file to a central location.

  8. On the system where the software will be downloaded, run a shell script to execute the text file that includes the curl commands.

    For example:

    ncn-m001# bash -x <TEXT_FILE_PATH>
    

    The -x option in this example tracks the download progress of each curl command in the text file.

Software enhancements and support

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

Language technology

  • HPE Cray Fortran fully supports the Fortran 2018 standard.

  • The C and C++ compilers are based on Clang and LLVM 18.1.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 18.1.6 base.

Miscellaneous features and enhancements

With the 18.0.0 release, added:

  • A new CCE compiler_interop manpage. This new manpage details information about CCE compiler interoperability. See Accessing Product Documentation for more information on accessing manpages.

  • New OpenMP 5.1 features to include:

    • interop construct and API routines.

    • compare and fail clauses for atomic construct.

    • present modifier and defaultmap(present).

    • The nowait clause for the taskwait directive.

    • default(private) and default(firstprivate) (C/C++).

    • omp_target_memcpy_async and omp_target_memcpy_rect_async.

    • nothing directive (C/C++).

  • A new -fopenmp-force-usm compiler flag (C/C++/Fortran). This flag enables OpenMP unified shared memory (USM) and treats each source file as though it contains an explicit omp requires unified_shared_memory directive.

  • For OpenACC 3.1, the implementation of OpenACC serial construct.

  • New OpenACC 2.7 features to include:

    • Snap subarray and subscript expressions for use at the end of data regions.

    • Reduction on a compute construct implies a copy clause.

  • New OpenACC 2.5 features to include:

    • Automatic allocate or deallocate for device_resident and device_create allocatables and pointers.

    • Support acc_memcpy_device routine.

    • Support num_gangs, num_workers, and vector_length on kernels directives.

    • Support async copy routines.

    • The ability to handle scoping for lexically visible data regions.

  • RHEL 8.10 x86_64 support.

  • RHEL 9.4 x86_64 support.

  • RHLEL 9.4 aarch64 support.

Also with this release, updated the OMP_PLACE CPU affinity mapping policy to allow for the use of absolute indexes instead of relative.

New Fortran-related features now allow for:

  • Control over leading zeros in output of real values: LEADING_ZERO= specifier

  • Auto-allocation of character variables in more places - statements

  • TYPEOF and CLASSOF declarations

  • More use of binary, octal, and hexadecimal (BOZ) constants

  • Partial implementation of conditional expressions and arguments

  • Enumeration type

  • SIMPLE attribute for procedures

  • OpenMP floating-point atomic optimization hints for AMD MI250X GPUs

  • Advanced AMD GPU DWARF support, including:

    • Fortran scalar variables and fixed-size arrays in offload regions

    • Fortran common blocks

RHEL gcc-toolset-13 support and integration

  • For RHEL-based systems, continue to use the gcc-toolset provided by Red Hat, updating it to gcc-toolset-13 as the baseline.

  • RHEL-based systems with shared libraries built by CCE versions prior to 17.0.0 do not need to be rebuilt.

Compatibilities, incompatibilities, and differences

  • None

Accessing product documentation

Access HPE documents and manpages 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 18.0.0).

  • 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.

  • Manpages

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

    hostname> man man
    

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

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

    Alternatively, the craycc(1) and crayCC(1) manpages are aliases that redirect to the Clang C, C++, and UPC manpage.

  • 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 18.0.0?

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 Supercomputing EX systems running CSM

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

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

HPE Cray Supercomputing EX or HPE Cray Supercomputing systems running HPCM

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

HPE Cray Programming Environment User Guide: HPCM on HPE Cray Supercomputing EX and HPE Cray Supercomputing 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) manpage, 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

CCE is distributed as a set of RPM packages. You can install the main cce-<version> package to use the CCE C, C++, and Fortran compilers. Optionally, you can install:

  • cce-<version>-gpu-amd to compile applications for AMD GPUs.

  • cce-<version>-gpu-nvidia to compile applications for NVIDIA GPUs.

  • cce-<version>-pgas-ofi to compile applications for PGAS on the OFI network target.

  • cce-<version>-doc for online documentation, including manpages.

  • cce-<version>-devel for compiler development.

For a minimal installation suitable for running applications built by CCE, install only cce-<version>-runtime. Also install any GPU and PGAS packages that the application requires.

Procedure

To install CCE RPMs, use a package manager or use the rpm command. A package manager handles RPM dependencies automatically. The rpm command does not handle RPM dependencies automatically. Zypper is the recommended package manager on SLES systems. DNF is the recommended package manager on RHEL systems. For details on configuring each package manager, refer to the package manager’s documentation.

To install a package with Zypper, run:

hostname# zypper install <package_name>

To install a package with DNF, run:

hostname# dnf install <package_name>

To install an RPM with the rpm command, run:

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

Setting the default CCE version

To set CCE version <version> as default:

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

Accessing CPE installation guides

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 Supercomputing EX systems running CSM

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

HPE Cray Supercomputing EX or HPE Cray Supercomputing systems running HPCM

HPE Cray Programming Environment Installation Guide: HPCM on HPE Cray Supercomputing EX and HPE Cray Supercomputing 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.