Modules管理環境變數
阿新 • • 發佈:2020-08-22
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 # 列出所有軟體環境 # moduleswitch 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
顯示如下