加载中...

OpenMP(Open Multi-Processing)是共享内存并行编程的行业标准,1997 年发布首版,由 OpenMP 体系结构评审委员会维护。它通过编译指导语句(如 C/C++ 中的 #pragma omp)、运行时库和环境变量,让开发者以增量方式为串行代码添加并行性。
典型用法是在循环前加一行 #pragma omp parallel for,编译器即自动把迭代分配给多个线程执行。标准还提供任务并行(task)、归约(reduction)、原子操作、线程亲和性控制等机制;4.0 之后加入 target 指令,支持把计算卸载到 GPU 等加速器。
优点是侵入性小、可保持串行语义、学习成本低,GCC、Clang、Intel 等主流编译器均内置支持;局限是抽象层次较高,细粒度性能控制不如手写线程或 CUDA,GPU 卸载功能的成熟度也因编译器而异。
科学计算与工程仿真中,OpenMP 常与 MPI 组成「MPI + OpenMP」混合模型:节点间用 MPI,节点内用 OpenMP,是超算应用的经典结构。

登录 后参与讨论
暂无讨论,来发表第一条评论吧