diff --git a/docs.it4i/software/lmod.md b/docs.it4i/software/lmod.md index 9c7f97739fbd5e92f77796bb2d7bfe5b7993089c..9198bc6b817bed122ce4cd666d7c58ec083ae99e 100644 --- a/docs.it4i/software/lmod.md +++ b/docs.it4i/software/lmod.md @@ -19,6 +19,7 @@ Below you will find more details and examples. | ml | module list | | ml GCC/6.2.0-2.27 | module load GCC/6.2.0-2.27 | | ml -GCC/6.2.0-2.27 | module unload GCC/6.2.0-2.27 | +| ml purge | module unload all modules | | ml av | module avail | | ml show GCC/6.2.0-2.27 | module show GCC | | ml spider | gcc searches (case-insensitive) for gcc in all available modules | @@ -39,11 +40,11 @@ Currently Loaded Modules: ``` !!! tip - for more details on sticky modules, see the section on [ml purge](#resetting-by-unloading-all-modules-ml-purge-module-purge) + For more details on sticky modules, see the section on [ml purge](#resetting-by-unloading-all-modules). ## Searching for Available Modules -To get an overview of all available modules, you can use module avail or simply ml av: +To get an overview of all available modules, you can use ml avail or simply ml av: ```bash $ ml av @@ -59,7 +60,7 @@ $ ml av In the current module naming scheme, each module name consists of two parts: -* the part before the first /, corresponding to the software name; and +* the part before the first /, corresponding to the software name * the remainder, corresponding to the software version, the compiler toolchain that was used to install the software, and a possible version suffix !!! tip @@ -108,7 +109,7 @@ $ ml spider gcc ``` !!! 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 available: @@ -148,7 +149,7 @@ Use "module keyword key1 key2 ..." to search for all possible modules matching a ``` !!! tip - the specified software name is treated case-insensitively. + The specified software name is treated case-insensitively. Lmod does a partial match on the module name, so sometimes you need to use / to indicate the end of the software name you are interested in: @@ -167,7 +168,7 @@ Use "module keyword key1 key2 ..." to search for all possible modules matching a ## Inspecting a Module -To see how a module would change the environment, use module show or ml show: +To see how a module would change the environment, use ml show: ```bash $ ml show Python/3.5.2 @@ -198,11 +199,11 @@ setenv("EBEXTSLISTPYTHON","setuptools-20.1.1,pip-8.0.2,nose-1.3.7") !!! tip Note that both the direct changes to the environment as well as other modules that will be loaded are shown. -If you're not sure what all of this means: don't worry, you don't have to know; just try loading the module as try using the software. +If you're not sure what all of this means: don't worry, you don't have to know, just try loading the module as try using the software. ## Loading Modules -The effectively apply the changes to the environment that are specified by a module, use module load or ml and specify the name of the module. +The 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: ```bash @@ -233,11 +234,11 @@ Currently Loaded Modules: 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 can not 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 can not 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: ml modname(s) (module unload modname(s)) +Unloading modules: ml -modname(s) -To revert the changes to the environment that were made by a particular module, you can use module unload or ml -<modname>. +To revert the changes to the environment that were made by a particular module, you can use ml -<modname>. For example: ```bash @@ -262,7 +263,7 @@ $ which gcc ## Resetting by Unloading All Modules -To reset your environment back to a clean state, you can use module purge or ml purge: +To reset your environment back to a clean state, you can use ml purge or ml purge --force: ```bash $ ml @@ -280,7 +281,7 @@ $ ml No modules loaded ``` -As such, you should not (re)load the cluster module anymore after running ml purge. See also here. +As such, you should not (re)load the cluster module anymore after running ml purge. ## Module Collections