wiki:cypress/ModuleCommand

Version 6 (modified by fuji, 5 years ago) (diff)

Program:module

module is a utility used to manage multiple compilers on a single system, as well as set environment variables for other programs and utilities.

Available Modules

The following command will list all available modules.

[tulaneID@cypress1 ~]$ module avail

-------------------------------------------------------- /cm/local/modulefiles --------------------------------------------------------
cluster-tools/7.0                 ipmitool/1.8.13                   openldap
cmd                               module-git                        openmpi/gcc/64/1.8.2-mlnx-ofed2
dot                               module-info                       shared
freeipmi/1.3.4                    mvapich2/gcc/64/2.0rc1-mlnx-ofed2 use.own
intel/mic/sdk/3.3                 null                              version

------------------------------------------------------- /cm/shared/modulefiles --------------------------------------------------------
acml/gcc/64/5.3.1                      cuda60/profiler/6.0.37                 lapack/gcc/64/3.5.0
acml/gcc/fma4/5.3.1                    cuda60/toolkit/6.0.37                  lapack/open64/64/3.5.0
acml/gcc/mp/64/5.3.1                   default-environment                    mpich/ge/gcc/64/3.1
acml/gcc/mp/fma4/5.3.1                 fftw2/openmpi/gcc/64/double/2.1.5      mpich/ge/open64/64/3.1
acml/gcc-int64/64/5.3.1                fftw2/openmpi/gcc/64/float/2.1.5       mpiexec/0.84_432
acml/gcc-int64/fma4/5.3.1              fftw2/openmpi/open64/64/double/2.1.5   mvapich/gcc/64/1.2rc1
acml/gcc-int64/mp/64/5.3.1             fftw2/openmpi/open64/64/float/2.1.5    mvapich/open64/64/1.2rc1
acml/gcc-int64/mp/fma4/5.3.1           fftw3/openmpi/gcc/64/3.3.3             mvapich2/gcc/64/2.0b
acml/open64/64/5.3.1                   fftw3/openmpi/open64/64/3.3.3          mvapich2/open64/64/2.0b
acml/open64/fma4/5.3.1                 gcc/4.8.2                              netcdf/gcc/64/4.3.1.1
acml/open64/mp/64/5.3.1                globalarrays/openmpi/gcc/64/5.3        netcdf/open64/64/4.3.1.1
acml/open64/mp/fma4/5.3.1              globalarrays/openmpi/open64/64/5.3     netperf/2.6.0
acml/open64-int64/64/5.3.1             hadoop/HAL/Cloudera/2.3.0-cdh5.1.2     open64/4.5.2.1
acml/open64-int64/fma4/5.3.1           hdf5/1.6.10                            openblas/dynamic/0.2.8
acml/open64-int64/mp/64/5.3.1          hdf5_18/1.8.12                         openmpi/gcc/64/1.8.1
acml/open64-int64/mp/fma4/5.3.1        hive/HAL/Cloudera/1.2.0-bin            openmpi/open64/64/1.8.1
blacs/mpichge/gcc/64/1.1patch03        hpl/2.1                                pbspro/12.2.1.140292
blacs/openmpi/gcc/64/1.1patch03        hwloc/1.8.1                            pig/HAL/Cloudera/0.12.0-cdh5.1.2
blacs/openmpi/open64/64/1.1patch03     intel/compiler/64/14.0/2013_sp1.3.174  scalapack/gcc/64/1.8.0
blas/gcc/64/1                          intel-cluster-checker/2.1.2            scalapack/open64/64/1.8.0
blas/open64/64/1                       intel-cluster-runtime/ia32/3.6         sge/2011.11p1
bonnie++/1.97.1                        intel-cluster-runtime/intel64/3.6      slurm/14.03.0
cmgui/7.0                              intel-cluster-runtime/mic/3.6          spark/HAL/Cloudera/1.4.0-bin-hadoop2.3
cuda60/blas/6.0.37                     intel-tbb-oss/ia32/42_20140601oss      torque/4.2.6.1
cuda60/fft/6.0.37                      intel-tbb-oss/intel64/42_20140601oss   tulane/intel-psxe/2015
cuda60/nsight/6.0.37                   iozone/3_420

