




已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
國家高性能計算中心(合肥),第十三章 共享存儲系統(tǒng)編程,國家高性能計算中心(合肥),共享存儲系統(tǒng)編程,13.1 ANSI X3H5共享存儲模型 13.2 POSIX 線程模型 13.3 OpenMP模型,國家高性能計算中心(合肥),編程標準的作用,規(guī)定程序的執(zhí)行模型 SPMD, SMP 等 如何表達并行性 DOACROSS, FORALL, PARALLEL,INDEPENDENT 如何表達同步 Lock, Barrier, Semaphore, Condition Variables 如何獲得運行時的環(huán)境變量 threadid, num of processes,國家高性能計算中心(合肥),ANSI X3H5共享存儲器模型,Started in the mid-80s with the emergence of shared memory parallel computers with proprietary directive driven programming environments 更早的標準化結果PCF共享存儲器并行Fortran 1993年制定的概念性編程模型 Language Binding C Fortran 77 Fortran 90,國家高性能計算中心(合肥),并行塊(工作共享構造) 并行塊(psections . end psections) 并行循環(huán)(pdo . Endo pdo) 單進程(psingle . End psingle) 可嵌套 非共享塊重復執(zhí)行 隱式路障(nowait),顯式路障和阻擋操作 共享/私有變量 線程同步 門插銷(latch):臨界區(qū) 鎖:test,lock,unlock 事件:wait,post,clear 序數(shù)(ordinal):順序,國家高性能計算中心(合肥),X3H5:并行性構造,Program main !程序以順序模式開始,此時只有一個 A !A只由基本線程執(zhí)行,稱為主線程 parallel !轉換為并行模式,派生出多個子線程(一個組) B !B為每個組員所復制 psections !并行塊開始 section C !一個組員執(zhí)行C section D !一個組員執(zhí)行D end psections !等待C和D都結束 psingle !暫時轉換成順序模式 E !已由一個組員執(zhí)行 end psingle !轉回并行模式 pdo i=1,6 !pdo構造開始 F(i) !組員共享F的六次迭代 end pdo no wait !無隱式路障同步 G !更多的復制代碼 end parallel !轉為順序模式 H !初始化進程單獨執(zhí)行H . !可能有更多的并行構造 End,國家高性能計算中心(合肥),線程,隱式路障同步,P,Q,R,A,B,C,E,F(1:2),G,H,G,G,F(3:4),F(5:6),D,B,B,隱式路障同步,隱式路障同步,無隱式路障同步,隱式路障同步,國家高性能計算中心(合肥),共享存儲系統(tǒng)編程,13.1 ANSI X3H5共享存儲模型 13.2 POSIX 線程模型 13.3 OpenMP模型,國家高性能計算中心(合肥),POSIX線程模型,IEEE/ANSI標準IEEE POSIX 1003.1c-1995線程標準Unix/NT操作系統(tǒng)層上的,SMP Chorus, Topaz, Mach Cthreads Win32 Thread GetThreadHandle,SetThreadPriority,SuspendThread,ResumeThread TLS(線程局部存儲)TlsAlloc, TlsSetValue LinuxThreads:_clone and sys_clone 用戶線程和內(nèi)核線程(LWP)(一到一,一到多,多到多),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,國家高性能計算中心(合肥),線程共享相同的內(nèi)存空間。 與標準 fork() 相比,線程帶來的開銷很小。內(nèi)核無需單獨復制進程的內(nèi)存空間或文件描述符等等。這就節(jié)省了大量的 CPU 時間。 和進程一樣,線程將利用多 CPU。如果軟件是針對多處理器系統(tǒng)設計的,計算密集型應用。 支持內(nèi)存共享無需使用繁瑣的 IPC 和其它復雜的通信機制。 Linux _clone不可移植,Pthread可移植。 POSIX 線程標準不記錄任何“家族”信息。無父無子。如果要等待一個線程終止,就必須將線程的 tid 傳遞給 pthread_join()。線程庫無法為您斷定 tid。,國家高性能計算中心(合肥),POSIX Threads: Basics and Examples by Uday Kamath /abw/parallel/pthreads/pthreads.html POSIX 線程詳解: 一種支持內(nèi)存共享的簡單和快捷的工具 by Daniel Robbins /developerWorks/linux/thread/posix_thread1/index.shtml,國家高性能計算中心(合肥),國家高性能計算中心(合肥),線程調(diào)用線程管理,POSIX Solaris 2 pthread_create thr_create pthread_exit thr_exit pthread_kill thr_kill pthread_join thr_join pthread_self thr_self,國家高性能計算中心(合肥),線程調(diào)用線程同步和互斥,POSIX Solaris 2 pthread_mutex_init mutex_init pthread_ mutex_destroy mutex_destroy pthread_ mutex_lock mutex_lock pthread_ mutex_trylock mutex_trylock pthread_ mutex_unlock mutex_unlock pthread_cond_init pthread_cond_destroy pthread_cond_wait pthread_cond_timedwait pthread_cond_signal pthread_cond_broadcast,國家高性能計算中心(合肥),Pthreads實現(xiàn)計算的實例 1,國家高性能計算中心(合肥),Pthreads實現(xiàn)計算的實例 2,國家高性能計算中心(合肥),對生產(chǎn)者驅動的有界緩沖區(qū)問題的Pthread條件變量解,void *producer(void *arg1) int i; for (i=1;i=SUMSIZE;i+) pthread_mutex_lock(,void *consumer(void *arg2) int i,myitem; for (;) pthread_mutex_lock( ,國家高性能計算中心(合肥),共享存儲系統(tǒng)編程,13.1 ANSI X3H5共享存儲模型 13.2 POSIX 線程模型 13.3 OpenMP模型,國家高性能計算中心(合肥),The History of OpenMP What is directive/pragma? Directive-based general purpose parallel programming API with emphasis on the ability to parallelize existing serial programs Why a new standard? Whos Involved? Parallelism model and basic directives Fortran77, Fortran90 C, C+,OpenMP標準,國家高性能計算中心(合肥),The History of OpenMP,A key intermediate step was X3H5 in the late 80s. An official standards effort to agree on a parallel dialect of Fortran for shared memory computers. The X3H5 effort failed. It was too big and too late. OpenMP is born: In 1996 a group formed to create an industry standard set of directives for SMP programming This group called itself the OpenMP Architecture Review Board(the ARB) who takes care of OpenMP,國家高性能計算中心(合肥),The History of OpenMP(cont.),The ARB has released the following specifications: OpenMP 1.0 for Fortran, Nov. 1997 OpenMP 1.0 for C/C+, Nov. 1998 OpenMP Fortran Interpretations, Spring 1999 OpenMP 2.0(soon) OpenMP is an evolving standard. Send comments over the feedback link on the OpenMP web site(),國家高性能計算中心(合肥),為什么要建立新標準?,ANSI X3H5, 1994 時機不好, 分布式機器流行 只支持循環(huán)級并行性,粒度太細 Pthreads(IEEE Posix 1003.4a ) 是為低端(low end)的共享機器(如SMP)的標準 對FORTRAN的支持不夠 適合任務并行, 而不適合數(shù)據(jù)并行 MPI 消息傳遞的編程標準, 對程序員要求高 HPF 主要用于分布式存儲機器 大量已有的科學應用程序需要很好地被繼承和移植,國家高性能計算中心(合肥),In a Nutshell,A set of directives(library routines, and environment variables) used to annotate a sequential program to indicate how it should be executed in parallel繼承X3H5的許多概念 Portable, Simple and Scalable Shared Memory Multiprocessing API not a new language not automatic parallelization extend base languages: Fortran77, Fortran90, C and C+ Multi-vendor Support, for both UNIX and NT Standardizes Fine Grained(Loop) Parallelism, also Supports Coarse Grained Algorithms,國家高性能計算中心(合肥),OpenMP是什么?,一組編譯制導語句和可調(diào)用的運行(run-time)庫函數(shù), 擴充到基本語言中用來表達程序中的并行性 編譯制導語句包括: 在串行程序中加入下列結構 SPMD(Single Program Multiple Data) constructs work-sharing constructs synchronization constructs data environment constructs 運行庫函數(shù)包括: execution environment routines lock routines 另外, 在FORTRAN標準中, 還包括對環(huán)境變量的描述,國家高性能計算中心(合肥),國家高性能計算中心(合肥),OpenMP當前的狀況,1997年10月28日, DEC, IBM, Intel, SGI, 和 Kuch & Associates 等公司的代表們決定制定一種適用于多種硬件平臺的共享存儲編程的新的工業(yè)應用標準 接著, 全球很多的組織和ISV決定支持這一標準, 如DOE/ASCI, Livermore Software Technology Corp., Fluent Inc., Absoft Corp. , Ansys Inc. Etc. 目前支持FORTRAN語言, C 和C, 并建有專門的網(wǎng)址 在科研機構中, 也引起了足夠的重視, 被認為是21世紀最受歡迎的并行編程標準 OpenMP on NOWs (SC98, Nov. 1998) Integrated OpenMP and MPI on Clusters,國家高性能計算中心(合肥),國家高性能計算中心(合肥),SPMD的程序執(zhí)行模型,P0,P1 P2 . . .,Pn,國家高性能計算中心(合肥),SMP的程序執(zhí)行模型,國家高性能計算中心(合肥),OpenMP的程序執(zhí)行模型,國家高性能計算中心(合肥),Parallel and work sharing directives data environment directives synchronization directives,國家高性能計算中心(合肥),編譯制導語句(1),Work-sharing constructs 將結構內(nèi)的任務分配到處理機中, 必須動態(tài)地放在Parallel region construct 中, 進入這種結構之前并不隱含BARRIER操作 DO(最常用) 有SCHEDULE選項, 可以指定采用什么調(diào)度算法 SECTIONS(可以流水線執(zhí)行之) SINGLE(只有一個處理機執(zhí)行之),國家高性能計算中心(合肥),Parallel Region: parallel, end parallel Work Sharing: do, sections, single(parallel do, nowait) Fork-Join model of parallel execution(static,dynamic,orphaned),Parallel Region and Work Sharing Directives,國家高性能計算中心(合肥),編譯制導語句(2),指令格式 固定形式 !$OMP 自由形式 !$OMP, *$OMP, C$OMP Parallel Region Construct !$OMP Parallel clause, clause . . . Do I = 1, 20 A(I) = A(I) + B(I) !$OMP End Parallel (隱含BARRIER操作) 其中Clause可以為:PRIVATE(list), SHARED(list),COPYIN(list), FIRSTPRIVATE(list), DEFAULT(PRIVATE|SHARED|NONE), REDUCTION(operation|intrinsic:list), IF(logical_expression),國家高性能計算中心(合肥),DO編譯制導語句,!$OMP DO clause, clause . . . do_loop !$OMP END DO NOWAIT 例子: !$OMP PARALLEL DO DO I = 2, N B(I) = ( A(I) + A(I-1) /2.0 ENDDO !$OMP END DO NOWAIT !$OMP END PARALLEL,國家高性能計算中心(合肥),SECTIONS 編譯制導語句,!$OMP SECTIONS !$OMP SECTION block1 !$OMP SECTION block2 !$OMP SECTION block3 !$OMP END SECTIONS,國家高性能計算中心(合肥),編譯制導語句(3),Data environment constructs THREADPRIVATE Data scope attribute clauses PRIVATE SHARED DEFAULT FIRSTPRIVATE LASTPRIVATE REDUCTION COPYIN,國家高性能計算中心(合肥),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 blocks / C:file scope and static variables,Data Environment Directives,國家高性能計算中心(合肥),編譯制導語句(4),Synchronization constructs MASTER CRITICAL BARRIER ATOMIC FLUSH ORDERED,國家高性能計算中心(合肥),例子(ORDERED),規(guī)定了各個線程執(zhí)行的順序 !$OMP PARALLEL !$OMP DO ORDERED SCHEDULE(DYNAMIC) DO I = LowBound, UpBound, Step CALL WORK(I) END DO !$OMP END PARALLEL SUBROUTINE WORK(K) !$OMP ORDERED WRITE(*,*) K !$OMP END ORDERED END,國家高性能計算中心(合肥),Synchronization Directives,ma
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文旅古鎮(zhèn)景區(qū)委托運營管理及旅游紀念品銷售合同
- 2025年抗高血壓藥項目建議書
- 生物科技領域基因編輯專利無效爭議代理合同
- 腎內(nèi)護理課件
- 網(wǎng)絡直播平臺主播形象使用權購買合同
- 基因編輯技術人才培養(yǎng)與就業(yè)合作協(xié)議
- 生態(tài)環(huán)境影響評估工程師委托聘用協(xié)議
- 國際化智能穿戴設備專利許可及全球市場推廣合同
- 高速城市有軌電車接觸網(wǎng)設計與施工一體化合同
- 婚姻穩(wěn)定性保障與不可抗力事件忠誠協(xié)議修訂執(zhí)行
- 民間游戲體育游戲課程設計
- 安奈拉唑鈉腸溶片-臨床用藥解讀
- 停車場運營維護管理投標方案技術標
- AI賦能教育創(chuàng)新
- 田徑運動會檢查員報告表
- 業(yè)主維權授權委托書范文
- 第四代EGFR-C797S藥物管線及專利調(diào)研報告
- 有機硅化學課件-有機硅化合物的化學鍵特性
- 蒸汽和飽和蒸汽熱焓表
- 純水管道施工方案-2
- 企業(yè)清產(chǎn)核資報表
評論
0/150
提交評論