gpt4 book ai didi

makefile - 为 Makefile 或 cmake 发现 MPI api 的版本

转载 作者:行者123 更新时间:2023-12-02 05:40:01 24 4
gpt4 key购买 nike

我的代码有一些 mpi api 相关位:

#if MPIVERSION==1
...
#elif MPIVERSION==2
...
#endif

在假定 MPI-1 和 MPI-2 之间切换。

是否有一种好的方法来推断一个好的版本——尤其是一个可能进入构建系统的版本?

谢谢!

最佳答案

执行 configure 脚本通常执行的操作 - 尝试编译并运行一个非常简单的测试 MPI 代码,其中包含:

#include <stdio.h>
#include <mpi.h>

int main (void)
{
int version, subversion;
MPI_Get_version(&version, &subversion);
printf("%d.%d\n", version, subversion);
return 0;
}

使用 mpicc(或指定的任何编译器)编译此代码并在代码配置期间运行它(直接而不是通过 mpirun),您将:

  • 知道 MPI 编译器包装器确实有效
  • 获取受支持的 MPI 标准主要和次要版本

您可以对 Fortran 项目执行相同的操作。

您也可以尝试直接解析 mpi.h 并搜索 MPI_VERSIONMPI_SUBVERSION 但您可能会遇到一些不可移植的问题.此外,这些宏旨在用于 C/C++ 代码内的条件编译。

关于makefile - 为 Makefile 或 cmake 发现 MPI api 的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11129800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com