1. CMakeLists 增加如下:
find_package(OpenMP REQUIRED)
if(OpenMP_FOUND)
message(STATUS "found openmp")
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS}, ${OPENMP_C_FLAGS})
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}, ${OPENMP_CXX_FLAGS})
else()
message(FATAL_ERROR "openmp not found!")
endif()
2. C++ 代码中增加头文件
#include <omp.h>
3. 调用的地方,增加宏
#pragma omp parallel for
for (int id_y = 0; id_y < num_samples_y; ++id_y)
{
}
4. 其他
如果平台不支持 OpenMP,会自动降级成串行执行;

本文介绍了如何在C++项目中集成OpenMP,通过修改CMakeLists.txt文件来寻找并设置OpenMP标志,然后在代码中引入头文件,并使用OpenMP的pragma指令实现并行循环。当平台不支持OpenMP时,程序将自动降级为串行执行。
1077

被折叠的 条评论
为什么被折叠?



