Help:Module

From CECS wiki
Jump to navigation Jump to search

module is a system for managing your shell environment to make multiple conflicting software packages and versions available.

Software homepage
http://modules.sourceforge.net/
Software availability
most rocks clusters; other unix systems on request
ubuntu: see directions below to install
Other related software
rocks, cluster, rocks cluster, unix
commands to type to run
module list
module avail
module help
View online documentation
man module
Cluster specific module documentation
crcv, jay, neat, nlp


Additional notes[edit]

Most rocks clusters have the module system configured. The module system uses configuration files to make changes to the user environment to add and remove versions of multiple software packages.

As part of the install, I have fully deployed the module system which makes edits to your environment that can be temporary or permanent. There are a number of self contained software packages installed, and I have created config files for module that will make these work.

For instance:

% module list
Currently Loaded Modulefiles:
 1) rocks-openmpi

% module avail
------------------------ /usr/share/Modules/modulefiles ------------------------
dot              modules          rocks-openmpi
module-git       null             rocks-openmpi_ib
module-info      opt-python       use.own

------------------------------- /etc/modulefiles -------------------------------
cuda/7.5       openmpi-x86_64

----------------------------- /share/apps/Modules ------------------------------
localapps torch

% module load cuda
% module list
Currently Loaded Modulefiles:
 1) rocks-openmpi   2) cuda/7.5

% module help

modules available[edit]

These environments can be loaded with the module command. Note that not all modules are available on all systems (ask if you need one added)

Please consult the appropriate page for your system to see exactly what software each module includes. (see above)


Use module load XXX to enable software listed below:

cuda
nVidia cuda and cudnn
cudnn
NVIDIA CUDA Deep Neural Network library; if this is missing, it is included in the cuda module
localapps
apps installed in /share/apps/local (clusters only)
opencv
http://opencv.org/
torch
torch is a scientific computing framework with wide support for machine learning algorithms that puts GPUs first; this may include additional modules, see help:torch for details
matlab
various versions of matlab
caffe
caffe is a deep learning framework
caffe-deps
contains libraries needed to compile caffe including gflags, glog 0.3.3, boost 1.60
anaconda
prepackaged python libraries; usually the system python works better in linux; may contain a buggy version of boost
theano-force-gpu
sometimes theano will use the cpu even when the gpu is available. This tries to fix that.

Installing modules in ubuntu[edit]

If you would like to use the module system on your own ubuntu system, you can install it and configure it using these instructions.

  • install modules
apt-get install environment-modules
  • activate the module system in your current shell (or log out and log back in)
source /etc/profile.d/modules.sh
  • check the installed location
module avail
------------------------ /usr/share/modules/modulefiles ------------------------
dot         module-git  module-info modules     null        use.own
  • Create module files for software you are using. Options are:
    • add modules to the system directory (listed above: /usr/share/modules/modulefiles )
    • module load use.own and then create the listed directory (in your home directory) and place modules there

creating your own modules[edit]

As a shortcut, you can download this script to automatically create modules from installed software. Note that this is probably already installed if you are using a CECS server.

wget http://newton.i2lab.ucf.edu/~ssd/src/makemodule
chmod +x makemodule

Example use:

mkdir  /usr/share/modules/modulefiles/cuda
./makemodule /usr/local/cuda-8.0 > /usr/share/modules/modulefiles/cuda/8.0

If you are compiling software and installing it in your home directory, you should also create a privatemodules directory

 module load use.own

You can see what this does with

 module show use.own

Then save modules you make for software you compile in that directory.

If you wanted to install both cudnn 5 and cudnn 6, you could make modules for both like this:

  • download cudnn from https://developer.nvidia.com/cudnn
    • get version 6 for cuda 8, instead of the deb file, get cuDNN v6.0 Library for Linux
    • get version 5.1 for cuda 8, cuDNN v5.1 Library for Linux
  • Unpack the libraries in their own directories
cd /usr/local
mkdir un
cd un
tar xvzf ~/cudnn-8.0-linux-x64-v5.1.tgz
mv cuda ../cudnn-8-51
tar xzvf ~/cudnn-8.0-linux-x64-v6.0.tgz
mv cuda ../cudnn-8-60
cd ..
rmdir un
  • make the modules
mkdir /usr/share/modules/modulefiles/cudnn
makemodule /usr/local/cudnn-8-51 | sudo tee  /usr/share/modules/modulefiles/cudnn/8-5.1
makemodule /usr/local/cudnn-8-60 | sudo tee /usr/share/modules/modulefiles/cudnn/8-6.0
  • You may also want to edit both of these files and add the following line since these depend on cuda 8:
module load cuda/8.0