Module

应用介绍

Module通过modulefile文件来动态管理系统的各种依赖环境。先将不同软件的环境的配置文件写好,然后在使用的时候通过module来进行环境的导入以及删除。

使用指南

  1. 先使用module avail查看可用的编译器版本:

    module avail

  2. 使用module load来加载指定版本的编译器。

    以加载GCC10.1为例

    module load compiler/gcc/10.1.0
    

    注意

    建议不要同时module load多个软件,因为不同软件间可能是有冲突的。比较好的方式是module load一个或一组相互依赖的软件,软件运行完后运行module purge清除导入的环境,然后再导入另外一个或一组相互依赖的软件。

  3. 使用module list查看已经加载的编译器,确认是否加载成功。

    下图表示此时gcc10.1版本已经加载在当先系统,可以使用gcc10.1来编译你的程序

    module list

进阶应用

编写自己的modulefile

部分用户可能会希望将自己的软件环境加到module中进行管理,可以按以下方法操作。

1mkdir ${HOME}/mymodulefiles   # 创建目录用于放自己的module file
2echo "export MODULEPATH=${HOME}/mymodulefiles:\$MODULEPATH" >> ~/.bashrc
3source ~/.bashrc # 或者退出重新登录即可

以下是编写module file 中常用的语法:

set

设置modulefile内部的变量

setenv

设置环境变量

prepend-path

效果类似于export PATH=xxx:$PATH

append-path

效果类似export PATH=$PATH:xxx

常见指令

module help

显示帮助信息

module avail

显示已经安装的软件环境

module load

导入相应的软件环境

module unload

删除相应的软件环境

module list

列出已经导入的软件环境

module purge

清除所有已经导入的软件环境

module switch [mod1] mod2

删除mod1并导入mod2

更多内容可参考:https://modules.readthedocs.io/en/latest/