我正在尝试在集群中安装一个 spack 包,如果我使用
spack install namd
Spack 下载并安装它自己的 MPI 接口。由于它是一个集群,我想利用本地 MPI 接口,该接口由管理员个性化,以便在特定计算机上快速工作。如何告诉 spack 使用已经安装的 MPI 接口(即 openmpi 或 mpich)?
顺便说一句,我对 spack 很陌生。谢谢!
我正在尝试在集群中安装一个 spack 包,如果我使用
spack install namd
Spack 下载并安装它自己的 MPI 接口。由于它是一个集群,我想利用本地 MPI 接口,该接口由管理员个性化,以便在特定计算机上快速工作。如何告诉 spack 使用已经安装的 MPI 接口(即 openmpi 或 mpich)?
顺便说一句,我对 spack 很陌生。谢谢!
好的,我已经通过阅读spack web上的这个页面弄清楚了。我需要创建一个配置文件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
但这不起作用,因为它需要多个外部模块并且不能指定多个(参见此处)。
此外,spack 不使用外部模块,它通过应对和解析创建一个内部模块。它将忽略可能很重要的原始外部模块中的模块依赖关系或环境变量。modules.yaml
还需要正确配置以设置或添加此环境变量。