Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux_environment_modules [2020/03/09 13:06]
pgh5a
linux_environment_modules [2021/12/02 14:08] (current)
Line 1: Line 1:
-====== Environment ​Modules ​======+==== Software ​Modules ====
  
-[[http://​modules.sourceforge.net|Environment ​Modules]] ​are designed ​to manage custom package installations. ​ Software in our department is all installed to a network filesystem mounted over NFS where each package available is installed to it's own directory This allows us to manage ​a wide range of software across ​different Linux distributions without users having ​to deal with any configuration.  We can include ​different versions of software, letting users choose which they want to use.+[[http://​modules.sourceforge.net|Software ​Modules]] ​make it easy for you to use software installed on our Linux systemsWe provide ​a wide range of software across ​all our servers so that you don't have to install software on your own.  We also offer different versions of software, letting users choose which they want to use. 
  
-===== Available Modules =====+\\
  
-Please see [[linux_modules:​start|Available ​Modules]] for a listing of available software.+=== Using Modules ​===
  
-===== Using Modules ===== +Type ''​%%module avail%%''​ to get a list of available software.
- +
-On any Linux system in our department, you can run ''​%%module avail%%'' ​from your shell to get a list of available software.+
  
 <​code>​ <​code>​
-[pgh5a@portal04 ~]$ module avail +[abc1de@portal04 ~]$ module avail 
------------------------------------------------------------- /​sw/​centos/​Modules/​systemModfiles -------------------------------------------------------------+------------------------------- /​sw/​centos/​Modules/​systemModfiles -------------------------------------------------------------
 slurm-client ​        ​slurm-client-testing slurm-client ​        ​slurm-client-testing
  
--------------------------------------------------------------- /​sw/​centos/​Modules/​modulefiles --------------------------------------------------------------+--------------------------------- /​sw/​centos/​Modules/​modulefiles --------------------------------------------------------------
 afl               ​cmake-3.10 ​       cudnn-7.3.1 ​      ​gdb-8.1 ​          ​libav ​            ​netdata ​          ​php7 ​             ruby afl               ​cmake-3.10 ​       cudnn-7.3.1 ​      ​gdb-8.1 ​          ​libav ​            ​netdata ​          ​php7 ​             ruby
 altera_pro ​       cmake-3.15 ​       cudnn-7.5.0 ​      ​ghex ​             libtorch ​         nios2eds ​         php7.1.10 ​        ​ruby2.5.1 altera_pro ​       cmake-3.15 ​       cudnn-7.5.0 ​      ​ghex ​             libtorch ​         nios2eds ​         php7.1.10 ​        ​ruby2.5.1
Line 30: Line 28:
 cmake             ​cudnn-7.1.1 ​      ​gcc-7.1.0 ​        ​lammps ​           nccl-9.2 ​         php               ​rstudio cmake             ​cudnn-7.1.1 ​      ​gcc-7.1.0 ​        ​lammps ​           nccl-9.2 ​         php               ​rstudio
  
------------------------------------------------------------- /​sw/​linux-any/​Modules/​modulefiles -------------------------------------------------------------+------------------------------- /​sw/​linux-any/​Modules/​modulefiles -------------------------------------------------------------
 ant               ​cplex ​            ​cplex-opl ​        ​dmd-2.088.0 ​      ​ripgrep ​          ​scons-3.0.1 ​      ​vscode ant               ​cplex ​            ​cplex-opl ​        ​dmd-2.088.0 ​      ​ripgrep ​          ​scons-3.0.1 ​      ​vscode
 antlr             ​cplex-concert ​    ​cplex-studio-all ​ go                sbt               tmux antlr             ​cplex-concert ​    ​cplex-studio-all ​ go                sbt               tmux
Line 37: Line 35:
 </​code>​ </​code>​
  
-After deciding what software you want to use, load the package ​using''​%%module load%%''​. ​ Now the software is ready to use.+Load the software module ​using''​%%module load%%''​. ​ Now the software is ready to use.
  
 <​code>​ <​code>​
-pgh5a@portal04 ~ $ module load python3 ​             # Load the module for use in your current session +abc1de@portal04 ~ $ module load python3 ​             # Load the module for use in your current session 
-pgh5a@portal04 ~ $ which python+abc1de@portal04 ~ $ which python
 /​sw/​centos/​python/​3.6.2/​bin/​python /​sw/​centos/​python/​3.6.2/​bin/​python
-pgh5a@portal04 ~ $ python ​                          # When you run `python` you get the version that has been loaded+abc1de@portal04 ~ $ python ​                          # When you run `python` you get the version that has been loaded
 Python 3.6.2 (default, Oct  6 2017, 13:​03:​05) ​ Python 3.6.2 (default, Oct  6 2017, 13:​03:​05) ​
 [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Line 50: Line 48:
 </​code>​ </​code>​
  
-After loading several modules in your session, ​''​%%module list%%''​ will show what modules have been loaded.+''​%%module list%%''​ will show what modules ​you have loaded.
  
 <​code>​ <​code>​
-ktm5j@applecake ​~ $ module load matlab +abc1de@portal ​~ $ module load matlab 
-ktm5j@applecake ​~ $ module load php +abc1de@portal ​~ $ module load php 
-ktm5j@applecake ​~ $ module list+abc1de@portal ​~ $ module list
 Currently Loaded Modulefiles:​ Currently Loaded Modulefiles:​
   1) matlab ​   2) python3 ​  3) php   1) matlab ​   2) python3 ​  3) php
 </​code>​ </​code>​
  
