environment-modules是一个用于管理用户不同应用的工具,可以动态的加载、移除所安装的应用。
1. 对于root用户的安装命令:(需要管理员权限,普通用户无法安装)
# sudo yum install -y environment-modules
2. 设置环境变量:
安装environment-modules之后,会默认在/usr/share/module目录下产生一系列文件夹,其中init中放了在各种系统下初始化这个程序的脚本。
需要在.bashrc里面设置环境变量,指定modulefiles的路径。其中,module是通过modulefiles来定位安装的软件的位置以及其他路径与环境变量的设置。
# source /usr/share/Modules/init/bash !初始化设置
# vi ~/.bashrc
export MODULEPATH=/usr/share/Modules/modulefiles
# source ~/.bashrc
3. 检查
# module avail

4. 编写modulefile(以intel compiler modulefile为例)
#%Module1.0
##
## intel compiler modulefile
##
proc ModulesHelp { } {
puts stderr "Sets up the paths you need to use intel compilers."
}
module-whatis "sets the environment variables for intel compiler 12"
conflict icc
conflict ifort
conflict idb
conflict mkl
conflict intel_tools
conflict intel-compilers
set cmplr_path /home/apps/intel/composer_xe_2011_sp1.8.273
prepend-path PATH $cmplr_path/bin/intel64
prepend-path LD_LIBRARY_PATH $cmplr_path/compiler/lib/intel64
prepend-path LIBRARY_PATH $cmplr_path/compiler/lib/intel64
prepend-path MIC_LD_LIBRARY_PATH $cmplr_path/compiler/lib/mic
prepend-path NLSPATH $cmplr_path/debugger/intel64/locale/%l_%t/%N
prepend-path NLSPATH $cmplr_path/compiler/lib/intel64/locale/%l_%t/%N
# il faut un : a la fin pour que le man cherche dans les autres repertoires
# il faut parcontre trouver une autre facon au cas ou l'usager n'utilise pas
# ce module
prepend-path MANPATH $cmplr_path/man/en_US:
set IPPPATH $cmplr_path/mkl
prepend-path LD_LIBRARY_PATH $IPPPATH/lib/intel64
prepend-path LD_LIBRARY_PATH $IPPPATH/../compiler/lib/intel64
prepend-path LIBRARY_PATH $IPPPATH/lib/intel64
prepend-path LIBRARY_PATH $IPPPATH/../compiler/lib/intel64
prepend-path INCLUDE $IPPPATH/include
prepend-path NLSPATH $IPPPATH/lib/intel64/locale/%l_%t/%N
setenv IPPROOT $IPPPATH
set TBBPATH $cmplr_path/tbb
prepend-path LD_LIBRARY_PATH $TBBPATH/lib/intel64/cc4.1.0_libc2.4_kernel2.6.16.21
prepend-path LIBRARY_PATH $TBBPATH/lib/intel64/cc4.1.0_libc2.4_kernel2.6.16.21
prepend-path CPATH $TBBPATH/include
setenv TBB30_INSTALL_DIR $TBBPATH
set MKLPATH $cmplr_path/mkl
prepend-path LD_LIBRARY_PATH $MKLPATH/lib/intel64
prepend-path LIBRARY_PATH $MKLPATH/lib/intel64
prepend-path CPATH $MKLPATH/include
prepend-path FPATH $MKLPATH/include
prepend-path INCLUDE $MKLPATH/include
prepend-path NLSPATH $MKLPATH/lib/intel64/locale/%l_%t/%N
setenv MKLROOT $MKLPATH
setenv PROD_DIR /home/apps/intel/composerxe-2011
setenv CPRO_PATH /home/apps/intel/composerxe-2011.4.191
setenv INTEL_LICENSE_FILE $cmplr_path/licenses:/home/apps/intel/licenses:/opt/intel/licenses
#MPI???
# set MPIRTPATH $cmplr_path/MPIRT
# prepend-path LD_LIBRARY_PATH $MPIRTPATH/lib/intel64
# prepend-path PATH $MPIRTPATH/bin/intel64
其中:
#%Module1.0 !modulefile开头格式,必须有,否则无法识别
conflict modulefile !与当前的intel compiler modulefile有冲突的modulefile,即如果modulefile已经被加载,那么intel compiler modulefile将不能被加载。
prepend-path 相关环境变量 相关路径
setenv 环境变量名 值
5. 常见命令:
module help 显示帮助信息
module avail 查看所有可用的软件环境变量
module load/add 加载对应的环境变量
module list 查看已导入的环境变量
module unload/rm 删除以导入的环境变量
module switch mod/版本时间 改变环境变量的版本号
module swap mod1 mod2 替换环境变量
6. 在TH-1A上调用module模板(例调用phonopy应用包)
- $ module avail :确定相应的phonopy包在module里面

- $ module list :没有加载此模块

- $ phonopy :测试结果为无法正常使用
- $ module load phonopy/2.1.3-py27 : 加载此模块
- $ phonopy :测试结果为可正常使用

本文介绍了如何在超算平台利用environment-modules管理并加载应用,包括root用户的安装步骤、环境变量设置、编写modulefile以及常用命令的示例,以Intel Compiler和phonopy应用为例展示了实际操作流程。
1723

被折叠的 条评论
为什么被折叠?



