欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

[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