- 3
- 0
- 约3.07万字
- 约 42页
- 2017-08-20 发布于浙江
- 举报
OpenMP 编程基础的
OpenMP 编程基础
2014-04-03 11:25:49|??分类:?并行计算|举报|字号?订阅
??????? 可以说 OpenMP 制导指令将 C 语言扩展为一个并行语言,但 OpenMP 本身不是一种独立的并行语言,而是为多处理器上编写并行程序而设计的、指导共享内存、多线程并行的编译制导指令和应用程序编程接口(API),可在 C/C++和 Fortran(77、90 和 95)中应用,并在串行代码中以编译器可识别的注释形式出现。OpenMP 标准是由一些具有国际影响力的软件和硬件厂商共同定义和提出,是一种在共享存储体系结构的可移植编程模型,广泛应用于 Unix、Linux、 Windows 等多种平台上。
本章讲述与 C 语言绑定的 OpenMP1并行程序设计的基础知识,包括 OpenMP 基本要素、 编译制导指令(Compiler Directive)、运行库函数(Runtime Library)和环境变量(Environment Variables)。
?
2.1?? OpenMP 基本概念
?
首先来了解 OpenMP 的执行模式和三大要素。
?
2.1.1???? 执行模式
?
OpenMP 的执行模型采用 fork-join 的形式,其中 fork 创建新线程或者唤醒已有线程;join 即多线程的会合。fork-join 执行模型在刚开始执行的时候,只有一个称为“主线程”的运行线 程存在。主线程在运行过程中,当遇到需要进行并行计算的时候,派生出线程来执行并行任务。 在并行执行的时候,主线程和派生线程共同工作。在并行代码执行结束后,派生线程退出或者阻塞,不再工作,控制流程回到单独的主线程中。??
OpenMP 的编程者需要在可并行工作的代码部分用制导指令向编译器指出其并行属性,而且这些并行区域可以出现嵌套的情况,如图 2.1 所示。下面对术语并行域(Paralle region)作如下定义:在成对的 fork 和 join 之间的区域,称为并行域,它既表示代码也表示执行时间区间。对 OpenMP 线程作如下定义:在 OpenMP 程序中用于完成计算任务的一个执行流的执行实体,可以是操作系统的线程也可以是操作系统上的进程。
?
2.1.2???? OpenMP 编程要素
?
OpenMP 编程模型以线程为基础,通过编译制导指令来显式地指导并行化,OpenMP 为编 程人员提供了三种编程要素来实现对并行化的完善控制。它们是编译制导、API 函数集和环境 变量。
?
编译制导
在 C/C++程序中,OpenMP 的所有编译制导指令是以#pragma omp 开始,后面跟具体的功能指令(或命令),其具有如下形式:
#pragma omp? 指令 [子句[,? 子句]? ?]
支持 OpenMP 的编译器能识别、处理这些制导指令并实现其功能。其中指令或命令是可
以单独出现的,而子句则必须出现在制导指令之后。制导指令和子句按照功能可以大体上分成四类:
1)并行域控制类;
2)任务分担类;
3)同步控制类;
4)数据环境类。
并行域控制类指令用于指示编译器产生多个线程以并发执行任务,任务分担类指令指示编译器如何给各个并发线程分发任务,同步控制类指令指示编译器协调并发线程之间的时序约束关系,数据环境类指令处理并行域内外的变量共享或私有属性以及边界上的数据传送操作等。
下面简单地介绍一下制导指令和相关的子句,现在不必完全弄懂它们的作用,只需大概了解即可,后面还将有详细的使用说明。此处的内容可以作为学习过程中的速查表。
1)版本为 2.5 的 OpenMP 规范中的指令有以下这些:
?parallel:用在一个结构块之前,表示这段代码将被多个线程并行执行;
for:用于 for 循环语句之前,表示将循环计算任务分配到多个线程中并行执行,以实现任务分担,必须由编程人员自己保证每次循环之间无数据相关性;
parallel? for:parallel? 和 for 指令的结合,也是用在 for 循环语句之前,表示 for循环体的代码将被多个线程并行执行,它同时具有并行域的产生和任务分担两个功能;
sections:用在可被并行执行的代码段之前,用于实现多个结构块语句的任务分担,可并行执行的代码段各自用 section 指令标出(注意区分 sections 和 section);
parallel sections:parallel 和 sections 两个语句的结合,类似于 parallel for;
single:用在并行域内,表示一段只被单个线程执行的代码;
critical:用在一段代码临界区之前,保证每次只有一个 OpenMP 线程进入;
?flush:保证各个 OpenMP 线程的数据映像的一致性;
barrier:
您可能关注的文档
最近下载
- TW-2型驼峰自动化系统培训课件.ppt VIP
- 九宫格数独题64道(入门级数独练习,初级简单).pdf VIP
- 林草行政执法培训课件.pptx VIP
- 陈春花管理学著作精华解读全集《管理地常识》《领先之道》等10本书.docx
- 1TW-2型驼峰控制系统 .pptx VIP
- 外科学(总论) 输血的基本要求、输血 输血.ppt VIP
- 燃气调压站设备设施风险分级管控清单.pdf VIP
- 浅析石油化工工程造价管理要点及优化策略.docx VIP
- 高频精选:中国交建招聘面试题及答案.doc VIP
- 2025年高考作文素材积累之 “人工智能”金句+标题+角度+人民日报时评+语段+范文.docx VIP
原创力文档

文档评论(0)