module
Environment Modules包是一个简化shell初始化的工具,允许用户在使用modulefiles进行会话期间轻松修改其环境。每个module文件都包含为应用程序配置shell所需的信息。初始化Modules包后,通过解释modulefiles的module命令在每个module的基础上修改环境。通常,modulefiles指示module命令改变或设置shell环境变量,例如PATH,MANPATH等。modulefiles可以由系统上的许多用户共享,并且用户可以拥有自己的集合来补充或替换共享modulefiles。module可以以干净的方式动态加载和卸载。
module常见指令¶
下面是 module 的一些常见指令:
module help # 显示帮助信息
module avail # 显示平台上已经安装的软件环境,avail可简写为av
module load # 加载指定的软件环境,load这里也可用add,一样的效果
module unload # 取消加载指定的软件环境
module list # 列出已经导入的软件环境
module purge # 清除所有已经加载的软件环境
module switch [mod1] mod2 # 取消加载 mod1 的同时加载 mod2
module使用例子¶
查看集群现有软件
[userA@quantum ~]$ module av
------------------------ /usr/share/Modules/modulefiles -------------------------
dot module-git module-info modules null use.own
------------------------ /opt/modulefiles ---------------------------------------
anaconda3 gauss/g16c01 gmx/2022.5 miniconda3
cmake-3.26.3 gcc11.4.0 intel/compiler/2022.2.0 multiwfn/3.8_dev
cp2k gcc13.2.0 intel/impi/2021.7.0 orca5.0.4
gauss/g09d01 gmx/2018.4 intel/mkl/2022.2.0 orca6.0.0
[userA@quantum ~]$ module av gauss
------------------------ /opt/modulefiles ---------------------------------------
gauss/g09d01 gauss/g16c01
[userA@quantum ~]$ module load gauss/g16c01
[userA@quantum ~]$ which g16
/opt/soft/gauss/g16c01_avx2/g16/g16
[userA@quantum ~]$ which formchk
/opt/soft/gauss/g16c01_avx2/g16/formchk
module purge
module管理自己安装的软件环境¶
自己编译安装的软件也可以通过module来进行管理,步骤如下:
-
创建目录用来存放自己的modulefile
将下面的内容添加到 ~/.bashrc文件中mkdir -p ${HOME}/modulefiles # 创建目录用于放自己的modulefile
执行export MODULEPATH=${HOME}/modulefiles:$MODULEPATH
source ~/.bashrc
或者退出重新登录即可 -
编写modulefile
打开刚刚创建好的,用于modulefile的目录
在创建好的目录下编写modulefile,假设在路径 ${HOME}/soft/cp2k-2023.2中安装了CP2K软件,则可以这么编写名为 cp2k-2023.2的modulefile;[userA@quantum ~]$ cd ${HOME}/modulefiles
编写好后执行#%Module1.0##################################################################### ## ## CP2K 2023.2 modulefile ## proc ModulesHelp { } { global version puts stderr "\tAdds CP2K 2023.2 to your environment. " } conflict CP2K module-whatis "adds CP2K 2023.2 to your environment." # for Tcl script use only set version 2023.2 set root_path ${HOME}/software/soft/cp2k-2023.2 prepend-path PATH ${root_path}/exe/local:${root_path}/mpich-4.0.3/bin prepend-path CP2K_DATA_DIR ${root_path}/data prepend-path LD_LIBRARY_PATH ${root_path}/lib:${root_path}/mpich-4.0.3/lib
module av
就可查看到刚刚写好的modulefile,并通过module load cp2k-2023.2
加载使用自己编译安装的cp2k-2023.2软件环境了。
编写modulefile语法¶
下为编写modulefile文件常见的语法;
set # 设置modulefile内部环境变量
setenv # 设置环境变量
prepend-path # 效果类似于export PATH=xxx:$PATH
append-path # 效果类似export PATH=$PATH:xxx
source xxx.sh
的方式导入环境变量,可以这么写modulefile ,如intel parallel studio
set scriptpath "/opt/soft/intel/2018.1/compilers_and_libraries_2018.1.163/linux/bin"
switch -- [module-info shelltype] {
sh {
source-sh bash $scriptpath/compilervars.sh intel64
}
csh {
source-sh tcsh $scriptpath/compilervars.csh intel64
}
}
append-path INTEL_LICENSE_FILE "/opt/soft/intel_parallel_studio/licenses"
本站总访问量 次