MPI 是否应使用与应用程序相同的编译器套件构建



我正在开发用于科学计算的MPI应用程序。我正在研究我们的分发过程,它提出了 MPI 版本的问题。

我在网上的一些地方读到MPI应该使用与应用程序相同的编译器套件构建,但没有真正解释原因。

所以我想知道 MPI 版本一旦编译完毕,什么定义?它只是源包的版本,还是源包的版本加上编译器套件及其用于编译 MPI 的版本?

MPI 植入的版本是绝对必须的。一个典型的示例是在版本之间更改的类型。

您还应该使用相同的编译器版本编译所有相关库,尤其是 MPI。一个典型的示例是特定于编译器的库。一个编译器将调用替换为内置的优化版本memcpy。如果您尝试与其他编译器链接,而该编译器在其库中不提供该优化函数,则会出现链接器错误。系统库通常很好,但对于高度优化的构建以及C++代码,这些类型的库 ABI(应用程序二进制接口(不兼容很常见且非常痛苦。

最新更新