设置环境模块
Setting-up 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/gnu
、module load mpi/intel
或类似的东西)。
如果这个问题很琐碎,或者之前有人提出过,我深表歉意。仅模块包的名称就很难在网上搜索支持(就像有人将他们的产品命名为 Software;祝你在 Google 上找到你需要的东西好运)。非常感谢您的协助。
安装软件后,您需要编写模块文件来启用它们。首先定义放置这些模块文件的位置,例如:
mkdir /usr/local/modules/modulefiles
在此目录中,创建代表您将模块文件引用到的名称的子目录
mkdir -p /usr/local/modules/modulefiles/mpi/gnu
mkdir -p /usr/local/modules/modulefiles/mpi/intel
在这些目录中,创建一个以您所安装软件的版本号命名的模块文件(在您的例子中为 3.1.3
)。使用版本号命名模块文件有助于拥有多个模块文件,以防您以后要安装更新版本的软件。
现在,创建由 /usr/local/modules/modulefiles/mpi/gnu/3.1.3
文件表示的模块文件 mpi/gnu/3.1.3
的内容 modulefile syntax:
#%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
根据您need/you想要设置的环境配置调整此内容。
对 /usr/local/modules/modulefiles/mpi/intel/3.1.3
中的 mpi/intel/3.1.3
模块文件重复此步骤。
准备好这些模块文件后,需要将它们放在 shell 会话中。这可以通过 module use
命令完成:
module use /usr/local/modules/modulefiles
从那里,可以在模块目录 (module avail
) 中找到 2 个模块文件并加载 (module load
)。
我最近在 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/gnu
、module load mpi/intel
或类似的东西)。
如果这个问题很琐碎,或者之前有人提出过,我深表歉意。仅模块包的名称就很难在网上搜索支持(就像有人将他们的产品命名为 Software;祝你在 Google 上找到你需要的东西好运)。非常感谢您的协助。
安装软件后,您需要编写模块文件来启用它们。首先定义放置这些模块文件的位置,例如:
mkdir /usr/local/modules/modulefiles
在此目录中,创建代表您将模块文件引用到的名称的子目录
mkdir -p /usr/local/modules/modulefiles/mpi/gnu
mkdir -p /usr/local/modules/modulefiles/mpi/intel
在这些目录中,创建一个以您所安装软件的版本号命名的模块文件(在您的例子中为 3.1.3
)。使用版本号命名模块文件有助于拥有多个模块文件,以防您以后要安装更新版本的软件。
现在,创建由 /usr/local/modules/modulefiles/mpi/gnu/3.1.3
文件表示的模块文件 mpi/gnu/3.1.3
的内容 modulefile syntax:
#%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
根据您need/you想要设置的环境配置调整此内容。
对 /usr/local/modules/modulefiles/mpi/intel/3.1.3
中的 mpi/intel/3.1.3
模块文件重复此步骤。
准备好这些模块文件后,需要将它们放在 shell 会话中。这可以通过 module use
命令完成:
module use /usr/local/modules/modulefiles
从那里,可以在模块目录 (module avail
) 中找到 2 个模块文件并加载 (module load
)。