如何正确升级OpenMP版本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何正确升级OpenMP版本?相关的知识,希望对你有一定的参考价值。

我试图通过Amazon EC2在一些虚拟机上部署一个OpenMPI项目。每个虚拟机都在运行Ubuntu 16.04,目前我有。gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609 和相对的 mpich.

我在Ubuntu 18.04上正确地测试了我的项目,使用了 gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0. 基本上,我使用OpenMP数组还原与自定义还原操作符,据我所知,这是从OpenMP 4.5开始可用的。这确实是个问题,因为在我的虚拟机上我得到了以下错误。error: ‘array1_test’ has invalid type for ‘reduction’.

我想我简单的升级就可以了 (此后),但在那之后,MPI却在抱怨与 Please use the same version of GCC and g++ for compiling MPICH and user MPI programs. 我试着重新安装mpich,但没有成功。

我使用cmake来编译。连接MPI的过程如下。

link_libraries(${MPI_CXX_LIBRARIES})
if(MPI_CXX_COMPILE_FLAGS)
  set_property(GLOBAL PROPERTY COMPILE_FLAGS "${MPI_CXX_COMPILE_FLAGS}")
endif()
if(MPI_CXX_LINK_FLAGS)
set_property(GLOBAL PROPERTY LINK_FLAGS "${MPI_CXX_LINK_FLAGS}")
endif()

我做错了什么,如何才能在不破坏MPI配置的情况下正确升级OpenMP?

答案

所以对于遇到我的问题的人来说,我已经按照@Jérôme Richard的建议解决了从源码MPICH构建的问题。

1) 我已经安装了一个较新版本的 gcc 为了让我的项目有一个兼容的OpenMP标准(例如4.5),并解决了以下问题 error: ‘array1_test’ has invalid type for ‘reduction’ 的问题。

2) 我已经从MPICH网站下载了源文件(下载区).

3) 按照他们的安装指南,我已经成功安装了 mpich 编译 gcc 7.4.0 以解 Please use the same version of GCC and g++ for compiling MPICH and user MPI programs 的问题。

请注意,我需要坚持使用Ubuntu 16.04。所有这些麻烦都可以通过使用较新的Ubuntu版本(例如>=18.04)来跳过。

以上是关于如何正确升级OpenMP版本?的主要内容,如果未能解决你的问题,请参考以下文章

OpenMP 并行代码运行速度较慢

openmp递归任务示例比顺序慢

OpenMP 没有给出正确的结果和不同的时间

如何正确地将多个片段添加到片段过渡?

如何正确将 angular 2 (npm) 升级到最新版本?

OpenMP 并行代码与串行代码的输出不同