中国料学火计算机科学与波术系 niversity of Science and Technology of China DEAT三 NT OF C口 MPUTER SCIENGE AND TECHNOLOr 第十三章共享存储系统編程 国家高性能计算中心(合肥
国家高性能计算中心(合肥) 第十三章 共享存储系统编程
中国料学火计算机科学与波术系 niversity of Science and Technolo ogy of China DEAT三 NT OF C口 MPUTER SCIENGE AND TECHNOLOr 共享存储系统綸程 13.1 ANSI X3H5共享存储模型 132 POSIX线程模型 133 OpenMP模型 国家高性能计算中心(合肥
国家高性能计算中心(合肥) 共享存储系统编程 ▪ 13.1 ANSI X3H5共享存储模型 ▪ 13.2 POSIX 线程模型 ▪ 13.3 OpenMP模型
中国料学火计算机科学与波术系 niversity of Science and Technolo ogy of China DEAT三 NT OF C口 MPUTER SCIENGE AND TECHNOLOr 编程标准的作用 规定程序的执行模型 sPMD,SMP等 如何表达并行性 DOACROSS. FORALL PARALLEL, INDEPENDENT 如何表达同步 Lock, Barrier Semaphore, Condition Variables 如何获得运行时的环境变量 threadid num of processes 国家高性能计算中心(合肥
国家高性能计算中心(合肥) 编程标准的作用 ▪ 规定程序的执行模型 ▪ SPMD, SMP 等 ▪ 如何表达并行性 ▪ DOACROSS, FORALL, PARALLEL,INDEPENDENT ▪ 如何表达同步 ▪ Lock, Barrier, Semaphore, Condition Variables ▪ 如何获得运行时的环境变量 ▪ threadid, num of processes
中国料学火计算机科学与波术系 niversity of Science and Technology of China DEAT三 NT OF C口 MPUTER SCIENGE AND TECHNOLOr ANSI×3}5共享存储器模型 Started in the mid-80s with the emergence of shared memory parallel computers with proprietary directive driven programming environments ■更早的标准化结果一PCF共享存储器并行 Fortran ■1993年制定的概念性编程模型 . anguage Binding C Fortran 77 Fortran 90 国家高性能计算中心(合肥
国家高性能计算中心(合肥) ANSI X3H5共享存储器模型 ▪ Started in the mid-80’s with the emergence of shared memory parallel computers with proprietary directive driven programming environments ▪ 更早的标准化结果—PCF共享存储器并行Fortran ▪ 1993年制定的概念性编程模型 ▪ Language Binding ▪ C ▪ Fortran 77 ▪ Fortran 90
中国料学火计算机科学与波术系 niversity of Science and Technolo ogy of China DEAT三 NT OF C口 MPUTER SCIENGE AND TECHNOLOr 并行块(工作共享构造) 并行块( sections…, end sections) 并行循环(pdo…. Endo pdo) 单进程( single… End single) 可嵌套 非共享块重复执行 ■隐式路障(ηowαit),显式路障和阻挡操作 共享/私有变量 线程同步 门插销(atch):临界区 锁:test,|ock,un|ock 事件 wait, post, clear 序数( ordinal):顺序 国家高性能计算中心(合肥
国家高性能计算中心(合肥) ▪ 并行块(工作共享构造) ▪ 并行块(psections ... end psections) ▪ 并行循环(pdo ... Endo pdo) ▪ 单进程(psingle ... End psingle) ▪ 可嵌套 ▪ 非共享块重复执行 ▪ 隐式路障(nowait),显式路障和阻挡操作 ▪ 共享/私有变量 ▪ 线程同步 ▪ 门插销(latch):临界区 ▪ 锁:test,lock,unlock ▪ 事件:wait,post,clear ▪ 序数(ordinal):顺序
中国料学火计算机科学与波术系 niversity of Science and Technology of China D三PAT三NT口F 3H5:并行性构造 程序以顺序模式开始,此时只有一个 A只由基本线程执行,称为主线程 转换为并行模式,派生出多个子线程(一个组) B为每个组员所复制 section 行块开始 ecTIon 卜个组员执行C 卜个组员执行D sections 等待c和D都结束 时转换成顺序模式 E 已由一个组员执行 end single 转回并行模式 i=1,6 lpdo构造开始 图组员共享F的六次迭代 no wal 无隐式路障同步 更多的复制 转为顺序模式 初始化进程单独执行 呵可能有更多的并行构造 国家高性能计算中心(合肥
国家高性能计算中心(合肥) X3H5:并行性构造 Program main !程序以顺序模式开始,此时只有一个 A !A只由基本线程执行,称为主线程 parallel !转换为并行模式,派生出多个子线程(一个组) B !B为每个组员所复制 psections !并行块开始 section C !一个组员执行C section D !一个组员执行D end psections !等待C和D都结束 psingle !暂时转换成顺序模式 E !已由一个组员执行 end psingle !转回并行模式 pdo i=1,6 !pdo构造开始 F(i) !组员共享F的六次迭代 end pdo no wait !无隐式路障同步 G !更多的复制代码 end parallel !转为顺序模式 H !初始化进程单独执行H ... !可能有更多的并行构造 End
中国料学火计算机科学与波术系 niversity of Science and Technology of China DEAT三 NT OF C口 MPUTER SCIENGE AND TECHNOLOr 线程 R A 隐式路障同步 B B 隐式路障同步 B|D⊥E 隐式路障同步 F(12)F(3:4)F(56) 无隐式路障同步 G G G 隐式路障同步 H 国家高性能计算中心(合肥
国家高性能计算中心(合肥) 线程 隐式路障同步 P Q R A B C E F(1:2) G H G G F(3:4) F(5:6) D B B 隐式路障同步 隐式路障同步 无隐式路障同步 隐式路障同步
中国料学火计算机科学与波术系 niversity of Science and Technolo ogy of China DEAT三 NT OF C口 MPUTER SCIENGE AND TECHNOLOr 共享存储系统綸程 131 ANSI X3H5共享存储模型 132 POSIX线程模型 133 OpenMP模型 国家高性能计算中心(合肥
国家高性能计算中心(合肥) 共享存储系统编程 ▪ 13.1 ANSI X3H5共享存储模型 ▪ 13.2 POSIX 线程模型 ▪ 13.3 OpenMP模型
中国料学火计算机科学与波术系 niversity of Science and Technology of China DEAT三 NT OF C口 MPUTER SCIENGE AND TECHNOLOr POSIX线程模型 IEEE/ANSI标准一 IEEE POSIX1003.1c-1995线程标 准— UniX/NT操作系统层上的,SMP Chorus, Topaz, Mach Cthreads ■Win32 Thread Get Thread Handle, Set ThreadPriority, Suspend Thread, Resume Thread TLS(线程局部存储)TsAl|loc, Tlssetvalue Linux Threads: clone and sys clone 用户线程和内核线程(LWP)(一到一,一到多,多到多) 国家高性能计算中心(合肥
国家高性能计算中心(合肥) POSIX线程模型 ▪ IEEE/ANSI标准—IEEE POSIX 1003.1c-1995线程标 准—Unix/NT操作系统层上的,SMP ▪ Chorus, Topaz, Mach Cthreads ▪ Win32 Thread ▪ GetThreadHandle,SetThreadPriority,SuspendThread,ResumeThread ▪ TLS(线程局部存储)—TlsAlloc, TlsSetValue ▪ LinuxThreads:__clone and sys_clone ▪ 用户线程和内核线程(LWP)(一到一,一到多,多到多)
中国料学火计算机科学与波术系 diversity of Science and Technology of, china D三PATH三NT What are Threads? Shared state (memory, files, etc.) Threads General-purpose solution for managing concurrency Multiple independent execution streams Shared state Preemptive scheduling Synchronization(e. g. locks, conditions) 国家高性能计算中心(合肥
国家高性能计算中心(合肥) What Are Threads? ▪ General-purpose solution for managing concurrency. ▪ Multiple independent execution streams. ▪ Shared state. ▪ Preemptive scheduling. ▪ Synchronization (e.g. locks, conditions). Shared state (memory, files, etc.) Threads