使用外部 MPI 接口安装 spack 包

Posted

技术标签:

【中文标题】使用外部 MPI 接口安装 spack 包【英文标题】:Insalling spack package with external MPI interface 【发布时间】:2019-07-18 23:32:48 【问题描述】:

我正在尝试在集群中安装一个 spack 包,如果我使用

spack install namd

Spack 下载并安装它自己的 MPI 接口。由于它是一个集群,我想利用本地 MPI 接口,由管理员个性化以在特定计算机上快速工作。如何告诉 spack 使用已安装的 MPI 接口(即 openmpi 或 mpich)?

顺便说一句,我对 spack 很陌生。谢谢!

【问题讨论】:

【参考方案1】:

好的,我已经通过阅读来自 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 还需要正确配置以设置或预先添加此环境变量。

【讨论】:

以上是关于使用外部 MPI 接口安装 spack 包的主要内容,如果未能解决你的问题,请参考以下文章

Spack - 自动化安装管理器

spack - 无法下载的包怎么办?

MPICH配置安装与入门

linux mpi.h一般在哪

rocky Elasticsearch 8.7.1集群 x-spack 安全验证 及 集群内部TLS加密传输 (ca)

为 Open MPI 构建 Java 接口