首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Linux上检查OpenMP的版本

如何在Linux上检查OpenMP的版本
EN

Stack Overflow用户
提问于 2009-08-20 06:44:29
回答 6查看 69.7K关注 0票数 50

我想知道如何在Linux远程机器上检查OpenMP的版本?

我也不知道它安装在哪里。

EN

回答 6

Stack Overflow用户

发布于 2012-11-29 03:05:14

OpenMP的C/C++规范似乎没有提供以编程方式完成此操作的直接方法。所以你必须检查你的编译器版本的文档。

代码语言:javascript
复制
gcc --version ## get compiler version

对于GCC来说,这是一个很好的资源(不提最新版本的GCC):http://gcc.gnu.org/wiki/openmp

从GCC 4.2开始,编译器实现了OpenMP标准的2.5版,从4.4开始,它实现了OpenMP标准的3.0版。从GCC 4.7开始支持OpenMP 3.1。

编辑

在更努力地尝试之后,我获得了以下内容。它至少给出了OpenMP版本的指示--尽管它仍然需要您查找一些东西。

代码语言:javascript
复制
$ echo |cpp -fopenmp -dM |grep -i open
#define _OPENMP 200805

您可以转到此处(http://www.openmp.org/specifications/)查找所提供的日期和实际OpenMP版本号之间的映射。

在支持预处理器的实现中,_OPENMP宏名被定义为具有十进制值yyyymm,其中yyyy和mm是该实现所支持的OpenMP 版本的年和月标识。

票数 68
EN

Stack Overflow用户

发布于 2015-12-17 05:55:35

下面是一个显示您的OpenMP版本的简短C++11程序;它还涵盖了2020年11月发布的Version5.1。

代码语言:javascript
复制
#include <unordered_map>
#include <iostream>
#include <omp.h>

int main(int argc, char *argv[])
{
  std::unordered_map<unsigned,std::string> map{
    {200505,"2.5"},{200805,"3.0"},{201107,"3.1"},{201307,"4.0"},{201511,"4.5"},{201811,"5.0"},{202011,"5.1"}};
  std::cout << "We have OpenMP " << map.at(_OPENMP) << ".\n";
  return 0;
}

并使用以下命令进行编译:

代码语言:javascript
复制
g++ -std=c++11 -fopenmp foobar.cpp
票数 26
EN

Stack Overflow用户

发布于 2017-10-27 19:23:45

您需要使用以下命令检查gcc版本

代码语言:javascript
复制
gcc --version

然后查看下面的(不完整的)表格(其信息来自this Wiki article和来自OpenMP官方网站的this webpage ):

代码语言:javascript
复制
| gcc version | OpenMP version |    Languages    | Offloading |
|-------------|----------------|-----------------|------------|
|    4.2.0    |       2.5      |        C        |            |
|    4.4.0    |       3.0      |        C        |            |
|    4.7.0    |       3.1      |        C        |            |
|    4.9.0    |       4.0      |      C, C++     |            |
|    4.9.1    |       4.0      | C, C++, Fortran |            |
|      5      |                |                 |     Yes    |
|     6.1     |       4.5      |      C, C++     |            |

空白条目在那里是因为我没有找到相应的信息。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1304363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档