4 merge requests!368Update prace.md to document the change from qprace to qprod as the default...,!367Update prace.md to document the change from qprace to qprod as the default...,!366Update prace.md to document the change from qprace to qprod as the default...,!323extended-acls-storage-section
@@ -6,7 +6,7 @@ Detailed documentation on Lmod is available [here][a].
...
@@ -6,7 +6,7 @@ Detailed documentation on Lmod is available [here][a].
## Benefits
## Benefits
* significantly more responsive module commands, in particular ml av
* significantly more responsive module commands, in particular `ml av`
* easier to use interface
* easier to use interface
* module files can be written in either the Tcl or Lua syntax (and both types of modules can be mixed together)
* module files can be written in either the Tcl or Lua syntax (and both types of modules can be mixed together)
...
@@ -29,7 +29,7 @@ Below you will find more details and examples.
...
@@ -29,7 +29,7 @@ Below you will find more details and examples.
## Listing Loaded Modules
## Listing Loaded Modules
To get an overview of the currently loaded modules, use module list or ml (without specifying extra arguments):
To get an overview of the currently loaded modules, use `module list` or `ml` (without specifying extra arguments):
```console
```console
$ml
$ml
...
@@ -44,7 +44,7 @@ Currently Loaded Modules:
...
@@ -44,7 +44,7 @@ Currently Loaded Modules:
## Searching for Available Modules
## Searching for Available Modules
To get an overview of all available modules, you can use ml avail or simply ml av:
To get an overview of all available modules, you can use `ml avail` or simply `ml av`:
```console
```console
$ml av
$ml av
...
@@ -64,11 +64,11 @@ In the current module naming scheme, each module name consists of two parts:
...
@@ -64,11 +64,11 @@ In the current module naming scheme, each module name consists of two parts:
* the remainder, corresponding to the software version, the compiler toolchain that was used to install the software, and a possible version suffix
* the remainder, corresponding to the software version, the compiler toolchain that was used to install the software, and a possible version suffix
!!! tip
!!! tip
The (D) indicates that this particular version of the module is the default, but we strongly recommend to not rely on this, as the default can change at any point. Usually, the default points to the latest version available.
`(D)` indicates that this particular version of the module is the default, but we strongly recommend to not rely on this, as the default can change at any point. Usually, the default points to the latest version available.
## Searching for Modules
## Searching for Modules
If you just provide a software name, for example gcc, it prints on overview of all available modules for GCC.
If you just provide a software name, for example `gcc`, it prints an overview of all available modules for GCC.
```console
```console
$ml spider gcc
$ml spider gcc
...
@@ -109,9 +109,9 @@ $ ml spider gcc
...
@@ -109,9 +109,9 @@ $ ml spider gcc
```
```
!!! tip
!!! tip
Spider is case-insensitive.
`spider` is case-insensitive.
If you use spider on a full module name like GCC/6.2.0-2.27, it will tell on which cluster(s) that module is available:
If you use `spider` on a full module name like `GCC/6.2.0-2.27`, it will tell on which cluster(s) that module is available:
```console
```console
$module spider GCC/6.2.0-2.27
$module spider GCC/6.2.0-2.27
...
@@ -132,7 +132,7 @@ This tells you what the module contains and what the URL to the homepage of the
...
@@ -132,7 +132,7 @@ This tells you what the module contains and what the URL to the homepage of the
## Available Modules for a Particular Software Package
## Available Modules for a Particular Software Package
To check which modules are available for a particular software package, you can provide the software name to ml av.
To check which modules are available for a particular software package, you can provide the software name to `ml av`.
For example, to check which versions of Git are available:
For example, to check which versions of Git are available:
```console
```console
...
@@ -149,7 +149,7 @@ Use "module keyword key1 key2 ..." to search for all possible modules matching a
...
@@ -149,7 +149,7 @@ Use "module keyword key1 key2 ..." to search for all possible modules matching a
```
```
!!! tip
!!! tip
The specified software name is treated case-insensitively.
The specified software name is case-insensitive.
Lmod does a partial match on the module name, so sometimes you need to specify the end of the software name you are interested in:
Lmod does a partial match on the module name, so sometimes you need to specify the end of the software name you are interested in:
...
@@ -168,7 +168,7 @@ Use "module keyword key1 key2 ..." to search for all possible modules matching a
...
@@ -168,7 +168,7 @@ Use "module keyword key1 key2 ..." to search for all possible modules matching a
## Inspecting a Module
## Inspecting a Module
To see how a module would change the environment, use ml show:
To see how a module would change the environment, use `ml show`:
```console
```console
$ml show Python/3.5.2
$ml show Python/3.5.2
...
@@ -203,7 +203,7 @@ If you are not sure what all of this means: don't worry, you don't have to know,
...
@@ -203,7 +203,7 @@ If you are not sure what all of this means: don't worry, you don't have to know,
## Loading Modules
## Loading Modules
To effectively apply the changes to the environment that are specified by a module, use ml and specify the name of the module.
To effectively apply the changes to the environment that are specified by a module, use `ml` and specify the name of the module.
For example, to set up your environment to use Intel:
For example, to set up your environment to use Intel:
```console
```console
...
@@ -225,20 +225,20 @@ Currently Loaded Modules:
...
@@ -225,20 +225,20 @@ Currently Loaded Modules:
```
```
!!! tip
!!! tip
Note that even though we only loaded a single module, the output of ml shows that a whole set of modules was loaded. These are required dependencies for intel/2017.00.
Note that even though we only loaded a single module, the output of `ml` shows that a whole set of modules was loaded. These are required dependencies for `intel/2017.00`.
## Conflicting Modules
## Conflicting Modules
!!! warning
!!! warning
It is important to note that **only modules that are compatible with each other can be loaded together. In particular, modules must be installed either with the same toolchain as the modules that are already loaded, or with a compatible (sub)toolchain**.
It is important to note that **only modules that are compatible with each other can be loaded together. In particular, modules must be installed either with the same toolchain as the modules that are already loaded, or with a compatible (sub)toolchain**.
For example, once you have loaded one or more modules that were installed with the intel/2017.00 toolchain, all other modules that you load should have been installed with the same toolchain.
For example, once you have loaded one or more modules that were installed with the `intel/2017.00` toolchain, all other modules that you load should have been installed with the same toolchain.
In addition, only **one single version** of each software package can be loaded at a particular time. For example, once you have the Python/3.5.2-intel-2017.00 module loaded, you cannot load a different version of Python in the same session/job script, neither directly, nor indirectly as a dependency of another module you want to load.
In addition, only **one single version** of each software package can be loaded at a particular time. For example, once you have the `Python/3.5.2-intel-2017.00` module loaded, you cannot load a different version of Python in the same session/job script, neither directly, nor indirectly as a dependency of another module you want to load.
## Unloading Modules
## Unloading Modules
To revert the changes to the environment that were made by a particular module, you can use ml -<modname>.
To revert the changes to the environment that were made by a particular module, you can use `ml -<modname>`.
For example:
For example:
```console
```console
...
@@ -263,7 +263,7 @@ $ which gcc
...
@@ -263,7 +263,7 @@ $ which gcc
## Resetting by Unloading All Modules
## Resetting by Unloading All Modules
To reset your environment back to a clean state, you can use ml purge or ml purge --force:
To reset your environment back to a clean state, you can use `ml purge` or `ml purge --force`:
```console
```console
$ml
$ml
...
@@ -281,7 +281,7 @@ $ ml
...
@@ -281,7 +281,7 @@ $ ml
No modules loaded
No modules loaded
```
```
As such, you should not (re)load the cluster module anymore after running ml purge.
As such, you should not (re)load the cluster module anymore after running `ml purge`.
## Module Collections
## Module Collections
...
@@ -293,19 +293,19 @@ First, load all the modules you need, for example:
...
@@ -293,19 +293,19 @@ First, load all the modules you need, for example:
$ml intel/2017.00 Python/3.5.2-intel-2017.00
$ml intel/2017.00 Python/3.5.2-intel-2017.00
```
```
Now store them in a collection using ml save:
Now store them in a collection using `ml save`:
```console
```console
$ml save my-collection
$ml save my-collection
```
```
Later, for example in a job script, you can reload all these modules with ml restore:
Later, for example in a job script, you can reload all these modules with `ml restore`:
```console
```console
$ml restore my-collection
$ml restore my-collection
```
```
With ml savelist, you can get a list of all saved collections:
With `ml savelist`, you can get a list of all saved collections:
```console
```console
$ml savelist
$ml savelist
...
@@ -314,7 +314,7 @@ Named collection list:
...
@@ -314,7 +314,7 @@ Named collection list:
2) my-test-collection
2) my-test-collection
```
```
To inspect a collection, use ml describe.
To inspect a collection, use `ml describe`.
To remove a module collection, remove the corresponding entry in $HOME/.lmod.d.
To remove a module collection, remove the corresponding entry in $HOME/.lmod.d.