并行性问题课件.pptVIP

并行性问题课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

並行性問題一、進程中的同構性指並行程式中各分進程的類似性。有3種可能的基本類似:SPMD:在單程序多數據(SPMD)程式中的分進程是同構的。因為多個進程在不同的數據範疇內執行相同代碼。MPMD:在多程式多數據(MPMD)程式中的分進程是異構的。因為多個進程可以執行不同代碼。SPMD和MPMD程式,兩者都是MIMD類型的。SIMD:SIMD程式與SPMD有區別,SIMD程式是SPMD程式的一個特例。將著重MPMD程式的研究。數據並行程式--是指SPMD程式,尤其是此程式只用數據並行構造(如Fortran90中所採用的)時。功能並行程式(也稱為任務並行或控制並行程式)--通常是MPMD程式的同義詞。在一個並行程式中,MPMD(功能並行)和SPMD(數據並行)風格可以混合使用。1.並行塊(parallelblock)表達MPMD程式的方法是:使用parbegin和parend構造。這種結構化的構造最初是由DUkstra提議的,也稱為cobegin和coend。ParbeginS1,S2,…,SnParend當並行塊執行時,它的n個分進程S1,S2,…,Sn就開始同時執行。它們的執行是互相獨立的,以不同速率進行。當所有n個分進程終止時,並行塊也就終止。2、並行迴圈(Parallelloop)當並行塊中的所有進程共用相同代碼時,用一個稱為並行迴圈的速記記號來標明並行塊如下:

ParbeginProcess(1)······Process(n)Parend可簡化成如下的並行迴圈:Parfor(i=1;i=n:i++){Process(i)}並行迴圈常用來說明SPMD並行程式。可以用SPMD來仿真MPMD。例如MPMD代碼:ParbeginA;B;C;parend表示成一個SPMD的並行迴圈parfor(i=0;i3;i++){if(i=0)A;If(i=1)B;If(i=2)C;}3.多代碼與單代碼(Multi-CodeversusSingleCode)MPP和COW上,許多編程語言不提供並行塊或並行迴圈構造。例如,ParbeginA;B;C;parend,用多代碼進行說明:runAOnnode1runBOnnode2runCOnnode3程式A、B和C僅是順序程式加上進行交互的庫調用。SPMD程式可用單代碼方法加以說明。例如,要說明並行迴圈parfor(i=0:iN;i++){foo(i)},用戶只需編寫如下的一個程式:Pid=my_processid();Numproc=number_of_processes();for(i:=pid;iN;i=i+numproc)foo(i);數據並行構造在Fortran90和HPF中,SPMD並行性可用數據並行構造加以說明。例如,一個並行迴圈:parlor(i:=1;i=N;++){c[i]=A[i]+B[i];}用戶可用1條數組賦值語句:C=A+B或用以下迴圈來表示:forall(i=1,N)C[i]=A[i]+B[i]

二、靜態和動態並行性1.靜態並行性如果一個程式的結構以及組成進程的個數在運行時間之前(如在編譯時間,連接時間或裝載時間)就可確定。2.動態並行性這就蘊含著那些進程要在運行時間內創建和終止。3.動態並行性通常使用某些操作:fork/join(派生和匯合)fork/join操作加以表示。它們也可用單代碼或多代碼方法加以說明。一般構思。下列程式有3個進程,其中A是主進程,當程式開始執行時,它是自動被創建的:ProcessA:BeginZ:=1Fork(B);T:=foo(3)endProcessB:BeginFork(C);X:=foo(3);Join(C);Output(X+Y);endProcessC:BeginY:=boo(Z);end三、進程編組一個進程組是進程的一個有序集。進程中的成員數稱為組的大小。每個組有一個組識別字(ID),它唯一地識別並行程式中的組。

文档评论(0)

子不语 + 关注
官方认证
服务提供商

平安喜乐网络服务,专业制作各类课件,总结,范文等文档,在能力范围内尽量做到有求必应,感谢

认证主体菏泽喜乐网络科技有限公司
IP属地山东
统一社会信用代码/组织机构代码
91371726MA7HJ4DL48

1亿VIP精品文档

相关文档