本站使用了 Pjax 等基于 JavaScript 的开发技术,但您的浏览器已禁用 JavaScript,请开启 JavaScript 以保证网站正常显示!

学习openmp-cmake配置

cmake引入openmp

cmake引入openmp的方式非常简单,遵循以下步骤即可:

1 cmake find_package查找openmp

使用cmake中find_package指令查找openmp,格式如下

#.. cmake other message
find_package(OpenMP REQUIRED)

#... cmake other message

2 cmake target_link_libraries链接openmp

与常见链接第三方库一样,使用target_link_libraries指令将openmp链接到具体项目,格式如下:


# 在链接之前先判断是否已经搜索到openmp
if(OpenMP_FOUND)
    target_link_libraries(${you_executable_name} OpenMP::OpenMP_CXX)
else()
    message(FATAL_ERROR "openmp not found!")
endif()

3 代码中引入

在需要openmp并行优化的代码文件中包含openmp头文件,例子如下:

#include <omp.h>
#include <iostream>

int main(int argc, char** argv)
{
   std::cout<< "lean openmp: cmake import openmp example.\n";
#pragma omp parallel for
   for(int i = 0; i < 10; ++i)
   {
       std::cout<<"i = "<< i << std::endl;
   }
   return 0;
}>

执行上面程序可能的结果:

lean openmp: cmake import openmp example.
i = i = i = i = i = i = i = i = 1639

5

2
i = 7
0
8

i = 4

可看到,for循环是并行执行输出的结果。

本文练习代码已上传至github:https://github.com/mangosroom/learn-openmp/tree/main/cmake_example


本文由芒果浩明发布,转载请注明出处。
本文链接:https://mangoroom.cn/parallel-programming/learn-openmp-cmake-import-openmp.html


 继续浏览关于 c++cmakeopenmpparallel 的文章

 本文最后更新于:2021/12/04 15:08:43,可能因经年累月而与现状有所差异

 引用转载请注明:芒果的博客 > 并行编程 > 学习openmp-cmake配置