并行编程综述课件_第1页
并行编程综述课件_第2页
并行编程综述课件_第3页
并行编程综述课件_第4页
并行编程综述课件_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

並行編程綜述並行編程處於令人遺憾的狀況:並行軟體開發遠落後於並行硬體的進展。缺少合適的並行軟體是阻礙主流用戶接納並行計算的主要原因。與順序計算相比,當今的並行系統軟體和應用軟體不僅數量很少,而且功能性也相當原始。隧道之末總有陽光。一、並行編程緣何艱難在並行編程中有許多不同的模型。是一個更複雜的智力活動。並行程式的編譯器、調試程式、以及特徵分析器(profiler)要比串行程序落後得多。1.順序編程長期以來已建立了許多演算法範例一些實現指導用戶從事演算法設計。2.並行編程

並行編程處於初級階段;對於並行問題的應用,不太可能有一個現成的並行代碼;並行代碼的機器不同。並行編程也不支持成熟、通用和穩定的工具;並行演算法範例仍未能被很好地理解或被廣泛地接受;不存在單一、通用的機器模型;並行編程的模型有兩級,而在每一級上又有許多不同模型。與順序語言在編程或自然模型級上缺少代可擴展和異構可擴展的能力這些並行語言大多數在當前系統上使用的並行語言均是Fortran或C的某種擴展。一個編程模型即是程式員在開發一個並行程式時所見到和使用的模型。一個自然模型是由一個特定並行電腦平臺所提供的、用戶可見的最低層的編程模型。其他的編程模型可在此自然模型上加以實現。例如,在一個SGIPowerChallenge電腦上(它是SMP),自然模型為共用變數模型(如SGIPowerC)。數據並行(如HPF)和消息傳送(如MPl)可在其頂部實現。3.並行編程進展儘管以上的回顧較為悲觀,但在並行編程領域已有了許多進步:已開發了許多並行演算法。儘管大多數演算法基於非現實的PRAM模型,但其中某些在作適當修正後可以實用。已湧現一小批簡單的並行演算法範例,且已逐步為用戶所接受。自然模型正集中趨向於兩種模型:適用於PVP、SMP和DSM的單地址空間的共用變數模型;適用於MPP和機群的多地址空間的消息傳遞模型。SIMD模型已從主流、通用並行電腦淡出,但對於如同語言、圖象和多媒體處理的專用嵌入式應用仍非常有用。高層並行編程模型

趨向於3種標準模型:數據並行(如HPF)、消息傳遞(如HPVM和MPl)共用變數(如HANSIX3H5)。此外還有一種模型----串轉並;用戶只需編寫順序程式,其中的蘊式並行性由並行化編譯器(如Kap)進行析取。4.吞吐率處理在一個問題的處理上,並行少,串行多。增加多個獨立順序作業的系統吞吐率。順序程式並行系統(SPPS)模型,也稱為吞吐率處理。二、並行編程環境1.一個典型的並行處理系統如圖所示的結構無論是演算法還是源代碼均需顯式地並行化。編譯器將源代碼翻譯成二進位代碼在並行平臺上運行,該平臺包含操作系統和在它之下的並行電腦硬體。任何編程語言均有運行時間支持系統,它是與用戶代碼連接程式。2.環境工具

一個環境工具是指任何硬體和軟體的實用程式,以幫助用戶程式的開發和執行。編程環境(或簡稱環境):所有這類工具集合。工具的實例包括操作系統實用程式、程式設計語言、編譯器以及運行時間庫等。

環境工具是那些通常與操作系統或程式設計語言無關的工具集。環境工具包括以下類型:作業管理工具包括網路排隊系統(NQS)和負載共用工具(LSF)。調試工具性能工具它們用來監控用戶應用程式以識別性能瓶頸之所在。三、並行編程方法

目前在實際的並行電腦中廣泛使用的並行編程模型有4種:蘊式;數據並行;消息傳遞;共用變數。有三種擴展方法:庫副程式、新語言構造以及編譯器命令。庫副程式除了在順序語言中可用的標準庫外,加入一組新的庫函數,以支持並行化和交互操作。這種庫的實例包括MPI消息傳遞以及POSIXPthreads多線程庫。新構造擴展程式設計語言使其具有某些新構造,以支持並行化和交互。例如Fortran90中密集數據操作。編譯器命令程式設計語言不變,但加入稱為編譯器命令(或pragmas)的格式化注解。示例:用一段簡單代碼來說明這些方法。所有3個並行程式均執行相同的如圖所示的串行C代碼的計算。串行代碼段for(i=0;i<N;i++)A[i]=b[i]*b[i+1];for(i=0;i<N;i++)c[i]=A[i]+A[i+1];使用庫例程的等效並行代碼id=my_process_id();p=numberofprocesses();for(i=id;i<N;i=i+p)A[i]=b[i]*b[i+1];barrier();for(i=id;i<N;i=i+p)c[i]=A[i]+A[i+1];串行代碼段for(i=0;i<N;i++)A[i]=b[i]*b[i+1];for(i=0;i<N;i++)c[i]=A[i]+A[i+1];Fortran90中使用數組操作的等效代碼my-processid(),number_of_processes(),andbarrier()A(0:N-1)=b(0:N-1)*b(1:N)c=A(0:N-1)+A(1:N)串行代碼段for(i=0;i<N;i++)A[i]=b[i]*b[i+1];for(i=0;i<N;i++)c[i]=A[i]+A[i+1];SGIpowerC中使用pragma的等效代碼#pragmaparallel#pragmashared(A,b,c)#pragmalocal(i){#pragma

pforiterate(i=0;N:1)

for(i=0;i<N;i++)#pragmasynchronize#pragma

pforiterate(i=0;N:1)

for(i=0;i<N;i++)c[i]=A[i]+A[i+1];}三種方法的比較:可用3種方法實現任何編程模型在任何並行平臺上,3種方法和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论