发现对于简单的for循环,OpenMP简直是一大加速利器,两行代码就搞定
代码:
#include <omp.h>// 所需头文件
#include <stdio.h>
int main() {
int N = 1000000;
double sum = 0.0;
// 重点是这里,设置并行的线程数以及使用OpenMP对for循环加速
omp_set_num_threads(4);
#pragma omp parallel for
for (int i = 0; i < N; i++) {
sum += i;
}
printf("Sum: %f\n", sum);
return 0;
}
CMakeLists.txt文件
cmake_minimum_required(VERSION 3.10)
project(openmp_example)
set(CMAKE_CXX_STANDARD 11)
find_package(OpenMP REQUIRED)
add_executable(example main.cpp)
target_link_libraries(example OpenMP::OpenMP_CXX)