环境管理模块:Environment Modules

发布时间: 更新时间: 总字数:646 阅读时间:2m 作者: IP上海 分享 网址

Environment Modules 是一种管理 UnixLinux shell 环境的工具,它允许动态地设置或删除相关的环境变量。

安装

yum install -y environment-modules

help

$ module --help

  Modules Release 3.2.10 2012-12-21 (Copyright GNU GPL v2 1991):

  Usage: module [ switches ] [ subcommand ] [subcommand-args ]

Switches:
	-H|--help		this usage info
	-V|--version		modules version & configuration options
	-f|--force		force active dependency resolution
	-t|--terse		terse    format avail and list format
	-l|--long		long     format avail and list format
	-h|--human		readable format avail and list format
	-v|--verbose		enable  verbose messages
	-s|--silent		disable verbose messages
	-c|--create		create caches for avail and apropos
	-i|--icase		case insensitive
	-u|--userlvl <lvl>	set user level to (nov[ice],exp[ert],adv[anced])
  Available SubCommands and Args:
	+ add|load		modulefile [modulefile ...]
	+ rm|unload		modulefile [modulefile ...]
	+ switch|swap		[modulefile1] modulefile2
	+ display|show		modulefile [modulefile ...]
	+ avail			[modulefile [modulefile ...]]
	+ use [-a|--append]	dir [dir ...]
	+ unuse			dir [dir ...]
	+ update
	+ refresh
	+ purge
	+ list
	+ clear
	+ help			[modulefile [modulefile ...]]
	+ whatis		[modulefile [modulefile ...]]
	+ apropos|keyword	string
	+ initadd		modulefile [modulefile ...]
	+ initprepend		modulefile [modulefile ...]
	+ initrm		modulefile [modulefile ...]
	+ initswitch		modulefile1 modulefile2
	+ initlist
	+ initclear

常用命令

  • module avail # 列出所有可用模块文件
  • module –debug=1 [av|avail] # debug 模式列出
$ module avail

------------------------------------------- /usr/share/Modules/modulefiles -------------------------------------------
dot         module-git  module-info modules     null        use.own
  • module load module-git # 加载模块文件/类
  • module list # 显示已经加载的模块
  • module unload module-git # 卸载模块文件/类

添加新 modulefiles

初始化 modulefilesapps 目录:

  • /opt/Modules/modulefiles

  • /opt/Modules/apps

  • 添加 /opt/Modules/modulefilesmudulespath

echo "/opt/Modules/modulefiles" >> /usr/share/Modules/init/.modulespath

添加后,重启会通过 /etc/profile.d/modules.sh 调用 /usr/share/Modules/init/bash,加载 /usr/share/Modules/init/.modulespath 配置到环境变量 MODULEPATH 中。

添加新 module

LAMMPS 为例,LAMMPS 提供了元素周期表中原子对应的经验势函数,可进行与实际体系对应的分子动力学模拟,例如计算金属铝的晶格常数,或水的密度,得到与实验吻合的结果。

  • 编译 lammps
wget https://download.lammps.org/tars/lammps-stable.tar.gz
yum install -y cmake
tar -zxvf lammps-stable.tar.gz
cd lammps-29Oct20/
mkdir build; cd build
cmake -D CMAKE_INSTALL_PREFIX=/opt/Modules/apps/lammps/29Oct20/ ../cmake
# cmake -D CMAKE_INSTALL_PREFIX=/opt/Modules/apps/lammps/29Oct20/ -D BUILD_MPI=yes -D BUILD_OMP=yes -D PKG_MANYBODY=yes ../cmake/  # 更多参数参考 cmake/CMakeLists.txt
make
make install
  • /opt/Modules/modulefiles/lammps/29Oct20
#%Module -*- tcl -*-

proc ModulesHelp { } {
        puts stderr "This module loads the lammps utility"
        puts stderr "\nVersion 2020.10\n"
}

# 显示 module whatis 显示主要内容
module-whatis "Name: lammps"
module-whatis "Version: 2020.10"
module-whatis "URL https://www.lammps.org/"

# module 加载前需要模块类,没有加载会报错
#prereq <module_flag>

# module 加载冲突模块类
#conflict <another_module_flag>

# 加载其他模块
#module load gcc

# 设置环境变量
set     version             2020.10

# 添加环境变量
append-path   PATH             /opt/Modules/apps/lammps/29Oct20/bin/
#append-path  MANPATH          /opt/Modules/apps/lammps/29Oct20/man
#append-path  LD_LIBRARY_PATH  /opt/Modules/apps/lammps/29Oct20/lib
  • 验证
[root@xiexianbin_cn ~]# module avail

------------------------------------------- /usr/share/Modules/modulefiles -------------------------------------------
dot         module-git  module-info modules     null        use.own

---------------------------------------------- /opt/Modules/modulefiles ----------------------------------------------
lammps/29Oct20
[root@xiexianbin_cn ~]# module load lammps/29Oct20
[root@xiexianbin_cn ~]# lmp
LAMMPS (29 Oct 2020)

扩展

  • easybuild 也是环境模块管理工具

参考

  1. https://github.com/cea-hpc/modules
  2. https://modules.readthedocs.io/
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数