首页 > 技术文章 > Module管理环境变量

liu-shaobo 2020-08-22 17:43 原文

Moudle(module-environment)是一个专门管理环境变量的工具。
在Linux中管理环境变量的方式一般都是通过写入profile或bashrc文件。当同一款运行库、软件存在多个版本,配置这些环境变量非常繁琐,而Moudle工具则先将不同软件的环境的配置文件写好,然后在使用的时候通过module来进行环境的导入以及删除。


1、安装Module

# yum install -y environment-modules

加载Module环境变量

# source /etc/profile.d/modules.sh

 


2、module file常用的语法

set version    # 设置版本    
set prefix     # 设置安装目录
prereq         # 设置依赖模块    
prepend-path   # 添加路径,类似于export PATH=xxx:$PATH
setenv         # 设置环境变量
append-path    # 类似export PATH=$PATH:xxx

 

3、常用命令

# module avail      # 显示可以使用的软件环境
# module load/add   # 加载相应的软件环境
# module unload/rm  # 卸载相应的软件环境
# module purge      # 卸载所有软件环境
# module list       # 列出所有软件环境
# module switch mod1 mod2 # 卸载mod1并导入mod2
# module show       # 显示模块的配置文件

 

4、编写两个MPI Module文件

安装两个MPI软件

# yum install -y openmpi3 mpich-3.2

 

MPICH Module文件

# cat /etc/modulefiles/mpi/mpich-3.2
conflict    mpi 
prepend-path    PATH /usr/lib64/mpich-3.2/bin 
prepend-path    LD_LIBRARY_PATH /usr/lib64/mpich-3.2/lib 
prepend-path    PYTHONPATH /usr/lib64/python2.7/site-packages/mpich-3.2 
prepend-path    MANPATH /usr/share/man/mpich-3.2 
prepend-path    PKG_CONFIG_PATH /usr/lib64/mpich-3.2/lib/pkgconfig 
setenv    MPI_BIN /usr/lib64/mpich-3.2/bin 
setenv    MPI_SYSCONFIG /etc/mpich-3.2-x86_64 
setenv    MPI_FORTRAN_MOD_DIR /usr/lib64/gfortran/modules/mpich-3.2-x86_64 
setenv    MPI_INCLUDE /usr/include/mpich-3.2-x86_64 
setenv    MPI_LIB /usr/lib64/mpich-3.2/lib 
setenv    MPI_MAN /usr/share/man/mpich-3.2 
setenv    MPI_PYTHON_SITEARCH /usr/lib64/python2.7/site-packages/mpich-3.2 
setenv    MPI_COMPILER mpich-3.2-x86_64 
setenv    MPI_SUFFIX _mpich-3.2 
setenv    MPI_HOME /usr/lib64/mpich-3.2

 

OpenMPI Module文件

# cat /etc/modulefiles/mpi/openmpi-3.1.3
conflict    mpi 
prepend-path    PATH /usr/lib64/openmpi3/bin 
prepend-path    LD_LIBRARY_PATH /usr/lib64/openmpi3/lib 
prepend-path    PKG_CONFIG_PATH /usr/lib64/openmpi3/lib/pkgconfig 
prepend-path    PYTHONPATH /usr/lib64/python2.7/site-packages/openmpi3 
prepend-path    MANPATH /usr/share/man/openmpi3-x86_64 
setenv    MPI_BIN /usr/lib64/openmpi3/bin 
setenv    MPI_SYSCONFIG /etc/openmpi3-x86_64 
setenv    MPI_FORTRAN_MOD_DIR /usr/lib64/gfortran/modules/openmpi3 
setenv    MPI_INCLUDE /usr/include/openmpi3-x86_64 
setenv    MPI_LIB /usr/lib64/openmpi3/lib 
setenv    MPI_MAN /usr/share/man/openmpi3-x86_64 
setenv    MPI_PYTHON_SITEARCH /usr/lib64/python2.7/site-packages/openmpi3 
setenv    MPI_PYTHON2_SITEARCH /usr/lib64/python2.7/site-packages/openmpi3 
setenv    MPI_COMPILER openmpi3-x86_64 
setenv    MPI_SUFFIX _openmpi3 
setenv    MPI_HOME /usr/lib64/openmpi3

 


5、测试

加载MPICH

# module avail
# module load mpi/mpich-3.2
# which mpirun
显示如下/usr/lib64/mpich-3.2/bin/mpirun

 

加载OpenMPI

# module switch mpi/mpich-3.2 mpi/openmpi-3.1.3
# which mpirun
显示如下
/usr/lib64/openmpi3/bin/mpirun

 

显示如下
 

推荐阅读