多核软件开发技术北大讲义

多核软件开发技术北大讲义

ID:39473270

大小:599.00 KB

页数:37页

时间:2019-07-04

多核软件开发技术北大讲义_第1页
多核软件开发技术北大讲义_第2页
多核软件开发技术北大讲义_第3页
多核软件开发技术北大讲义_第4页
多核软件开发技术北大讲义_第5页
资源描述:

《多核软件开发技术北大讲义》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、多核软件开发技术第六讲:OpenMP多线程编程及性能优化北京大学二零零八年春季*致谢:感谢Intel对本课程项目的资助本讲主要内容OpenMP编程简介OpenMP多线程应用程序编程技术OpenMP多线程应用程序性能分析OpenMP编程简介OpenMP多线程编程发展概况OpenMP是一种面向共享内存以及分布式共享内存的多处理器多线程并行编程语言OpenMP是一种能够被用于显示指导多线程、共享内存并行的应用程序编程接口(API)OpenMP具有良好的可移植性支持多种编程语言支持多种平台OpenMP多线程编程基础

2、OpenMP的编程模型以线程为基础通过编译指导语句来显示地指导并行化OpenMP的执行模型采用Fork-Join的形式在开始时,只有一个叫做主线程的运行线程存在在运行过程中,当遇到需要进行并行计算的时候,派生出(Fork)线程来执行并行任务在并行代码结束执行,派生线程退出或挂起,控制流程回到单独的主线程中(Join)MasterThreadParallelRegionNestedParallelRegionOpenMP应用程序运行时的Fork-Join模型编译指导语句在编译器编译程序的时候,会识别特定的注释

3、,而这些注释就包含着OpenMP程序的一些语义在一个无法识别OpenMP语意的普通编译器中,这些注释会被当作普通的注释而被忽略在C/C++程序中,OpenMP所有编译指导语句以#pragmaomp开始,后面跟具体功能指令运行时库函数OpenMP运行时函数库主要用以设置和获取执行环境相关的信息它们当中也包含一系列用以同步的API编译指导语句运行时函数库环境变量使用VS2005编写OpenMP程序当前的VisualStudio.Net2005完全支持OpenMP2.0标准通过新的编译器选项/openmp来支持O

4、penMP程序的编译和链接建立一个新的项目配置项目属性设置环境变量OpenMP多线程应用程序编程技术循环并行化循环并行化是使用OpenMP来并行化程序的最重要的部分在C/C++语言中,循环并行化语句的编译指导语句格式如下:#pragmaompparallelfor[clause[clause…]]for(index=first;test_expr;increment_expr){bodyoftheloop;}循环并行化语句的限制并不是所有的循环语句都能够在其前面加上#pragmaompparallel来实现

5、并行化并行化的语句必须是for循环语句并具有规范格式能够推测出循环的次数for(index=start;index

6、(copyin)子句循环嵌套可以将嵌套循环的任意一个循环体进行并行化循环并行化编译指导语句可以加在任意一个循环之前对应的最近的循环语句被并行化,其它部分保持不变控制数据的共享属性OpenMP程序在同一个共享内存空间上执行可以任意使用这个共享内存空间上的变量进行线程间的数据传递OpenMP还允许线程保留自己的私有变量不能让其它线程访问到使用作用域子句的一些规则作用域子句作用的变量是已经申明的有名变量作用域子句在作用到类或者结构的时候,只能作用到类或者结构的整体,而不能只作用域类或者结构的一个部分一个编译指导语

7、句能够包含多个数据作用域子句作用域子句只能作用在出现在编译指导语句起作用的语句变量部分规约操作的并行化在规约操作中,会反复将一个二元运算符应用在一个变量和另外一个值上,并把结果保存在原变量中在使用规约操作时,只需在变量前指明规约操作的类型以及规约的变量#pragmaompparallelforprivate(arx,ary,n)reduction(+:a,b)for(i=0;i

8、nMP的C/C++语言中出现的规约操作运算符数据类型默认初始值+整数,浮点0*整数,浮点1-整数,浮点0&整数所有位都开启,~0

9、整数0^整数0&&整数1

10、

11、整数0数据相关性与并行化操作并不是所有的循环都能够使用#pragmaompparallelfor来进行并行化必须要保证数据两次循环之间不存在数据相关性数据相关性又被称为数据竞争(DataRace)当两个线程对同一个变量进行操作,并且有一个操作为写操作的时候,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。