我正在使用 C++ MPI 代码,当使用 openMPI 编译时,使用英特尔 MPI 需要 1 分 12 秒和 16 秒(我也在其他输入上对其进行了测试,差异相似。两个编译代码都给出了正确的答案)。我想了解为什么运行时间会有如此大的差异。以及如何使用 openMPI (GCC) 减少运行时间。
我正在使用带有 Intel Haswell 处理器的 CentOS 6 操作系统。我正在使用以下标志进行编译。
openMPI (GCC): mpiCC -Wall -O3
我也试过 -march=native -funroll-loops。这并没有太大的不同。我也尝试过 -lm 选项。我无法编译 32 位。
英特尔 MPI:mpiicpc -Wall -O3 -xhost
-xhost saves 3 seconds in run time.