本集群使用Environment Modules以模块的形式对环境变量进行管理。在高性能计算集群系统中,安装有多种软件及其不同版本,它们需要设置不同的环境变量,Environment Module可以将这些环境变量做成模块文件(modulefile)。模块可以被加载(load)、卸载(unload)、切换(switch)等,这些操作会改变相应的环境变量设置,让用户方便的在不同环境之间切换。相比将环境变量设置写入/etc/profile、~/.bashrc或~/.bash_profile,Environment Module操作只影响当前用户的当前登录环境;相比直接source文件,Environment Module的操作可以撤销(卸载)。普通用户还可以自己编写module,具有很好的定制性。用户不仅可以在命令行中Environment Modules,也能在作业提交脚本中使用,对编译和计算环境都能够很好的控制。
常用命令
- 显示module帮助:module help
- 显示所有可用模块:module avail
- 显示已加载模块:module list
- 加载模块:module load MODULEFILE
- 卸载模块:module unload MODULEFILE
- 切换模块:module switch OLD_MODULEFILE NEW_MODULEFILE(等价于:module unload OLD_MODULEFILE; module load NEW_MODULEFILE)
- 卸载所有已加载模块:module purge
- 显示模块说明:module whatis MODULEFILE
- 显示模块内容:module display MODULEFILE
模块命名规则
软件名/版本-编译器-版本-库-版本
非 Bash
使用非Bash作为Login Shell的用户,请在作业提交脚本的首行指明Shell或使用bsub参数-L指定作业运行时Login Shell为Bash
如Login Shell为tcsh,使用下面两种方法中的一种
#!/bin/tcsh #首行指明Shell #BSUB ... ...
... #BSUB -L /bin/bash #指定运行时Login Shell为Bash ...
例
$ module avail #查看所有可用模块 ------------------------------ /fs00/software/modulefiles ------------------------------ gcc/5.2.0 impi/5.0.3.048 iccifort/15.0.3 ips/2011sp1u3 ics/2013 ips/2015u3 ics/2013sp1u1 openmpi/1.10.0-gcc-5.2.0 imkl/11.2.3 openmpi/1.10.0-iccifort-15.0.3 $ module list #显示已加载模块 No Modulefiles Currently Loaded. #没有模块被加载 $ icc --version #故icc找不到 -bash: icc: command not found $ module whatis ips/2015u3 #查看模块说明 ips/2015u3 : Intel Parallel Studio XE 2015 Update 3 Cluster Edition $ module load ips/2015u3 #加载模块 $ icc --version icc (ICC) 15.0.3 20150407 Copyright (C) 1985-2015 Intel Corporation. All rights reserved. $ module list #显示已加载模块 Currently Loaded Modulefiles: 1) ips/2015u3 $ module unload ips/2015u3 #卸载模块