Modules环境模块管理工具

介绍

Modules环境模块管理工具安装和配置。

许多大型的服务器或者计算机集群上由于软件有非常多,用户各有各的需求,因此需要对这些软件进行管理,其中用的比较多的是通过Modules

安装

系统使用Ubuntu 16.04

  • 依赖安装。编译安装modules源码需要一些依赖软件,直接命令安装即可:

    1
    sudo apt install automake autoconf autopoint tcl-dev tk-dev -y
  • modules编译安装。下载并编译,命令如下:

    1
    2
    3
    4
    5
    6
    wget https://github.com/cea-hpc/modules/releases/download/v4.3.0/modules-4.3.0.tar.gz
    tar -xvf modules-4.3.0.tar.gz
    cd modules-4.3.0
    ./configure --prefix=/opt/Modules --modulefilesdir=/opt/Modules/modulefiles
    make -j4
    sudo make install

完成以后将在系统环境变量中添加一行:source /opt/Modules/init/profile.sh

模块配置

终端执行module avail可以查看可用的加载module,但是这些对你没用,你需要自己设置想要的模块。
下面简单的设置两个例子:

  • CUDA模块
    如果你想要使用CUDA(nvcc),那么需要设置相应的加载模块文件,将其放到/opt/Modules/modulefiles 文件夹下,例如下面的名为cuda-10.0modulefile

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #%Module1.0
    ##
    ## cuda module
    ##

    set ver 10.0.130
    set modroot /usr/local/cuda-10.0

    proc ModulesHelp { } {
    puts stderr "Sets up the paths you need to use cuda $ver."
    }

    prepend-path PATH $modroot/bin
    prepend-path CUDA_PATH $modroot
    prepend-path LD_LIBRARY_PATH $modroot/lib
    prepend-path LD_LIBRARY_PATH $modroot/lib64
    prepend-path C_INCLUDE_PATH $modroot/include
    prepend-path LIBRARY_PATH $modroot/lib64
    prepend-path MANPATH $modroot/doc/man/
    prepend-path CUDA_TOP $modroot
    prepend-path CUDA_HOME $modroot
  • 支持CUDA加速的GROMACS2019模块文件。同上,gmx2019.3文件内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #%Module1.0
    ##
    ## gmx2019.3-cuda module
    ##

    module load cuda-10.0

    set base /home/liuyujie714/Downloads/gmx2019
    set ver 2019.3
    set ver2 GNU

    setenv GMXBIN $base/bin
    setenv GMXDATA $base/share/gromacs
    setenv GMXLDLIB $base/lib64
    setenv GMXMAN $base/share/man
    setenv GROMACS_DIR $base

    prepend-path PATH $base/bin
    prepend-path LD_LIBRARY_PATH $base/lib
    prepend-path LD_LIBRARY_PATH /usr/local/lib
    prepend-path LIBRARY_PATH $base/lib64
    prepend-path CPATH $base/include/gromacs
    prepend-path MANPATH $base/share/man
    prepend-path PKG_CONFIG_PATH $base/lib64/pkgconfig

可以看到使用gmx2019.3时,需要加载CUDA模块。

使用

设置好以后就可以加载使用了。比如你想要用CUDA,那么只需要在终端输入:

1
module load cuda-10.0

如果想使用gmx2019.3,也只需要输入:

1
module load gmx2019.3

module list可以查看已经加载的模块,module unload xxx可以卸载xxx模块。