Compilers
Various compiler suites are available through modules, including:
- GCC
- LLVM (Clang)
- Intel Classic (icc, ifort) - Intel may not provide further updates for Intel Classic. Its replacement is OneAPI.
- Intel OneAPI (icx, ifx)
- aocc - AMD compilers based on LLVM/Clang
All the compiler modules set the CC, CXX, FC, F77 and F90 environment variables so that most build systems will automatically use the intended compiler. Note that although LLVM and AOCC have been built with the LLVM Fortran compiler enabled (flang), this is a relatively immature compiler so FC/F77/F90 are set to gfortran for those modules.
A global environment variable, SERVICE_NAME=ham8, is also set, to aid portability between systems, including Bede.
Some other modules also set environment variables to aid software building, and the command module show <module name> will list these. They include <MODULE_NAME>_BUILD_MODULES, which contains the set of modules needed to reproduce the build environment for <MODULE_NAME>, which can help when building packages and libraries for Python, R and some other applications.