Optimization level
EasyBuild distinguishes between four optimization levels. Rather than having a single
toolchain option that takes the level as a number, toolchainopts uses four boolean
parameters where one takes precedence over others. Lower optimization takes precedence
over higher optimization. All have as default value False yet defaultopt is
the one that will be used if nothing is specified.
| Option |
What? |
| noopt |
Disable compiler optimizations |
| lowopt |
Low compiler optimizations |
| defaultopt |
Default compiler optimizations |
| opt |
High compiler optimizations |
Other optimization-related options (and see also parallelism below):
| Option |
What? |
| unroll |
Unroll loops (default: False) |
| optarch |
Enable architecture optimizations (default: False) |
Floating point accuracy
There are five flags that set the floating point precision. All are False by default
but defaultprec is taken if none of the options is set to True. Again, the
first one that is set to True in the table below is used:
| Option |
What? |
| strict |
Strict (highest) precision |
| precise |
High precision |
| defaultprec |
Default precision |
| loose |
Loose precision |
| veryloose |
Very loose precision |
Other floating-point optimisation and accuracy-related flags:
| Option |
What? |
| ieee |
Adhere to IEEE-754 rules (default: False) |
| Option |
What? |
| vectorize |
Enable compiler auto-vectorization, default except for noopt and lowopt |
| openmp |
Enable OpenMP (default: False) |
| usempi |
Use MPI compiler as default compiler (default: False) |
The usempi option is only supported by toolchains that also include an MPI component.
Code generation and linking options
| Option |
What? |
| 32bit |
Compile 32bit target (default: False) |
| debug |
Enable debug (default: False) |
| pic |
Use PIC (default: False) |
| packed-linker-options |
No flag, internal to EasyBuild |
| shared |
Build shared library (default: False) |
| static |
Build static library (default: False) |
| rpath |
No flag, internal to EasyBuild |
| Option |
What? |
| cstd |
Specify C standard (C/C++ only - default: None) |
| i8 |
Integers are 8 byte integers (Fortran only - default: False) |
| r8 |
Real is 8 byte real (Fortran only - default: False) |
Miscellaneous options
| Option |
What? |
| verbose |
Verbose output (default: False) |
| cciscxx |
Use CC as CXX (default: False) |
| extra_cflags |
Specify extra CFLAGS options. (default: None) |
| extra_cxxflags |
Specify extra CXXFLAGS options. (default: None) |
| extra_f90flags |
Specify extra F90FLAGS options. (default: None) |
| extra_fcflags |
Specify extra FCFLAGS options. (default: None) |
| extra_fflags |
Specify extra FFLAGS options. (default: None) |
Most of these options do not directly transform into compiler flags. Instead, they influence
the way EasyBuild sets variables (cciscxx) or directly add additional flags to
the indicated environment variables.