UMBC High Performance Computing Facility
Using modules on tara
Introduction
We use
modules on tara to
help users manage their Linux environments. Different environment settings are
needed in the course of using the various applications available on the
cluster; modules provide a simple way to prepare your environment for your
application.
As an example, see the pages for
Python
and
Enthought
Python. Users can load a module during their session that will determine
which one loads when they run the command "python".
How to use modules
Complete documentation of commands and options can be found by
[araim1@tara-fe1 ~]$ man module
but we will illustrate some useful commands here. To see all the modules we
currently have loaded:
[araim1@tara-fe1 ~]$ module list
Currently Loaded Modulefiles:
1) matlab/r2011a 15) autodock/4.2-1
2) comsol/4.2u2 16) autodock-vina/1.1.1-1
3) sas/9.2 17) mgltools/1.5.4-1
4) idl/8.1 18) maestro-academic/9.3.023
5) gamess/2009.1.R3 19) utils
6) gromacs/4.0.7 20) scilab/5.3.1
7) charmm/c35b3.xxlarge 21) slurm/default
8) gaussian/09 22) dssp/2.0.1
9) latex-contrib/default 23) surflex/2514
10) vmd/1.8.7 24) default-software
11) namd/2.7b3 25) pgi/9.0
12) chimera/1.4.1 26) mpi/gcc-openmpi-1.3.3-p1
13) sculptor/2.0.2 27) switcher/1.0.13
14) plants/1.2 28) modules-init
[araim1@tara-fe1 ~]$
We can see the "display" command to see what a module is doing
[araim1@tara-fe1 ~]$ module display matlab/r2011a
-------------------------------------------------------------------
/usr/cluster/modulefiles/matlab/r2011a:
prepend-path PATH /usr/cluster/matlab/r2011a/bin
setenv MLROOT /usr/cluster/matlab/r2011a
-------------------------------------------------------------------
araim1@tara-fe1 ~]$
We can list all available modules which have been defined by the system
administrators. (Note: your listing may differ, depending on the current
configuration).
[araim1@tara-fe1 ~]$ module avail
------------------------ /usr/share/Modules/modulefiles ------------------------
dot module-cvs module-info modules null use.own
------------------------------- /etc/modulefiles -------------------------------
modules-init
--------------------------- /usr/cluster/modulefiles ---------------------------
R/2.14.0 llvm/2.9
autodock/4.2-1 maestro-academic/9.3.023(default)
autodock-vina/1.1.1-1 matlab/r2009b
charmm/c35b3 matlab/r2010a
charmm/c35b3.xxlarge(default) matlab/r2010b
chimera/1.4.1(default) matlab/r2011a(default)
comsol/3.5a matlab/r2011b
comsol/4.0 mgltools/1.5.4-1
comsol/4.0a mpi/gcc-mvapich2-1.4rc2
comsol/4.1 mpi/gcc-openmpi-1.3.3
comsol/4.1u3 mpi/gcc-openmpi-1.3.3-p1
comsol/4.2 mpi/gcc44-mvapich2-1.7
comsol/4.2a mpi/pgi-9.0-mvapich2-1.4rc2
comsol/4.2u1 mpi/pgi-9.0-openmpi-1.3.3
comsol/4.2u2(default) mpi/pgi-9.0-openmpi-1.3.3-p1
default-software namd/2.7b3(default)
default-software-testing pgi/9.0
dssp/2.0.1 pgi/testing
emacs/23.3 plants/1.2(default)
embody/0.9.21 python/2.7.2(default)
epd/6.3-2(default) qt/4.5.2
epd/7.1-2 qt47/4.7.2-1
freemat/4.0.1 sas/9.2
gamess/2009.1.R3(default) schrodinger/2010u1(default)
gaussian/09 scilab/5.3.1
gcc/4.4.4 sculptor/2.0.2(default)
gromacs/4.0.7(default) slurm/default
idl/7.0 surflex/2514
idl/8.1(default) switcher/1.0.13(default)
intel-cnc/0.6 tbb/30_196oss
java/jdk1.6.0_18-x64 utils
latex-contrib/default vmd/1.8.7(default)
llvm/2.5(default)
--------------------------- /opt/modules/modulefiles ---------------------------
araim1@tara-fe1 ~]$
If we run python with the current setup (given above by "module list"), we'll
get an older system version 2.4.3
[araim1@tara-fe1 ~]$ python
Python 2.4.3 (#1, Apr 14 2011, 20:41:59)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Suppose we'd like to use a more recent version of Python, so we'll load the
python/2.7.2 module. Notice in the output of "module avail", we have
"python/2.7.2(default)". This means that we can load this package with an
explicit version number
[araim1@tara-fe1 ~]$ module load python/2.7.2
Or we can omit the version number to get the same result
[araim1@tara-fe1 ~]$ module load python
One the module is loaded, we should get the following when we run python
[araim1@tara-fe1 ~]$ python
Python 2.7.2 (default, Sep 8 2011, 21:04:00)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Another available version of Python is Enthought. Suppose we load its module
after loading python/2.7.2.
[araim1@tara-fe1 ~]$ module load epd/7.1-2
[araim1@tara-fe1 ~]$ python
Enthought Python Distribution -- www.enthought.com
Version: 7.1-2 (64-bit)
Python 2.7.2 |EPD 7.1-2 (64-bit)| (default, Jul 3 2011, 15:17:51)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "packages", "demo" or "enthought" for more information.
>>>
Suppose we're finished with Enthought Python and want to go back to
python/2.7.2. We can bring our environment back to the previous state
by unloading the epd/7.1-2 module.
[araim1@tara-fe1 ~]$ module unload epd/7.1-2
[araim1@tara-fe1 ~]$ python
Python 2.7.2 (default, Sep 8 2011, 21:04:00)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Another useful module command is "swap" which will replace one loaded module
with another. (As opposed to being loaded on top, as in the Python example
above). As an example, let's try loading epd/7.1-2, and then swapping it
out for an older version epd/6.3-2.
[araim1@tara-fe1 ~]$ module load epd/7.1-2
araim1@tara-fe1 ~]$ python
Enthought Python Distribution -- www.enthought.com
Version: 7.1-2 (64-bit)
Python 2.7.2 |EPD 7.1-2 (64-bit)| (default, Jul 3 2011, 15:17:51)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "packages", "demo" or "enthought" for more information.
>>> quit()
[araim1@tara-fe1 ~]$ module swap epd/6.3-2
[araim1@tara-fe1 ~]$ python
Enthought Python Distribution -- http://www.enthought.com
Version: 6.3-2 (64-bit)
Python 2.6.6 |EPD 6.3-2 (64-bit)| (r266:84292, Sep 17 2010, 19:18:23)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>