|
|
## First Steps
|
|
|
|
|
|
The system now uses a combination of the LMOD module system and the EasyBuild automatic build framework. Although, largely compatible LMOD has some differences in usage and module names as documented below.
|
|
|
|
|
|
## Basics
|
|
|
|
|
|
LMOD uses a hierarchical module scheme, where not all modules are visible at any given time. You can list the module currently available with the `avail` option.
|
|
|
|
|
|
```sh
|
|
|
> module avail
|
|
|
```
|
|
|
|
|
|
You can load a module with the `load` option.
|
|
|
|
|
|
```sh
|
|
|
> module load foo
|
|
|
```
|
|
|
|
|
|
**Note:** *If no version is specified, the default version is automatically chosen. If only a single version is available of a certain module, then this will automatically become the default. Default versions of modules are marked with `(D)` in the list of available modules.*
|
|
|
|
|
|
When loading a module, the module system may set module-specific variables in the environment. This may influence the `PATH` and `LD_LIBRARY_PATH`, influencing executables and libraries visible to the user. To remove any modifications to the environment by a specific module, you can unload specific modules with the `unload` option.
|
|
|
|
|
|
```sh
|
|
|
> module unload foo
|
|
|
```
|
|
|
|
|
|
To unload all modules at once, you can `purge` the module environment, which unloads all loaded modules.
|
|
|
|
|
|
```sh
|
|
|
> module purge
|
|
|
```
|
|
|
|
|
|
To get a list of all loaded modules, you can use the `list` option.
|
|
|
|
|
|
```sh
|
|
|
> module list
|
|
|
```
|
|
|
|
|
|
If you don't know how a specific module is called or a module is currently not visible to you and you want search for a software, you can use the `spider` option.
|
|
|
|
|
|
```sh
|
|
|
> module spider
|
|
|
```
|
|
|
|
|
|
**Note:** *Searching for a module with `spider` is case in-sensitive and also returns partial matches (the search argument is part of an existing module). Further note that `spider` searches in the module name and the description.*
|
|
|
|
|
|
To unload a module and load a module with one call, you can use the `switch` option.
|
|
|
|
|
|
```sh
|
|
|
> module switch foo bar
|
|
|
```
|
|
|
|
|
|
**NOTE:** *LMOD automatically unloads conflicting modules and inactivates modules that are no longer available.*
|
|
|
|
|
|
```sh
|
|
|
> module spider foo
|
|
|
```
|
|
|
|
|
|
When called with only with the module name and no specific version, the output of `spider` lists all available version across all toolchains. When called with a specific version, the output lists toolchains that will make it available.
|
|
|
|
|
|
```sh
|
|
|
> module spider foo/1.2.3
|
|
|
```
|
|
|
|
|
|
### Core Compiler
|
|
|
|
|
|
Some compiler
|
|
|
For all packages a certain version of GCC is automatically loaded as `GCCcore` module. The `GCCcore` module will be part of the dependencies for making a certain module visible.
|
|
|
|
|
|
### Toolchains
|
|
|
|
|
|
Toolchains are so-called meta modules that load a specific Compiler and MPI combination (and in some cases some additional libraries).
|
|
|
|
|
|
|
|
|
#### Existing Toolchains
|
|
|
|
|
|
##### Intel-based
|
... | ... | |