Pathscale

Category: Program Dev-Compilers

Description

Cray provides the Pathscale compilers as part of several programming environments. Versions 3.2 is available. Pathscale was bought by Cray to provide Pathscale compiler support, but no new development is planned.

XTs have two kinds of nodes:

  1. Compute nodes running the CNL OS.
  2. Service and login nodes running Linux.

The Cray wrappers cc, CC, and ftn will automatically link against MPI (-lmpi) and SciLib (-lsci). This is not true when calling the Pathscale compilers directly. See the cc, CC, and ftn man pages for more information on their usage.

To see man pages on Pathscale compilers with a full list of compiler options, first make sure the "PrgEnv-pathscale" module is loaded, and then do a man on any of the following:

For more detailed information, see Pathscale documentation and Cray's documentation.

Use

It is best to review the pathcc, pathCC, and pathf95 man pages for a list of their options. You should also check out the eko man page, which has the complete list of options for the Pathscale Compiler suite.

To use the Cray wrappers with the Pathscale compilers, the PrgEnv-pathscale module should be loaded:

  module avail PrgEnv
  module swap PrgEnv-pgi PrgEnv-pathscale        # this loads some version of pathscale, currently 3.2
To just use the Pathscale compilers directly, just load the pathscale module you want:
  module avail pathscale
  module load pathscale/3.2           # Note that this does not changed the Cray wrappers.
It is possible to use the Pathscale compiler versions directly without loading the Cray Programming Environments, but note that the Cray wrappers will probably not work as expected if you do that.

Further Information

Enabling Quad-core Instructions

Note that with CNL 2.0.49 and above, the following options are set automatically by the xtpe-quadcore module (loaded by default), which enable quad-core instructions when compiling. This is actually quite important to get good performance.

jaguar12> module display xtpe-quadcore
-------------------------------------------------------------------
/opt/xt-asyncpe/1.0/modulefiles/xtpe-quadcore:

prepend-path     PE_PRODUCT_LIST XTPE_QUADCORE
setenv           XTPE_QUADCORE_ENABLED ON
setenv           LIBSCI_PRE_LINK_OPTS  -lsci_quadcore
setenv           PGI_POST_COMPILE_OPTS   -tp barcelona-64
setenv           PATHSCALE_POST_COMPILE_OPTS  -march=barcelona
setenv           GNU_POST_COMPILE_OPTS  -march=barcelona
setenv           LLVM_AMD_10H 1
-------------------------------------------------------------------

However, be aware that the "barcelona" option does not work with older versions of the compiler.
Versionbarcelona support
3.2yes

Underscoring

The Pathscale Fortran compiler (pathf90) by default adds two underscores to the symbol names. However, the Cray ftn wrapper to pathf90 has "-fno-second-underscore" on by default. So, the default behavior is different between pathf90 and ftn (using pathf90).

It is often the case that applications will have trouble resolving symbols when using Pathscale compilers because of the 2 underscores. It seems that use of -fno-second-underscore often avoids these problems. All packages that the NICS has built for the XT5 with pathf90 directly were built with "-fno-second-underscore".

Support

This package has the following support level : Supported

Available Versions

All versions of this software are provided by the system vendor and are not installed by NICS staff.