Version 7 (modified by 8 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
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 : :