多核程序设计课件

多核程序设计课件

ID:16261231

大小:300.00 KB

页数:49页

时间:2018-08-08

多核程序设计课件_第1页
多核程序设计课件_第2页
多核程序设计课件_第3页
多核程序设计课件_第4页
多核程序设计课件_第5页
资源描述:

《多核程序设计课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、多核程序设计第六章OpenMP多线程编程及性能优化2008年8月25日OpenMP编程简介ANSIX3H5的失败促成了OpenMPFrom1996:OpenMPArchitectureReviewBoard(theARB)1997年10月28日,DEC,IBM,Intel,SGI,和Kuch&Associates等公司的代表们决定制定一种适用于多种硬件平台的共享存储编程的新的工业应用标准接着,全球很多的组织和ISV决定支持这一标准,如DOE/ASCI,LivermoreSoftwareTechnologyCorp.,FluentInc.,AbsoftCorp.,AnsysIn

2、c.Etc.目前支持FORTRAN语言,C和C,并建有专门的网址http://www.openmp.org在科研机构中,也引起了足够的重视,被认为是21世纪最受欢迎的并行编程标准OpenMPonNOWs(SC98,Nov.1998)IntegratedOpenMPandMPIonClustersOpenMP1.0forFortran,Nov.1997OpenMP1.0forC/C++,Nov.1998OpenMP3.0http://www.openmp.org一种面向共享内存以及分布式共享内存的多处理器多线程并行编程语言。一种能够被用于显示指导多线程、共享内存并行的应用程序编

3、程接口(API)。OpenMP具有良好的可移植性,支持多种编程语言OpenMP能够支持多种平台,包括大多数的类UNIX系统以及WindowsNT系统(Windows2000,WindowsXP,WindowsVista等)。ANSIX3H5共享存储器模型Startedinthemid-80’swiththeemergenceofsharedmemoryparallelcomputerswithproprietarydirectivedrivenprogrammingenvironments更早的标准化结果—PCF共享存储器并行Fortran1993年制定的概念性编程模型Lan

4、guageBindingCFortran77Fortran90ANSIX3H5共享存储器模型并行块(工作共享构造)并行块(psections...endpsections)并行循环(pdo...Endopdo)单进程(psingle...Endpsingle)可嵌套非共享块重复执行隐式路障(nowait),显式路障和阻挡操作共享/私有变量线程同步门插销(latch):临界区锁:test,lock,unlock事件:wait,post,clear序数(ordinal):顺序X3H5:并行性构造Programmain!程序以顺序模式开始,此时只有一个A!A只由基本线程执行,称为主

5、线程parallel!转换为并行模式,派生出多个子线程(一个组)B!B为每个组员所复制psections!并行块开始sectionC!一个组员执行CsectionD!一个组员执行Dendpsections!等待C和D都结束psingle!暂时转换成顺序模式E!已由一个组员执行endpsingle!转回并行模式pdoi=1,6!pdo构造开始F(i)!组员共享F的六次迭代endpdonowait!无隐式路障同步G!更多的复制代码endparallel!转为顺序模式H!初始化进程单独执行H...!可能有更多的并行构造End线程隐式路障同步PQRABCEF(1:2)GHGGF(3:

6、4)F(5:6)DBB隐式路障同步隐式路障同步无隐式路障同步隐式路障同步X3H5最终还是失败了结果是转向OpenMP标准继承和发展了X3H5标准ANSIX3H5,1994时机不好,分布式机器流行只支持循环级并行性,粒度太细Pthreads(IEEEPosix1003.4a)是为低端(lowend)的共享机器(如SMP)的标准对FORTRAN的支持不够适合任务并行,而不适合数据并行MPI消息传递的编程标准,对程序员要求高HPF主要用于分布式存储机器大量已有的科学应用程序需要很好地被继承和移植OpenMP编程简介—OpenMP多线程编程基础OpenMP的编程模型以线程为基础,通过

7、编译指导语句来显示地指导并行化,为编程人员提供了对并行化的完整的控制。采用Fork-Join的形式MasterThreadParalllRegionNestedParallelRegionOpenMP编程简介—OpenMP多线程编程基础(续)编译指导语句在编译器编译程序的时候,会识别特定的注释,而这些特定的注释就包含着OpenMP程序的一些语义。#pragmaomp[clause[[,]clause]…]其中directive部分就包含了具体的编译指导语句,包括parallel,f

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

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

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