什么是 OpenMP?
OpenMP(Open Multi-Processing)是一种用于共享内存并行编程的 API,支持多线程和分布式内存架构。它通过简单的注解(directives)实现多核 CPU 的并行计算,广泛应用于科学计算和高性能领域。
核心概念一览
- 线程管理:使用
#pragma omp parallel
创建线程池 - 并行区域:通过
#pragma omp sections
分割任务 - 同步机制:
#pragma omp barrier
实现线程同步 - 负载均衡:
#pragma omp for
自动分配迭代 - 性能优化:结合
omp_get_num_threads()
动态调整线程数
实战示例
#include <omp.h>
#include <stdio.h>
int main() {
#pragma omp parallel num_threads(4)
{
int thread_id = omp_get_thread_num();
printf("线程 %d 正在运行 🧠\n", thread_id);
}
return 0;
}
该代码在 4 核 CPU 上运行时,会输出 4 条线程信息。点击 OpenMP 官方文档 深入学习语法规范。