[C++] CMake 使用 OpenMP 并行加速 - II.在 CMake 项目中使用 OpenMP
最编程
2024-10-08 11:27:29
...
1. 在CMakeLists.txt中添加OpenMP库
CMakeLists.txt
代码:
cmake_minimum_required(VERSION 3.10)
set(CMAKE_CXX_STANDARD 14)
project(learn_openmp)
include_directories(include)
# 搜索 OpenMP 库
find_package(OpenMP REQUIRED)
file(GLOB project_file main.cpp)
add_executable(${PROJECT_NAME} ${project_file})
# 链接 OpenMP 库
if(OpenMP_CXX_FOUND)
target_link_libraries(${PROJECT_NAME} PUBLIC OpenMP::OpenMP_CXX)
endif()
main.cpp
代码:
#include <omp.h>
#include <iostream>
int main()
{
// 设置使用的 线程数
omp_set_num_threads(8);
#pragma omp parallel // 构造一个并行块
{
int thread_id = omp_get_thread_num(); // 获取当前线程id
std::cout << "Hello from thread " << thread_id << std::endl;
}
return 0;
}
可能的运行结果:
Hello from thread Hello from thread Hello from thread Hello from thread 235
Hello from thread
Hello from thread 0
4
Hello from thread 7
Hello from thread 1
6