Available options
The cpeGNU toolchain supports the common toolchain options,
the additional GCC flags and some additional Cray-specific flags, two of which are
really just redefinitions of standard compiler flags.
GCC-specific flags
| Option |
Categorie |
What? |
| loop |
parallelism |
Automatic loop parallellisation |
| f2c |
source |
Generate code compatible with f2c and f77 |
| lto |
code generation |
Enable Link Time Optimization |
cpeGNU-specific flags
| Option |
Categorie |
What? |
| dynamic |
code generation |
Generate dynamically linked executable (default: True) |
| mpich-mt |
parallelism |
Alternate Cray-MPICH library for MT support (default: False) |
| gfortran9-compat |
source |
Add flags that improve compatibility with gfortran 9 for 10 and higher (default: False) |
mpich-mt: 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. (default: False)
Two further options trigger different compiler flags than in the GCC toolchain: verbose
and optarch but have otherwise the same meaning.
Mapping of options onto compiler flags
Compiler optimization level
The common options translate into:
| Option |
Flag |
| noopt |
-O0 |
| lowopt |
-O1 |
| defaultopt |
-O2 -ftree-vectorize |
| opt |
-O3 |
Other optimization-related options (and see also parallelism below):
| Option |
Flag |
| unroll |
-funroll-loops |
| optarch |
TODO |
Floating point precision
| Option |
Flag |
| strict |
-mieee-fp -mno-recip |
| precise |
-mno-recip |
| defaultprec |
-fno-math-errno |
| loose |
-fno-math-errno -mrecip -mno-ieee-fp |
| veryloose |
-fno-math-errno -mrecip=all -mno-ieee-fp |
Other floating-point optimisation and accuracy-related flags:
| Option |
What? |
| ieee |
-mieee-fp -fno-trapping-math |
| Option |
Flag |
| vectorize |
False: -fno-tree-vectorize |
|
True: -ftree-vectorize |
| loop |
-ftree-switch-conversion -floop-interchange -floop-strip-mine -floop-block |
| openmp |
-fopenmp |
| usempi |
No compiler flags |
| mpich-mt |
-craympich-mt |
Code generation and linking options
| Option |
Flag |
| dynamic |
No flag as this is currently the only mode supported |
| 32bit |
-m32 |
| debug |
-g |
| pic |
-fPIC |
| packed-linker-options |
Pack the linker options as comma separated list (default: False) |
| shared |
-shared |
| static |
-static |
| rpath |
Use RPATH wrappers when --rpath is enabled in EasyBuild configuration (default: True) |
| Option |
Flag |
| cstd |
-std=%(value)s |
| i8 |
-fdefault-integer-8 |
| r8 |
-fdefault-real-8 |
| f2c |
-ff2c |
Miscellaneous options
| Option |
Flag |
| verbose |
-craype-verbose |