我想知道如何在Linux远程机器上检查OpenMP的版本?
我也不知道它安装在哪里。
发布于 2012-11-29 03:05:14
OpenMP的C/C++规范似乎没有提供以编程方式完成此操作的直接方法。所以你必须检查你的编译器版本的文档。
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版本的指示--尽管它仍然需要您查找一些东西。
$ echo |cpp -fopenmp -dM |grep -i open
#define _OPENMP 200805您可以转到此处(http://www.openmp.org/specifications/)查找所提供的日期和实际OpenMP版本号之间的映射。
在支持预处理器的实现中,_OPENMP宏名被定义为具有十进制值yyyymm,其中yyyy和mm是该实现所支持的OpenMP 版本的年和月标识。
发布于 2015-12-17 05:55:35
下面是一个显示您的OpenMP版本的简短C++11程序;它还涵盖了2020年11月发布的Version5.1。
#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;
}并使用以下命令进行编译:
g++ -std=c++11 -fopenmp foobar.cpp发布于 2017-10-27 19:23:45
您需要使用以下命令检查gcc版本
gcc --version然后查看下面的(不完整的)表格(其信息来自this Wiki article和来自OpenMP官方网站的this webpage ):
| 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++ | |空白条目在那里是因为我没有找到相应的信息。
https://stackoverflow.com/questions/1304363
复制相似问题