easybuild.toolchains.compiler.craype module

Support for the Cray Programming Environment (craype) compiler drivers (aka cc, CC, ftn).

The basic concept is that the compiler driver knows how to invoke the true underlying compiler with the compiler’s specific options tuned to Cray systems.

That means that certain defaults are set that are specific to Cray’s computers.

The compiler drivers are quite similar to EB toolchains as they include linker and compiler directives to use the Cray libraries for their MPI (and network drivers) Cray’s LibSci (BLAS/LAPACK et al), FFT library, etc.

author:Petar Forai (IMP/IMBA, Austria)
author:Kenneth Hoste (Ghent University)
class easybuild.toolchains.compiler.craype.CrayPECompiler(*args, **kwargs)

Bases: easybuild.tools.toolchain.compiler.Compiler

Generic support for using Cray compiler drivers.

COMPILER_CC = 'cc'
COMPILER_CXX = 'CC'
COMPILER_F77 = 'ftn'
COMPILER_F90 = 'ftn'
COMPILER_FAMILY = None
COMPILER_FC = 'ftn'
COMPILER_MODULE_NAME = None
COMPILER_UNIQUE_OPTION_MAP = {'shared': '', 'dynamic': '', 'verbose': 'craype-verbose', 'mpich-mt': 'craympich-mt'}
COMPILER_UNIQUE_OPTS = {'optarch': (False, 'Enable architecture optimizations'), 'dynamic': (True, 'Generate dynamically linked executable'), 'mpich-mt': (False, 'Directs the driver to link in an alternate version of the Cray-MPICH library which provides fine-grained multi-threading support to applications that perform MPI operations within threaded regions.'), 'verbose': (True, 'Verbose output')}
CRAYPE_MODULE_NAME_TEMPLATE = 'craype-%(optarch)s'
PRGENV_MODULE_NAME_SUFFIX = None
TOOLCHAIN_FAMILY = 'CrayPE'
prepare(*args, **kwargs)

Prepare to use this toolchain; define $CRAYPE_LINK_TYPE if ‘dynamic’ toolchain option is enabled.

class easybuild.toolchains.compiler.craype.CrayPECray(*args, **kwargs)

Bases: easybuild.toolchains.compiler.craype.CrayPECompiler

Support for using the Cray CCE compiler wrappers.

COMPILER_FAMILY = 'CrayCE'
PRGENV_MODULE_NAME_SUFFIX = 'cray'
class easybuild.toolchains.compiler.craype.CrayPEGCC(*args, **kwargs)

Bases: easybuild.toolchains.compiler.craype.CrayPECompiler

Support for using the Cray GNU compiler wrappers.

COMPILER_FAMILY = 'GCC'
PRGENV_MODULE_NAME_SUFFIX = 'gnu'
class easybuild.toolchains.compiler.craype.CrayPEIntel(*args, **kwargs)

Bases: easybuild.toolchains.compiler.craype.CrayPECompiler

Support for using the Cray Intel compiler wrappers.

COMPILER_FAMILY = 'Intel'
PRGENV_MODULE_NAME_SUFFIX = 'intel'
class easybuild.toolchains.compiler.craype.CrayPEPGI(*args, **kwargs)

Bases: easybuild.toolchains.compiler.craype.CrayPECompiler

Support for using the Cray PGI compiler wrappers.

COMPILER_FAMILY = 'PGI'
PRGENV_MODULE_NAME_SUFFIX = 'pgi'