New SPACK software stack on Euler
Currently, we are setting up a new software stack with the package manager SPACK on Euler using the LMOD module system. The new software stack will have 4 toolchains (GCC 4.8.5, GCC 6.3.0, GCC 8.2.0 and Intel 18.0.1). A toolchain is a combination of compiler, MPI and BLAS/LAPACK library. For each of the toolchains, we provide 400-500 packages.
For using a software from the new software stack, it is sufficient to load the corresponding module. All dependencies will be loaded automatically.
A few selected users (early beta testers) have been using the new software stack since end of August 2018.
The open beta testing phase of the new software stack starts on 10 December 2018. The current software stack is still set as default, but users can switch between the current and the new software stack by using the commands env2lmod and lmod2env. Complex software installations that either require many dependencies or take a lot of effort to be installed, will be done within the new software stack, whereas we will still add software to the current software stack.
At some point, when the beta testing phase is over, we will make the new software stack the new default. It will still be possible to switch forth and back between the current and the new software stack.
LMOD allows to define a hierarchy of modules containing 3 layers (Core, Compiler, MPI). The core layer contains all module files which are not depending on any compiler/MPI. The compiler layer contains all modules which are depending on a particular compilers, but not on any MPI library. The MPI layer contains modules that are depending on a particular compiler/MPI combination.
When you login to the Leonhard cluster, the standard compiler gcc/4.8.5 is automatically loaded. Running the module avail command displays all modules that are available for gcc/4.8.5. If you would like to see the modules available for a different compiler, for instance gcc/6.3.0, then you would need to load the compiler module and run module avail again. For checking out the available modules for gcc/4.8.5 openmpi/3.0.1, you would load the corresponding compiler and MPI module and run again module avail.
As a consequence of the module hierarchy, you can never have two different versions of the same module loaded at the same time. This helps to avoid problems arising due to misconfiguration of the environment.
You can find an overview on all packages that are available in the new software stack on our wiki. A list of all software that is present in the current software stack but not yet in the new is provided here.
Switching between software stacks
It is possible to switch back and forth between the current and the new software stack, but they cannot be mixed. Please use the commands env2lua and lmod2env for this. These are aliases that source a script that changes the environment of the current shell.
Switching from the current to the new software stack:
Switching from the new to the current software stack:
Changing the software stack will unload all previously loaded modules before the switch.
Loading some modules in the current software stack:
[sfux@eu-login-16-ng ~]$ module load new gcc/4.8.2 open_mpi/1.6.5 openblas/0.2.8_seq [sfux@eu-login-16-ng ~]$ module list Currently Loaded Modulefiles: 1) modules 3) gcc/4.8.2(default:4.8) 5) openblas/0.2.8_seq(0.2.8) 2) new 4) open_mpi/1.6.5(1.6:default)
Switching to the new software stack and load some modules:
[sfux@eu-login-16-ng ~]$ env2lmod [sfux@eu-login-16-ng ~]$ module list Currently Loaded Modules: 1) StdEnv 2) gcc/4.8.5 [sfux@eu-login-16-ng ~]$ module load intel/18.0.1 openmpi/3.0.1 openblas/0.2.20 Lmod is automatically replacing "gcc/4.8.5" with "intel/18.0.1". [sfux@eu-login-16-ng ~]$
Switching back to the current software stack and loading again some modules:
[sfux@eu-login-16-ng ~]$ lmod2env [sfux@eu-login-16-ng ~]$ module list Currently Loaded Modulefiles: 1) modules [sfux@eu-login-16-ng ~]$ module load new gcc/4.8.2 open_mpi/1.6.5 openblas/0.2.8_seq [sfux@eu-login-16-ng ~]$ module list Currently Loaded Modulefiles: 1) modules 3) gcc/4.8.2(default:4.8) 5) openblas/0.2.8_seq(0.2.8) 2) new 4) open_mpi/1.6.5(1.6:default) [sfux@eu-login-16-ng ~]$