什么是 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 官方文档 深入学习语法规范。

扩展学习

OpenMP_logo
Parallel_Computing