使用Environment Module设置运行环境
“Environment module”(环境模块)是一组环境变量设置的集合。 module可以被加载(load)、卸载(unload)、切换(switch),这些操作会改变相应的环境变量设置,从而让用户方便地在不同环境间切换。 相比与将环境变量设置写入/etc/profile或者~/.bashrc,Environment module操作只影响当前用户的当前登录环境,不会因错误配置造成全局持续的破坏。 普通用户也可以自己编写module,具有很好的定制性。
Contents [hide]
1 基本命令
1.1 module命令列表
1.2 查看可用模块avail
1.3 查看已加载模块list
1.4 加载模块load
1.5 卸载模块unload
1.6 切换模块switch
1.7 卸载所有已加载的模块purge
1.8 显示模块说明whatis
1.9 显示该模块内容display
2 Pi集群module功能说明
2.1 编译器
2.2 MPI环境
2.3 工具库
3 在编译和提交作业时使用module
3.1 编译时使用module
3.2 LSF提交作业时使用module
4 编写自定义module
5 参考资料
基本命令
module命令列表
$ module
或者,
$ module -h
查看可用模块avail
$ module avail
查看已加载模块list
$ module list
加载模块load
$ module load MODULE_NAME
卸载模块unload
$ module unload MODULE_NAME
切换模块switch
$ module switch OLD_MODULE NEW_MODULE
等价于:
$ module unload OLD_MODULE; module load NEW_MODULE
卸载所有已加载的模块purge
$ module purge
显示模块说明whatis
$ module whatis MODULE_NAME
显示该模块内容display
$ module display MODULE_NAME
Pi集群module功能说明
<math>\pi</math>集群预设了如下module:
$ module avail
----------------- /lustre/utility/modulefiles ----------------
compiler-default mpi-default
fftw/impi/3.3.3 fftw/openmpi/gcc/3.3.3 icc/13.1.1
cuda/5.0 fftw/mpich2/gcc/3.3.3 fftw/openmpi/icc/3.3.3 impi/4.1.1.036
cuda-default fftw/mpich2/icc/3.3.3 gcc/4.8.1 mkl/11.0.3
openmpi/gcc/1.6.4 mpich2/gcc/1.4.1p1 pgi/13.9
openmpi/icc/1.6.4 mpich2/icc/1.4.1p1
模块命名规则是:
软件名/MPI库/编译器/版本
其中“MPI库”和“编译器”是命名时的可选项。 譬如,fftw/mpich2/gcc/3.3.3模块表示版本号为3.3.3的FFTW库,这个库支持在MPICH2上并行执行,FFTW和MPICH2库都使用GCC生成。 又如,openmpi/gcc/1.6.4模块表示版本号为1.6.4的OpenMPI库,这个库使用GCC生成。
这些模块按功能大致可分为编译器、MPI环境、工具库等,下面分别予以说明。
编译器
<math>\pi</math>集群上可以使用的编译器包括:GNU编译器(GCC)、Intel编译器、PGI编译器。 GCC-4.4.6编译器安装在操作系统目录下,能直接使用,不需要加载模块。 GCC-4.8.1、Intel编译器和PGI编译器需要加载相应模块。 编译器模块信息如下:
<thead> </thead> <tbody> </tbody>
模块 编译器版本 C编译器 C++编译器 F77编译器 F90编译器
gcc/4.4.6(默认) 4.4.6 gcc g++ g77 gfortran
gcc/4.8.1 4.8.1 gcc g++ g77 gfortran
icc/13.1.1 13.1.1 icc icpc ifort ifort
pgi/13.9 13.9 pgcc pgc++ 无 无
<math>\pi</math>集群上的Nvidia CUDA开发环境版本为5.0,使用前请加载模块cuda-default或者cuda/5.0。
MPI环境
<math>\pi</math>集群可用的MPI库比较丰富,包括Intel MPI(IMPI)、MPICH2和OpenMPI。 按照mpicc、mpicxx、mpif77和mpif90使用的后端编译器,MPICH2与OpenMPI还可以再细分为不同版本。
<thead> </thead> <tbody> </tbody>
模块 版本 mpicc mpicxx mpif77 mpif90
impi/4.1.1.036 4.1.1 gcc g++ g77 gfortran
(mpiicc uses icc) (mpicpc uses icpc)
mpich2/icc/1.4.1p1 1.4.1p1 icc icpc ifort ifort
mpich2/gcc/1.4.1p1 1.4.1p1 gcc g++ g77 gfortran
openmpi/icc/1.6.4 1.6.4 icc g++ g77 gfortran
openmpi/gcc/1.6.4 1.6.4 gcc g++ g77 gfortran
工具库
<math>\pi</math>集群上的工具库模块包括:mkl(Intel数学函数库)、fftw(FFTW快速傅里叶变换库)。 用户可根据需要,载入响应模块。
在编译和提交作业时使用module
在集群上使用编译器和特定软件库时,往往需要在启动脚本中设置复杂的环境变量。 让用户手工维护这些设置不仅容易出错,而且用户到另一个集群工作时,又需要针对新环境逐一修改变量。 使用Environment module后,将环境准备的工作交给管理员,用户按需加载模块,用同一组命令就能在不同集群上完成环境设定的工作。
下面以Intel MPI程序的编译和提交为例,说明module的作用。
编译时使用module
Intel 编译器/MPI环境的设定包括一系列复杂的环境变量设定,需要运行脚本完成配置。 典型过程如下:
$ source /lustre/utility/intel/composer_xe_2013.3.163/bin/compilervars.sh intel64
$ source /lustre/utility/intel/mkl/bin/intel64/mklvars_intel64.sh
$ source /lustre/utility/intel/impi/4.1.1.036/bin64/mpivars.sh
$ mpiicc -o mpihello mpihello.c
使用module可以使环境设定的过程更清晰:
$ module load icc/13.1.1
$ module load mkl/11.0.3
$ module load impi/4.1.1.036
$ mpiicc -o mpihello mpihello.c
LSF提交作业时使用module
使用LSF提交作业时,作业控制脚本中通常也会包含一系列环境设定脚本,譬如:
source /lustre/utility/intel/composer_xe_2013.3.163/bin/compilervars.sh intel64
source /lustre/utility/intel/mkl/bin/intel64/mklvars_intel64.sh
source /lustre/utility/intel/impi/4.1.1.036/bin64/mpivars.sh
这部分也可以用module指令替代。 注意,LSF默认使用/bin/sh解析作业脚本指令(没有module功能),且不传递$HOME、$USER、$SHELL、$LONGNAME以外的环境变量。 若要在LSF作业脚本中使用module,我们需要指定一个带有module功能的Shell(如/bin/bash),并正确设定MODULEPATH变量。 下面这个LSF作业片段供参考:
#BSUB -L /bin/bash
MODULEPATH=/lustre/utility/modulefiles:$MODULEPATH
module load icc/13.1.1
module load mkl/11.0.3
module load impi/4.1.1.036
编写自定义module
用户可根据modulefile规则,自己编写所需的module。 用户自定义module的目录,加入MODULEPATH变量后方能生效。
参考资料
“Environment Module” http://modules.sourceforge.net/
“Environment Module: Manual Page” http://modules.sourceforge.net/man/module.html
“Modules Software Environment” https://www.nersc.gov/users/software/nersc-user-environment/modules/
使用Environment Module设置运行环境相关推荐
- java最广泛的运行环境_Java运行环境下载|Java SE Runtime Environment(Java运行环境)8.0.131 官方多语言正式版_ - 极光下载站...
Java SE Runtime Environment(Java运行环境)官方版下载,Java SE Runtime Environment是运行JAVA程序不可缺少的环境,许多程序员都必须安装的运行 ...
- QProcess设置运行环境
主要使用QProces执行java程序 使用到下面的代码操作 QString sPath, javaBin, jrePath, javaHome, jreClass, javaClass;do {sP ...
- 电脑版java运行条件,Java Runtime Environment电脑版-Java Runtime Environment(Java运行环境)8.0.221 x64正式版-蜻蜓手游网...
很多时候我们运行一些软件都提示需要装Java环境,比如本站的<apk傻瓜式改包工具>,也是需要jdk环境才能正常使用的,但是现在官网需要注册账户才能下载,非常的麻烦,今天小编就为大家带来最 ...
- tomcat设置监听端口以及设置运行环境
可以在startup.bat文件,或者快捷方式上右键以文本形式打开,然后在最开头上面添加上 set JPDA_ADDRESS=3999 catalina jpda run 然后在eclipse点击虫子 ...
- [致敬未来的攻城狮计划 1] 使用 “FSP Configuration”(FSP 配置)透视配置器设置运行环境
开启攻城狮的成长之旅!这是我参与的由 CSDN博客专家 架构师李肯(http://yyds.recan-li.cn)和 瑞萨MCU (瑞萨电子 (Renesas Electronics Corpora ...
- java虚拟机32位_jre1.6java虚拟机运行环境下载|jre1.6官方版32位/64位下载_v1.6.0_9号软件下载...
jre1.6是Java Runtime Environment缩写,指Java运行环境,是Sun的产品.运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库. 软件介绍 不少软件采 ...
- java运行环境的英文缩写_java英文缩写
DAO:Data Access Object 数据访问接口. EAO:Entity Access Object,实体访问接口,EAO是基于DAO的,EAO传递的对象是Entity . DTO:Data ...
- 设置PATH 环境变量、pyw格式、命令行运行python程序与多重剪贴板
pyw格式简介: 与py类似,我认为他们俩卫衣的不同就是前者运行时候不显示终端窗口,后者显示 命令行运行python程序: 在我学习python的过程中我通常使用IDLE来运行程序,这一步骤太过繁琐( ...
- iis7设置html支持asp,Win7下启用IIS7配置ASP运行环境的详细方法
第一次在windows7下配置IIS,虽然有丰富的xp下配置IIS的经验,但还是会遇到不少的问题.特别是对入门者来说,搞清一些东西还是挺费时间的.其实win7下的IIS7配置过程是非常简单的.下面让s ...
最新文章
- 转:Flutter Decoration背景设定(边框、圆角、阴影、形状、渐变、背景图像等)...
- 获取SQLServer数据库中所有表
- Magic Powder - 2
- 重学java基础第二十五课:数据类型
- Java笔记-基于Spring Boot的SOAP双向SSL认证及WS-Security
- java 序列化 缓存_由缓存导致的一个java序列化问题
- HDU1597 find the nth digit【模拟】
- 表面粗糙度的基本评定参数是_表面粗糙度100个常见问题
- Java SE 原生数据类型
- 回答一个关于产品经理的入门门槛高不高的问题
- API接口版本控制的实现方式
- iOS中WKWebView清除cookies
- 马哥教育N63期-第一周作业
- c++实现简易trpg角色生成器
- h5调起app的方法;app调起vue中的某个方法
- rancher2.6部署k8s集群示例
- C语言中的if选择语句
- ABB机器人随机物料抓取优化升级
- 超级计算机紫金,紫金山天文台将用“天河一号”模拟宇宙成长
- 基于JSP技术的学生网上选课系统的设计与实现