------------------------------------------------------- /share/apps/modulefiles -------------------------------------------------------
anaconda/2.1.0             fftw/2.1.5/single          metis/5.1.0                plink/1.07
bbcp/amd64_rhel60          fftw/3.3.4                 mosaik/2.2.3               python/2.7.10
berkeleygw/1.1-beta2       gcc/4.7.4                  mpich/3.1.4                R/3.1.2
boost/1.57.0               git/2.4.1                  ncbi-blast/2.2.30+         rsem/1.2.19
bowtie/1.1.1               gnuplot/5.0.1              netcdf/4.3.2               samtools/0.1.19
bowtie2/2.2.4              hdf5/1.8.14                netcdf-cxx4/4.2.1          samtools/1.1
cmake/3.0.2                hdf5-parallel/1.8.14       netcdf-fortran/4.4.1       star/2.4.0i
diamond/0.6.12             ibamr/0.1-rc1              openmpi/1.8.4              sundials/2.5.0
eigen/3.2.4                idev                       parmetis/4.0.3             tinker/7.1.2
emacs/24.4                 intel-psxe/2015-update1    petsc/3.4.5                tophat/2.0.13
espresso/5.1.2             matlab/r2013b              petsc/3.5.2                visit/2.9.2
fftw/2.1.5/double(default) matlab/r2015a              petsc/3.5.3                vtk/6.1.0

Loading & Unloading Modules

This will load the Intel Parallel Studio XE which contains the Intel compiler suite:

[tulaneID@cypress1 ~]$ module load intel-psxe

To unload the same package:

[tulaneID@cypress1 ~]$ module unload intel-psxe

Listing Loaded Modules

[tulaneID@cypress1 ~]$ module load intel-psxe
[tulaneID@cypress1 ~]$ module list
Currently Loaded Modulefiles:
  1) slurm/14.03.0             2) idev                      3) intel-psxe/2015-update1

Details

Using $HOME/.modulerc

This file can be used to load or to define your own environment during each login. An example looks like this:

#%Module
module load intel-psxe/2016

A .modulerc begins with the magic cookie, '#%Module'.

Define your own module

Compiling software in a user directory then defining personal environment modules is useful when software one needs are not installed on Cypress, or the installed ones are not of the desired version.

For example, SuperLU is not available on the main module.

Download the source codes, and compile and install it, for example, on /lustre/project/dpg/local/SuperLU_5.2.1

Create a module-definition file, for example, as /lustre/project/dpg/local/modulefiles/SuperLU/5.2.1 where the directory name SuperLU is the software name without version number, and the file name, 5.2.1 is the version number. The file looks like this:

#%Module1.0 -*- tcl -*-
##
## modulefile
##

module-whatis "a general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations."

set curMod [module-info name]
if { [ module-info mode load ] } {
    system "/bin/logger -p local0.info 'module_load: $curMod.'"
}

conflict SuperLU/4.3

module load intel-psxe/2016
set    INSTALL_ROOT    /lustre/project/dpg/local/SuperLU_5.2.1

prepend-path    PATH               $INSTALL_ROOT/bin
prepend-path	LD_LIBRARY_PATH    $INSTALL_ROOT/lib
prepend-path	LIBRARY_PATH       $INSTALL_ROOT/lib
setenv		SLU_DIR            $INSTALL_ROOT

Edit your .modulerc that looks like this:

#%Module
module use /lustre/project/dpg/local/modulefiles

Now your new module will be listed and you can load it with the usual commands.

[tulaneID@cypress1 ~]$ module avail

------------------------------------------------ /lustre/project/dpg/local/modulefiles ------------------------------------------------
SuperLU/5.2.1
-------------------------------------------------------- /cm/local/modulefiles --------------------------------------------------------
cluster-tools/7.0                 ipmitool/1.8.13                   openldap
:
:

Next Section

Job Submissions