Environment and Modules¶
Login Shell¶
The default shell is /bin/bash
echo $SHELL
/bin/bash
Users are not allowed to change the Login Shell but they can write preferred path definitions, aliases and functions in the ~/.bashrc
file.
Environment Variables¶
Environment Variables are a set of dynamic named values that contain data used by one or more applications. They are variables with a name and a value. The value of an environmental variable can for example be the location of all executable files in the file system, the default editor that should be used, or the system locale settings.
To see the variables in your environment use:
env
Environment Modules¶
ARIS uses the environment module approach to manage the user environment for different software, library or compiler versions. The Environment Modules package provides for the dynamic modification of a user’s environment via module files. The distinct advantage of modules approach is that application related environment variables such as PATH, LD_LIBRARY_PATH etc. is managed by environment modules. Users just load and unload modules to control their environment.
Module Usage¶
The module command uses sub-commands to perform different actions.
To list all available modules use:
module avail
module avail
------------------------- /apps/modulefiles/compilers -------------------------
binutils/2.25 gnu/4.9.3 gnu/5.2.0 pgi/15.5
gnu/4.9.2(default) gnu/5.1.0 intel/15.0.3
------------------------- /apps/modulefiles/parallel --------------------------
intelmpi/5.0.3 openmpi/1.8.5/intel padb/3.3
...
------------------------- /apps/modulefiles/libraries -------------------------
atlas/3.11.34(default) netcdf/3.6.3/intel
...
----------------------- /apps/modulefiles/applications ------------------------
abinit/7.10.4(default) namd/2.10/hybrid/normal
...
To load a module, for example the GNU 5.1.0
compiler suite use:
module load
module load gnu/5.1.0
gcc --version
gcc (GCC) 5.1.0
default module
Please notice that each module has a name and version. Invoking them by name implies loading the default module version.
module load gnu
gcc --version
gcc (GCC) 4.9.2
To check loaded modules use:
module list
module list
Currently Loaded Modulefiles:
1) gnu/4.9.2
To remove the loaded module gnu
use:
module unload
module unload gnu/4.9.2
To clean your environment from all loaded modules use:
module purge
module purge
module list
No Modulefiles Currently Loaded.
To switch between module versions, for example use gnu/5.1.0
instead of loaded gnu/4.9.2
use:
module switch
module switch gnu/5.1.0 gnu/4.9.2
To check information about the environment changes that will happen if module is loaded use:
module show
module show gnu/4.9.2
-------------------------------------------------------------------
/apps/modulefiles/compilers/gnu/4.9.2:
module-whatis Enable usage for the GNU Compiler Collection version 4.9.2
setenv COMPILER_GNUROOT /apps/compilers/gnu/4.9.2
prepend-path PATH /apps/compilers/gnu/4.9.2/bin
prepend-path INCLUDE /apps/compilers/gnu/4.9.2/include
prepend-path LD_LIBRARY_PATH /apps/compilers/gnu/4.9.2/lib
prepend-path LD_LIBRARY_PATH /apps/compilers/gnu/4.9.2/lib64
prepend-path MANPATH /apps/compilers/gnu/4.9.2/share/man
-------------------------------------------------------------------
To display module information use:
module whatis
module whatis gnu/4.9.2
gnu/4.9.2 : Enable usage for the GNU Compiler Collection version 4.9.2
More specific help:
module help
module help gnu/4.9.2
module sub-commands overview¶
Module Command | Description |
---|---|
avail | List all available modules. |
load | Load module into the shell environment. |
unload | Remove module from the shell environment. |
list | List loaded modules. |
purge | Unload all loaded modules. |
switch module1 module2 | Switch loaded module1 with module2. |
show | List all of the environment changes the module will make if loaded |
whatis | Display what is the module information |
help | More specific help |
keyword string | Seeks through the ‘whatis’ informations of all modules for the specified string. |
Complete list of module commands can be found at the man page
man module