设置环境模块

时间:2018-12-07 16:12:36

标签: environment-modules

我最近在Linux Mint 19上安装了environment-modules软件包(版本4.1.1-1),并且我试图弄清楚如何设置不同的环境。不幸的是,docs仅在您还不是主题专家时提供了一些指示,该怎么做(我希望得到一个简单的示例,相反,我发现的只是命令列表)。更具体地说,我有以下情况:

  • 我在/usr/share/modules/中安装了模块。
  • 我已经使用两个不同的编译器(GNU和Intel)编译了OpenMPI。相应的二进制文件,库等分别位于/usr/local/modules/mpi/gnu/usr/local/modules/mpi/intel中。
  • 我想设置两个环境,每个MPI的编译版本一个,以便我可以轻松地在两个环境之间切换(module load mpi/gnumodule load mpi/intel或类似的东西)。

对于这个问题微不足道,或者之前已发布过,我深表歉意。 Modules软件包的名称使得在网络上搜索支持变得异常困难(就像有人在命名他们的产品 Software 一样;很高兴在Google上找到您需要的东西)。非常感谢您的协助。

1 个答案:

答案 0 :(得分:3)

一旦安装了软件,就需要编写模块文件来启用它们。首先定义放置这些模块文件的位置,例如:

mkdir /usr/local/modules/modulefiles

在此目录中,创建子目录,该子目录将代表您要引用模块文件的名称

mkdir -p /usr/local/modules/modulefiles/mpi/gnu
mkdir -p /usr/local/modules/modulefiles/mpi/intel

在这些目录中,创建一个模块文件,该文件以您所安装的软件的版本号命名(例如3.1.3)。如果以后要安装较新版本的软件,使用版本号命名模块文件有助于拥有多个模块文件。

因此,现在,用modulefile syntax创建由mpi/gnu/3.1.3文件表示的模块文件/usr/local/modules/modulefiles/mpi/gnu/3.1.3的内容:

#%Module
conflict     mpi
prepend-path PATH /usr/local/modules/mpi/gnu/bin
prepend-path LD_LIBRARY_PATH /usr/local/modules/mpi/gnu/lib
prepend-path MANPATH /usr/local/modules/mpi/gnu/man

使此内容适应您需要/要设置的环境配置。

mpi/intel/3.1.3中的/usr/local/modules/modulefiles/mpi/intel/3.1.3模块文件重复此步骤。

一旦准备好这些模块文件,就需要将它们放在shell会话中。这可以通过module use命令来完成:

module use /usr/local/modules/modulefiles

从那里,可以在模块目录(module avail)中找到和加载(module load)这2个模块文件。