是否应使用与应用程序

时间:2018-01-22 14:56:06

标签: parallel-processing compilation mpi

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

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

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

1 个答案:

答案 0 :(得分:0)

MPI植入的版本是绝对必须的。典型示例是版本之间发生变化的类型。

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