用mingw编译MPI

Compiling MPI with mingw

我似乎没有在这方面找到任何东西,或者很像这个。我有我们想要使用 windows 的代码,所以我一直在使用 mingw 并努力修改代码以便编译。但是,我运行出了大问题。问题完全出在 Microsoft MPI 上。我们的代码包括并使用 MPI 作为并行化代码。当 mingw 编译器到达 mpi 部分时,它尝试编译 mpi.h 并立即失败,因为头文件中没有声明像(MPI_Offset 和 MPI_Count)这样的开销(IIRC ,它们通常在编译时由 mpicc 或其他任何东西完成,但 MS-MPI 不会那样做,不确定它是如何做的),它会出现一堆 "has not been declared" 错误。我怎样才能解决这个问题?我真的不知道 MS-MPI 是如何工作的,我发现的 Microsoft 资源也无济于事。我一直看到有关跨平台 mingw 编译器的信息,但我不确定那是什么或我将如何使用它。我几乎没有编译 visual studio 之外的东西的经验,而且我才刚刚开始熟悉 mingw。即使是关于在哪里查看的指示也会受到赞赏。

有趣的是,将#include 添加到 MS-MPI 的顶部 mpi.h 起作用了。

你可以试试mpich2。 mpich2-v1.4.1p1 是最后一个正式支持 windows 的版本。它还支持 MinGW 和 gfortran。

如 mpich2 网站所述,msmpi 只是 mpich2 版本 1 的一个分支。