使用外部 MPI 接口安装 spack 包
Insalling spack package with external MPI interface
我正在尝试在集群中安装一个 spack 包,如果我使用
spack install namd
Spack 下载并安装自己的 MPI 接口。由于它是一个集群,我想利用本机 MPI 接口,该接口由管理员进行个性化设置,以便在特定计算机上快速工作。如何告诉 spack 使用已经安装的 MPI 接口(即 openmpi 或 mpich)?
顺便说一句,我对 spack 很陌生。谢谢!
好的,我已经通过从 spack web 上阅读这个 page 弄明白了。我需要使用 spack config edit packages
创建一个配置文件并添加类似
的内容
packages:
openmpi:
buildable: False
modules:
openmpi@3.1.3%gcc@8.2.0 arch=linux-x86_64-centos7: /opt/modules/mpi/gcc/8/openmpi/3.1.3
all:
compiler: [gcc@8.2.0]
providers:
mpi: [openmpi@3.1.3]
实际上,我需要先加载 /opt/modules/compiladores/gcc/8
以使 /opt/modules/mpi/gcc/8/openmpi/3.1.3
可见,所以我需要
packages:
openmpi:
buildable: False
modules:
openmpi@3.1.3%gcc@8.2.0 arch=linux-x86_64-centos7:
- /opt/modules/compiladores/gcc/8
- /opt/modules/mpi/gcc/8/openmpi/3.1.3
但这不起作用,因为它需要多个外部模块并且不可能指定多个(参见 here)。
此外,spack 不使用外部模块,它通过复制和解析创建了一个内部模块。它将忽略可能重要的原始外部模块中的模块依赖项或环境变量。 modules.yaml
还需要正确配置以设置或添加此环境变量。
我正在尝试在集群中安装一个 spack 包,如果我使用
spack install namd
Spack 下载并安装自己的 MPI 接口。由于它是一个集群,我想利用本机 MPI 接口,该接口由管理员进行个性化设置,以便在特定计算机上快速工作。如何告诉 spack 使用已经安装的 MPI 接口(即 openmpi 或 mpich)?
顺便说一句,我对 spack 很陌生。谢谢!
好的,我已经通过从 spack web 上阅读这个 page 弄明白了。我需要使用 spack config edit packages
创建一个配置文件并添加类似
packages:
openmpi:
buildable: False
modules:
openmpi@3.1.3%gcc@8.2.0 arch=linux-x86_64-centos7: /opt/modules/mpi/gcc/8/openmpi/3.1.3
all:
compiler: [gcc@8.2.0]
providers:
mpi: [openmpi@3.1.3]
实际上,我需要先加载 /opt/modules/compiladores/gcc/8
以使 /opt/modules/mpi/gcc/8/openmpi/3.1.3
可见,所以我需要
packages:
openmpi:
buildable: False
modules:
openmpi@3.1.3%gcc@8.2.0 arch=linux-x86_64-centos7:
- /opt/modules/compiladores/gcc/8
- /opt/modules/mpi/gcc/8/openmpi/3.1.3
但这不起作用,因为它需要多个外部模块并且不可能指定多个(参见 here)。
此外,spack 不使用外部模块,它通过复制和解析创建了一个内部模块。它将忽略可能重要的原始外部模块中的模块依赖项或环境变量。 modules.yaml
还需要正确配置以设置或添加此环境变量。