wiki:cypress/ModuleCommand

Version 7 (modified by fuji, 10 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

Note: See TracWiki for help on using the wiki.