Cray Compiler Environment

Overview

HPE Cray Compiling Environment (CCE) consists of a Fortran compiler, libraries, and utilities that perform code analysis during compilation and automatically generate highly optimized code. The compiler supports numerous command-line arguments to enable manual control over compiler behavior and optimization. CCE provides a Fortran compiler for x86-64 and AArch64 CPUs, as well as AMD and NVIDIA GPUs.

Introduction

HPE Cray’s proprietary Fortran compiler that fully supports the Fortran 2018 standard with some exceptions and deferred features as noted in the HPE Cray Compiling Environment Release Overview (S-5212). The HPE Fortran programming environment consisting of the tools and libraries used to develop Fortran applications. Some of those tools and libraries are outlined below.

  • The crayftn(1) command, a compiler driver that compiles source into object code and links object code files and libraries to create executable files.

  • The ftnlx(1) command, which generates listing and checks for possible Fortran programming errors.

  • The ftnsplit(1) command, which splits named Fortran files into separate files with one program unit per file.

  • The ftnmgen(1) command, which invokes the Fortran makefile generator.

  • CrayLibs libraries, which provides library routines, intrinsic procedures, I/O routines, and data conversion routines.

Compiling and Launching

Compiling a code is typically done on a user access or login node rather than directly on a compute node. Use the HPE Cray Fortran compiler driver, crayftn(1), to quickly and easily compile, assemble, and link Fortran code. Use the -hcpu, -haccel, and -hnetwork compiler flags to select CPU, accelerator, and network targets. See crayftn(1) for more information.

The cray-fortran module adds crayftn and its man pages to the PATH and MANPATH environment variables. It does not integrate with CPE modules or Cray PE drivers.

After an executable is generated it is launched via a workload manager, such has PBS Professional or Slurm.

The following sections detail some of the larger CCE components.

Introduction Man Pages

These man pages introduce and explain various compiler features and concepts.

Directives

IEEE Man Pages

Math Man Pages

AIO Man Pages

PXF Man Pages

Misc Man Pages