Bereichsnavigation

Programming environment

The operating system running on the Cray XT5 system as a whole is known as Cray Linux Environment (CLE). Code development for Rosa is performed on the login nodes, which run a full SUSE Linux 9 distribution, while the compute nodes, on the other hand, run the Compute Node Linux (CNL) lightweight kernel. Compute Node Linux provides a runtime environment based on SUSE Linux and is a more "Linux-like" operating system compared to the Catamount kernel that ran on the XT3 system Palu. However, like Catamount, CNL does not support dynamic libraries, and some system calls are not available.

Compilers

There are four distinct Fortran and C/C++ compiler suites available on Rosa: the Portland Group (PGI), PathScale, GNU Compiler Collection, and Cray Compilers. It is recommended that you try to build your code with more than one compiler suite in order to obtain the best possible performance for your application.

The programming environment is controlled by the modules framework. When you log in to Rosa a set of modules is loaded automatically. The modules currently loaded are shown by the module list command. The names of the modules referring to the different compiler suites have names starting with PrgEnv-.

The PGI programming environment (PrgEnv-pgi module) is loaded by default. To switch between programming environments use the module switch command; for example, to change to the Pathscale compiler suite:

  > module switch PrgEnv-pgi PrgEnv-pathscale
 

At any one time there might be a number of different versions of the same compiler available on the system. The different versions currently available can be seen with the module avail command: the relevant modules are pgi-*, pathscale-*, gcc-*, and cce-*, for the respective compiler suites. When a PrgEnv is loaded (either at login, or via the module switch command) it will load the default compiler module corresponding to its programming environment, which is tagged with "(default)" in the output of the module avail command. To change compiler version, use the module switch command; for example, if the current default compiler for PrgEnv-pgi is the pgi/8.0.4 compiler and I want to switch to the pgi/8.0.5 compiler I would issue the following command:

 > module switch pgi/8.0.4 pgi/8.0.5

 

or simply,

 > module switch pgi pgi/8.0.5

 

New compiler versions are continually released and are made available through the modules framework. All changes to the default compiler versions will be announced here

Irrespective of the compiler suite you are using, the Fortran and C/C++ compilers should always be invoked by using the Cray wrapper commands:

  • ftn for compiling Fortran code
  • cc for compiling C code
  • CC for compiling C++ code

The Cray wrapper commands compile the code for execution on the compute nodes, add compiler optimizations for the target CPU, and take care of linking the MPI libraries (and other libraries you may have loaded through modules) automatically. You can see which base compiler is being invoked by the ftn, cc or CC wrapper by adding the "-V" flag:

 > ftn -V  /opt/cray/xt-asyncpe/2.3/bin/ftn: INFO: native target is being used  
pgf90 8.0-4 64-bit target on x86-64 Linux -tp k8-64e
Copyright 1989-2000, The Portland Group, Inc.  All Rights Reserved.
Copyright 2000-2009, STMicroelectronics, Inc.  All Rights Reserved.
 

 In this case, the Portland Group version 8.0.4 compiler is being called by ftn.

More information on the compilers can be found on the following pages:

Programming and performance considerations

See this page for details regarding programming and performance considerations for the Cray XT5.

Product documentation

With each software release Cray provides books and man pages, and in some cases, third party documentation. This documentation can be obtained through CrayDoc or through Man pages.

CrayDoc

CrayDoc is Cray's documentation delivery system which allows access to Cray books, man pages and third party documentation in HTML and PDF form. Access is through the public website docs.cray.com.

Man pages

Man pages are text-based help files available at the command line. To see a man page enter the man command followed by the name of the page. For more information about man pages, type man man at the command line.