1、国家高性能计算中心(合肥)第十三章 共享存储系统编程国家高性能计算中心(合肥)共享存储系统编程国家高性能计算中心(合肥)编程标准的作用编程标准的作用国家高性能计算中心(合肥)ANSI X3H5共享存储器模型国家高性能计算中心(合肥)国家高性能计算中心(合肥)X3H5:并行性构造国家高性能计算中心(合肥)线程隐式路障同步PQRABCEF(1:2)GHGGF(3:4)F(5:6)DBB隐式路障同步隐式路障同步无隐式路障同步隐式路障同步国家高性能计算中心(合肥)共享存储系统编程国家高性能计算中心(合肥)POSIX线程模型国家高性能计算中心(合肥)What Are Threads?Shared sta
2、te(memory,files,etc.)Threads国家高性能计算中心(合肥)国家高性能计算中心(合肥)POSIX Threads:Basics and Examples by Uday Kamathhttp:/www.coe.uncc.edu/abw/parallel/pthreads/pthreads.htmlPOSIX 线程详解线程详解:一种支持内存共一种支持内存共享的简单和快捷的工具享的简单和快捷的工具by Daniel Robbinshttp:/ 的实例的实例 1 1国家高性能计算中心(合肥)PthreadsPthreads实现计算实现计算 的实例的实例 2 2国家高性能计算中心
3、(合肥)对生产者驱动的有界缓冲区问题的对生产者驱动的有界缓冲区问题的Pthread条件变量解条件变量解国家高性能计算中心(合肥)共享存储系统编程国家高性能计算中心(合肥)OpenMP标准国家高性能计算中心(合肥)The History of OpenMP国家高性能计算中心(合肥)The History of OpenMP(cont.)国家高性能计算中心(合肥)为什么要建立新标准为什么要建立新标准?国家高性能计算中心(合肥)In a Nutshell国家高性能计算中心(合肥)OpenMPOpenMP是什么?是什么?国家高性能计算中心(合肥)国家高性能计算中心(合肥)OpenMPOpenMP当前的
4、状况当前的状况国家高性能计算中心(合肥)国家高性能计算中心(合肥)SPMDSPMD的程序执行模型的程序执行模型 P0 P1 P2 .Pn国家高性能计算中心(合肥)SMPSMP的程序执行模型的程序执行模型 P0 P1 P2 .Pn国家高性能计算中心(合肥)OpenMPOpenMP的程序执行模型的程序执行模型 P0 P1 P2 .Pn国家高性能计算中心(合肥)Parallel and work sharing directivesdata environment directivessynchronization directives国家高性能计算中心(合肥)编译编译制导语句制导语句(1)(1)国
5、家高性能计算中心(合肥)Parallel Region:parallel,end parallelWork Sharing:do,sections,single(parallel do,nowait)Fork-Join model of parallel execution(static,dynamic,orphaned)Parallel Region and Work Sharing Directives国家高性能计算中心(合肥)编译编译制导语句制导语句(2)(2)国家高性能计算中心(合肥)DO编译编译制导语句制导语句国家高性能计算中心(合肥)SECTIONS SECTIONS 编译编译制导
6、语句制导语句国家高性能计算中心(合肥)编译编译制导语句制导语句(3)(3)国家高性能计算中心(合肥)Data Scope attribute clauses:Private,Shared,Default,Firstprivate,Lastprivate,Reduction and Copyin/Copyout(value undefined entering/exiting parallel region)Threadprivate directives:Private to a thread but global within the thread(SMP)Fortran:COMMON bl
7、ocks/C:file scope and static variablesData Environment Directives国家高性能计算中心(合肥)编译编译制导语句制导语句(4)(4)国家高性能计算中心(合肥)例子例子(ORDERED)(ORDERED)国家高性能计算中心(合肥)Synchronization Directivesmaster,barrier,critical,atomic,flush,ordered国家高性能计算中心(合肥)OpenMPOpenMP的的OrphanOrphan新特性新特性 1 1国家高性能计算中心(合肥)OpenMP的的Orphan特性特性 2 2国家高性能计算中心(合肥)运行库函数运行库函数(1)(1)国家高性能计算中心(合肥)运行库函数运行库函数(2)(2)国家高性能计算中心(合肥)OpenMP计算计算 的实例的实例国家高性能计算中心(合肥)MPI计算计算 的实例的实例国家高性能计算中心(合肥)OpenMPOpenMP与其他标准的比较与其他标准的比较国家高性能计算中心(合肥)OpenMPOpenMP的优点与缺点的优点与缺点