-''​%%module display%%''​ will show specific information about the environment variables ​that will be modified ​by a module.+''​%%module display%%''​ will show specific information about the environment variables ​setup by a module.
  
 <​code>​ <​code>​
-ktm5j@applecake ​~ $ module display python+abc1de@portal ​~ $ module display python
 ------------------------------------------------------------------- -------------------------------------------------------------------
 /​sw/​centos/​Modules/​modulefiles/​python:​ /​sw/​centos/​Modules/​modulefiles/​python:​
Line 73: Line 71:
 prepend-path MANPATH /​sw/​centos/​python/​current/​share/​man ​ prepend-path MANPATH /​sw/​centos/​python/​current/​share/​man ​
 ------------------------------------------------------------------- -------------------------------------------------------------------
-ktm5j@applecake ​~ $ echo $LD_LIBRARY_PATH ​+abc1de@portal ​~ $ echo $LD_LIBRARY_PATH ​
 /​sw/​centos/​python/​3.6.2/​lib /​sw/​centos/​python/​3.6.2/​lib
 </​code>​ </​code>​
  
-You can ''​%%switch%%''​, changing ​one version of software for another, or ''​%%unload%%''​ modules when you are done or no longer want this software.+Use ''​%%module ​switch%%'' ​to change ​one version of software for another ​and ''​%%module ​unload%%'' ​to unload ​modules when you are done or no longer want this software.
  
 <​code>​ <​code>​
-ktm5j@applecake ​~ $ module switch python3 python2 +abc1de@portal ​~ $ module switch python3 python2 
-ktm5j@applecake ​~ $ module unload php +abc1de@portal ​~ $ module unload php 
-</​code>​+</​code>​\\
  
-===== Things to keep in mind =====+=== Shell Scripting/​Slurm Batch ===
  
-==== Shell Scripting/​Slurm Batch ====+If you write shell scripts or slurm batch files that make use of these software packages, remember that you must still load modules from inside of your script. ​ For example, your script must contain the line ''​%%module load python3%%''​ before you can use python from inside of your script. ​
  
-If you write shell scripts or slurm batch files that make use of these software packages, remember that you must still load modules from inside of your script. ​ For example, your script must contain the line ''​%%module load python3%%''​ before you can use python from inside of your script.+\\
  
 === Initialize Modules System === === Initialize Modules System ===
Line 96: Line 94:
 <code bash> <code bash>
 source /​etc/​profile.d/​modules.sh source /​etc/​profile.d/​modules.sh
-</​code>​+</​code>​\\ 
 + 
 +=== Virtual Environments === 
 +For most Python related packages (i.e. pip install ...), it is often more applicable to utilize a virtual environment. This can be done with [[ https://​docs.conda.io/​projects/​conda/​en/​latest/​user-guide/​tasks/​manage-environments.html | Anaconda]] 
 +or [[ https://​docs.python.org/​3/​library/​venv.html | venv ]]. The former requires loading an anaconda module, and the latter requires the python3 module. 
 + 
 +\\ 
 + 
 +=== Module Requests === 
 +If a module is needed but not listed, please send an email to cshelpdesk@virginia.edu with the following:​\\ 
 +1. In the subject line, write "​Software Module Request: // software name and the version //"​\\ 
 +2. In the body of the email, please include information about the software being requested (version and any associated links)
  • linux_environment_modules.1583759197.txt.gz
  • Last modified: 2020/03/09 13:06
  • by pgh5a