Update clusters_guide.md
[ccm-docs.git] / docs / modules.md
blobd6ef2b3c8fba9a5292e533bd114a201599672c1b
1 # Environment modules
3 **Environment modules are available on Alderaan front end and compute nodes only.**
5 ## Purpose
7 Environment variables, such `PATH`, allow to select software to become available.
8 Modules manage the environment automatically, without the user having to set the 
9 environment variables by hand, which is tedious and error prone. 
11 Alderaan modules include compilers (GNU, AMD, and Intel) and MPI.
13 ## Basic module commands
15 `module load modulename` - make the software pointed to by the module available
17 `module unload modulename` - make the software pointed to by the module unavailable
19 `module purge` -  unload all modules, strongly recommended before loading modules to start clear and assure a predictable environment
22 `module list`  - list which modules are loaded
24 `module avail` - list of all available modules
26 ## Modules and running code
28 When you load a collection of modulea to compile a code, you generaly need to load
29 the same modules before you run the resulting executable. Otherwise you may get
30 runtime errors when the executable cannot find runtime libraries or it gets
31 mismatched libraries, such as MPI.
33 In particular, batch scripts should start with loading the same modules that
34 were loaded before buiding the software.  
36 ## Modules and containers
38 The use of modules to manage the environment is standard in HPC. They fulfil a
39 similar function as containers, but the software is installed on the system rather
40 that being carried in a container.