第四章并行算法的設計基礎課件_第1頁
第四章并行算法的設計基礎課件_第2頁
第四章并行算法的設計基礎課件_第3頁
第四章并行算法的設計基礎課件_第4頁
第四章并行算法的設計基礎課件_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第四章 并行算法的設計基礎10/23/20231并行計算相關的研究分支11..并行計算機體系結構22..并行計算的性能評價33..并行算法4.

并行程序設計一、并行算法相關的基本概念及表示二、介紹幾種并行計算模型一、并行算法相關的基本概念及表示10/23/20232基本概念并行算法的表示并行算法的復雜性度量并行算法的同步與通信1.

基本概念10/23/20233定義1:算法:在有限步驟內求解某一特定問題的一組無二義性的規(guī)則。定義2:并行算法是由一些獨立的、可以并行運行

的計算模塊(進程)構成,模塊(進程)之間能

相互作用和協(xié)調,以完成對一個給定問題的求解。根據(jù)算法的不同特征,可以對并行算法進行不同的分類:10/23/20234–SIMD算法和MIMD算法–同步算法和異步算法–數(shù)值計算算法和非數(shù)值計算算法–共享存儲算法和分布存儲算法定義3:同步算法(synchronized

algorithm):是指算法的諸進程的執(zhí)行必須相互等待的一類并行算法。

SIMD算法是同步算法中的一種特例。定義4:異步算法(asynchronous

algorithm):是指算法的諸進程的執(zhí)行不必相互等待的一類并行算法。定義5:分布并行算法(distributed

algorithm):將同一任務分解為若干個子任務,使之分布在由通信鏈路連接的多個節(jié)點上協(xié)同完成運算的算法。分布式算法的執(zhí)行時間,在很大程度上受通信開銷的影響。10/23/20235定義6:確定算法

(deterministic

algorithm):每個運算步驟上均確定唯一操作的算法。如線性方程組求解的算法。不確定算法(non-deterministicalgorithm):在問題求解的搜索過程中,提出多種可供選擇的操作,它們中的任一種都有希望獲得問題的解答,但都不能肯定解出,有時甚至不能確定這些操作中哪一種求解的可能性更大些。對此,只能選擇其中任意一種搜索下去。這種搜索方法稱為不確定算法。10/23/20236定義7:隨機算法(

randomized

algorithm,probabilistic

algorithm

)計算步驟具有隨機性的算法。在算法的某一步或某些步上,可以在指定范圍內隨機地選擇下一個演算步的走向。10/23/20237如果方法得當,可比一般算法更快地得出結果,并且能以較高的概率提供正確的結果。表示算法的要求無二義性力圖直觀、易懂不苛求嚴格的語法格式一般的串行算法常用類Pascal、類Algol表示10/23/202382.

并行算法的表示1.par-do語句for

i=1

to

n

par-do表示其間的

n

(i=1

ton)

次語句序列的執(zhí)行可以并行完成表示

k

個處理器同時執(zhí)行其間的語句序列::end

for2.for

all

語句for

all

Pi

where

0

i≤

k-1

do::for并行算法常引入以下兩條并行語句:10/2e3/2n02d393.

并行算法的復雜性度量10/23/202310令

f(n)

g(n)

是定義在自然數(shù)集合N

上的兩個函數(shù),定義8: 如果存在兩個正數(shù)

c

n0

,使得對于所有的

n

n0

均有f(n)

c

g(n)

,則標記為:f(n)=Ο

(

g(n)

)我們稱

g(n)

f(n)

的上界。定義9: 如果存在兩個正數(shù)

c

n0

,使得對于所有的

n

n0

均有f(n)

c

g(n)

,則標記為:f(n)=

Ω

(

g(n)

)我們稱

g(n)

f(n)

的下界。定義10:如果存在正數(shù)

c1、c2

n0

,使得對于所有的

n

n0

均有c1

g(n)

f(n)

c2

g(n)

,則標記為10/23/202311f(n)=

Θ

(

g(n)

)我們稱

g(n)

f(n)

的緊致界。即:如果

f(n)=Ο

(

g(n)

)且

f(n)=

Ω

(

g(n)

)則

f(n)=

Θ

(

g(n)

)比較兩個算法的時間復雜性函數(shù)g(n)和f(n)的階的方法:用定義判斷

用求極限的方法來加以判斷。若則(1)當c≠0時,說明f(n)和g(n)同階,記為f(n)=Θ(g(n))(2)當c=0時,說明f(n)比g(n)低階,記為f(n)

=O(g(n))(3)當c=∞時,說明f(n)比g(n)高階,記為f(n)=Ω(g(n))10/23/202312并行算法的運行時間

t(n)

:對于輸入規(guī)模為

n的問題,在給定的并行計算模型之下求解問題所需的時間,也稱為時間復雜性

(

time

complexity

)。運行時間

= 計算時間

+ 通信時間處理器數(shù)p(n):表示對給定的問題規(guī)模

n,并行算法所用的處理器的個數(shù)。并行算法的成本c(n):并行算法的運行時間

t(n)與所需的處理器數(shù)

p(n) 之積,即c(n)

=

t(n)

*

p(n)10/23/202313例:(1)設f(n)=n2/2,g(n)=307n2,則因此,f(n)=n2/2與g(n)=307n2是同階的。(2)設f(n)=lg

n,g(n)=n,則所以,f(n)=lg

n比g(n)=n低階。10/23/202314定義11:一個并行算法最壞情況下的時間復雜性(worst-case

time-complexity

) :對于所有輸入規(guī)模為

n 的問題,在給定的并行計算模型之下求解問題所需的時間的最大值。定義12:一個并行算法的期望時間復雜性(expected

time-complexity

) :對于所有輸入規(guī)模為

n 的問題,在給定的計算模型之下求解問題所需的時間的平均值。10/23/202315定義13:一個并行算法最壞情況下的空間復雜性(worst-case

space-complexity) :對于所有輸入規(guī)模為

n 的問題,在給定的并行計算模型之下求解問題所需的內存空間的最大值。定義14:一個并行算法的期望空間復雜性(expectedspace-complexity) :對于所有輸入規(guī)模為

n

的問題,在給定的計算模型之下求解問題所需的內存空間的平均值。10/23/202316定義15:如果一個并行算法的成本與其對應的最佳串行算法的最壞情況下時間復雜性在同一個數(shù)量級上,則稱該并行算法為成本最佳的(

cost-optimal

) 或最佳并行算法

(optimal

parallelalgorithm

)??傔\算量W

(n):

(并行)算法中所要完成的總的操作數(shù)量(

the

number

of

computationaloperations

)10/23/2023174.

并行算法中的同步與通信10/23/202318同步(synchronization):使多個相關事件的發(fā)生保持相同的節(jié)奏,彼此之間能良好地配合。在并行算法的各進程異步執(zhí)行過程中,為了確保

各處理器的正確工作順序和對共享存儲器的訪問,程序員需要在算法的適當位置設置同步點。下面給出一個利用

lock

unlock 構造的臨界區(qū)完成數(shù)組求和的算法[算法4.1.3]

共享存儲多處理機上求和算法輸入:A

=

(a0

,

a1

,…,an-1)

,

處理器數(shù)

p;輸出:a

0

+a1

+…+an-1存放在全局變量S

中。beginS

=

0for

all

Pi

where

0

i

p-1

doL

=

0for

j

=

i

ton-1

step

p

doL

=

L

+

ajend

forlock

(u)S

=

S

+

Lunlock

(u)end

for10/23/202319end通信(communication):把信息用一定手段通過某種介質或傳輸線路從一個點傳送至另一點的過程。通信是在空間上對并發(fā)執(zhí)行的進程實現(xiàn)數(shù)據(jù)交換。原語

(primitive):它由若干條機器指令構成的,用來完成特定功能的一段程序。原語有以下特點:不可中斷性:一旦原語被開始執(zhí)行,就應不間斷地執(zhí)行到結束;不可侵犯性:原語一旦被執(zhí)行,中間不許插入任何其他操作。10/23/202320通信可使用通信原語來表示:在共享存儲的多處理機中,可使用global

read

(X,

Y)將全局存儲器中數(shù)據(jù)

X 讀入局部變量

Y;global

write

(U,

V)將局部數(shù)據(jù)

U 寫入共享存儲變量

V 中。在分布存儲的多計算機中,可使用send

(X,

i

)

send

(X,

Pi

)當前處理器發(fā)送數(shù)據(jù)

X

Pi

;receive

(Y,

j

)

receive

(Y,

Pj

)當前處理器從Pj

接收數(shù)據(jù)

Y。10/23/202321[算法4.1.4]

分布存儲多計算機上矩陣向量相乘算法給定:一個n*n

的矩陣A和一個向量Xa11

a12

a13……

a1n-1

a1nA

=a21

a22

a23……

a2n-1

a2na31

a32

a33……

a3n-1

a3n……..an1an2

an3……

ann-1

annx1x2X

=

x3…xn計算:

A*X,得到一個向量。假設

r

=

n/p 為一整數(shù)因為我們打算在分布存儲的多計算機系統(tǒng)上運行該算法,被計算的數(shù)據(jù)只能分布在各個處理器的局部器上。10/2存3/20儲2322我們把

A 按列分為

p

n*r 的小矩陣A1

,

A2

,…

,

Ap把

X 按行分為

p

r*1 的小向量X1

,

X2

,…

,

Xp計算

A*X就轉化為計算:A1

X1

+

A2

X2

+…

Ap

Xp所以處理器Pi(其中1

i

p)將Ai

和 Xi

存放在自己的局部存儲器中,各處理器首先計算 Ai

Xi,然后利用通信實現(xiàn)數(shù)據(jù)求和。X1(r*1)X2(r*1)…Xp(r*1)X

=A

=

A1

A2

Ap(n*r)

(n*r)

(n*r)10/23/2023

23我們假設處理器是以環(huán)結構組織的PiP2PpP110/23/202324[算法4.1.4]分布存儲多計算機上矩陣向量相乘算法輸入:處理器數(shù)p,第i

個A

矩陣分量Ai

于B

中,第i個X向量分量Xi于w中;輸出:A*X

P1

變量

y中。begincompute

z

=

Bwif i

=

1

then

y

=

0else

receive

(y

,

left)endify

=

y

+

zsend

(y

,right)if i

=

1

then

receive

(y

,left)en10/d23/202325p1p3p2p4計算z=Bw計算z=Bw計算z=Bw計算z=Bwy=0rec(y,

p1)rec(y,

p2)rec(y,

p3)y=y+zsend(y,p2)send(y,p3)send(y,p4)rec(y,p4)y=y+zy(1)y=y+zy(2)y=y+zy(3)y(4)結束10/23/2023send(y,p126)第四章 并行算法的設計基礎10/23/202327一、并行算法相關的基本概念及表示二、介紹幾種并行計算模型二、并行計算模型10/23/202328并行計算模型:從并行算法的設計和分析出發(fā),將各種并行計算機(至少是某一類并行計算機)的基本特征抽象出來,形成一個抽象的計算模型。并行計算模型為并行計算提供了硬件和軟件的界面,使硬件設計者和軟件設計者可以開發(fā)并行性的支持機制,從而提高系統(tǒng)的性能。對并行算法的研制者,不會局限于某種具體的并行計算機來研究并行算法,而需借助于抽象的計算

模型,它是設計和分析并行算法的基礎。編程模型計算模型體系結構模型機器模型為了能對計算機系統(tǒng)進行簡單、明確的描述,發(fā)現(xiàn)一般規(guī)律,通常在不同層次上進行抽象來定義模型。不同層次模型的關系圖:用戶系統(tǒng)硬件和操作系統(tǒng)互連網(wǎng)絡的作用和執(zhí)行通信的形式等計算機的費用和資源編程語言的語義10/23/202329并行計算模型的主要作用:它是并行算法實現(xiàn)的基礎對同一問題在不同的模型上的不同解決辦法,來比較該問題究竟更合理在哪一種模型上實現(xiàn)它給并行算法設計和分析提供了一個簡單、方便的框架撇開了硬件的繁雜的細節(jié)它使并行算法設計具有一定的生命力集中精力開發(fā)應用問題自身的并行性和算法的性能,并使算法具有一定的通用性10/23/202330串行算法的研究已經(jīng)相當成熟,它們基本上都是基于馮.諾依曼(von

Neumann)體系結構控制器運算器主存儲器輸出設備輸入設備CPU高速緩存10/23/202331程序指令計數(shù)器r0r1r2r3:存儲器累加器x1x2……xn只讀輸入磁帶y1y2……只寫輸出磁帶串行計算模型RAM

(Random

Access

Machine)10/23/202332RAM機器模型的指令系統(tǒng)與實際計算機的指令系統(tǒng)類似,有四類指令:控制流向指令,

jump;輸入/輸出指令,

read

,

write;累加器與存儲器之間的傳送數(shù)據(jù)指令,如

load;算術運算指令,

add。10/23/2023331.

PRAM

模型10/23/202334(Parallel

Random

Access

Machine

Model)1978年S.

Fortune

J. Wyllie總結了陣列式結構的并行機和流水線結構的向量機的特點,將其抽象為具有如下特征的

PRAM 模型:有一個控制器有

p(可有限或無限)臺功能相同的處理器有一個容量無限的共享存儲器每臺處理器有自己的局部存儲器處于激活狀態(tài)的處理器必須執(zhí)行相同的指令允許任何時刻各處理器均可通過共享存儲器與其它處理器交換數(shù)據(jù)。PRAM模型----SIMD計算模型控

器互

聯(lián)

網(wǎng)

絡全

器P1LM1P2LM2PpLMp……10/23/202335PRAM

模型允許任何時刻各處理器均可通過共享存儲器的共享單元與其它處理器交換數(shù)據(jù)。根據(jù)處理器對共享單元的存、取訪問的不同約束條件進一步對

PRAM 模型分類:–PRAM-EREW

(Exclusive

Read,

ExclusiveWrite):不允許有讀沖突和寫沖突–PRAM-CREW

(Concurrent

Read,

ExclusiveWrite):每次允許多臺處理器同時讀同一共享單元內容,但不允許同時寫。–PRAM-CRCW

(Concurrent

Read,

ConcurrentWrite):允許多臺處理器同時讀、寫同一共享單元內容。10/23/202336PRAM-CRCW

模型中允許同時寫同一共享單元顯然是不現(xiàn)實的,所以對PRAM-CRCW

模型作了更進一步的約定:–共用的(Common)

PRAM-CRCW:同時寫同一共享單元的所有處理器必須寫相同的值;–優(yōu)先的(Priority)

PRAM-CRCW:從同時要寫同一共享單元的所有處理器中找出標號最小的處理器,將它的值寫入共享地址中;–任意的

(Arbitrary) PRAM-CRCW:從同時要寫同一共享單元的所有處理器中任選一個處理器的值寫入共享地址中。10/23/202337PRAM

模型上的算法的執(zhí)行:輸入數(shù)據(jù)存放在全局共享存儲器中,并只有一個處理器處于激活狀態(tài);在每個計算步中,一個激活的處理器可做:–從局部或全局存儲器中讀一個值–完成一個

RAM 操作–寫值到局部或全局存儲器中–激活另一個處理器10/23/202338[算法4.2.1]

PRAM-EREW 模型上求和算法輸入:n個待求和的數(shù)

A

[0..(n-1)]輸出:最終的n個數(shù)的和在

A

[0]

中全局變量:n

,

A

[

0..(n-1)]

,

jbegin*

spawn(P0,

P1,

, P

n/2

-

1)for

all

Pi

where

0

i

n/2

-

1

dofor

j

=

0

to

log

n

-

1

doif

i

mod

2j

=

0

and

2i +2j

<

n

thenA

[

2i

]

=

A

[

2i

]

+

A

[

2i

+2j

]endifendfor10/23/2023endfor39spawn():激活n個處理機例:n=12時間sp10a/2w3/20n23

():激活n

個處理機的時間為?log

n?。402.

APRAM 模型

(

Asynchronous

PRAM

)10/23/20234180年代初,人們總結了共享存儲型多處理機結構的向量機的特點,將其抽象為具有如下特征的APRAM 模型:有

p(可有限或無限)個處理器;每個處理器有自己的控制器(局部時鐘);有一個容量無限的共享存儲器;每臺處理器有自己的局部存儲器和局部程序;各處理器異步地、獨立地執(zhí)行各自的指令,處理器間的同步需明確地在各處理器的程序中加入障礙(路障)同步

(barrier

synchronization)

指令;利用共享存儲器實現(xiàn)處理器間的通信。APRAM

模型----MIMD計算模型控制器1互

聯(lián)

網(wǎng)

絡P1LM1P2LM2PpLMp……控制器2控制器p……全局共享存儲器10/23/202342PRAM模型----SIMD計算模型(對比)控

器互

聯(lián)

網(wǎng)

絡P1LM1P2LM2PpLMp……全局共享存儲器10/23/202343APRAM

模型同樣利用共享存儲器實現(xiàn)處理器間的通信障礙(路障)同步(barrier

synchronization):它在程序中設置一些障礙點,當處理器執(zhí)行到障礙點時暫停,等待所有進程都執(zhí)行到這個障礙點上,以此方法取得同步。10/23/202344APRAM 模型中的計算

:–計算是由一系列用同步障礙點分開的全局相(global

phase)組成的。在各全局相內每個處理器異步地運行其局部程序每個局部程序中的最后一條指令是一條障礙同步指令各處理器均可異步地讀取和寫入全局存儲器,但在同一相(phase)內不允許兩個處理器訪問同一共享單元10/23/202345處理器

1處理器

2處理器

3Phase1同步障礙read

x1read

x2:write

to

Aread

x3:write

to

Bwrite

to

Cread

xn::write

to

Dread

C:read

B:write

to

Bread

A:write

to

Dwrite

to

C::read

D:Phase2同步障礙Phase310/23/2023同步障礙write

to

Bread

A:write

to

B46在APRAM模型上設計的算法的時間復雜性包括以下幾個方面:–假設一個局部操作取為

1 個單位時間–全局讀/寫時間為

d,它表示全局讀/寫的平均時間。該值應隨著處理器的個數(shù)增加而增加。–同步障礙的時間為

B,B 是處理器個數(shù)

p 的非遞減函數(shù)

B

(p)

。–在

APRAM 中常假設:2

d

B

p–設 tph

為全局相內各處理器指令執(zhí)行時間中最長者,則整個程序運行時間

T 應為:T

=

Σ

tph

+

B

*

同步障礙次數(shù)10/23/2023473.

Log

P

模型10/23/202348(Latency

,

overhead

,

gap

,

Processor)1993年D.Culler等人在分析了分布式存儲計算機特點的基礎上,提出了基于點到點通信的多計算機模型----Log

P模型。該模型雖未涉及到網(wǎng)絡的具體結構,但充分說明了互聯(lián)網(wǎng)絡的性能特性:–互連網(wǎng)絡帶寬的限制–通信中可觀的延遲它是

MPP

系統(tǒng)的模型Log

P 模型主要由以下4個參數(shù)來描述:

1)L(Latency)最大延遲:在通信時包含一個或幾個字的一個消息從源節(jié)點傳到目標節(jié)點的時間的上限值。2)o(overhead)開銷:處理器準備發(fā)送或接收一個消息的時間開銷,在這段時間里處理器不能執(zhí)行其它操作。3)g(gap)間隔:一臺處理器發(fā)送或接收一組消息時,兩個消息之間的最小時間間隔,其倒數(shù)即為處理器的通信帶寬。4)P(Processor)節(jié)點數(shù):處理器/存儲器個數(shù),假定每個局部操作需要

1 個單位時間(即一個處理器周期)。10/23/202349Log

P

的參數(shù)示意圖Pj處理器L

oo

gPi下一個消息消息Pk時間發(fā)送并接收一個消息共需2o+L個單位時間; 處理器

Pi 在向處理器10P/2j3/20發(fā)23

送消息后, 在發(fā)送下一個消息之前必須等待

g 個時間50單位。LogP模型的特點–處理機之間異步地工作,通過消息傳遞實現(xiàn)同步;–消息延遲不確定,但延遲不會大于L,即任何消息經(jīng)歷的等待時間是不可預測的,但不會超過L;–Log

P模型支持了計算和通信的重疊;–能夠預測算法的實際運行時間。Log

P模型抓住了網(wǎng)絡與處理機之間的性能瓶頸。消息間隔參數(shù)

g 反映了通信帶寬,當一臺處理機發(fā)送的消息已到達這個容量限度時,再發(fā)送的消息將被阻塞。10/23/202351例2:在通信模式是一棵樹的情況下求和算法假設P=8、L=5、g=4、o=2,我們考慮在時間為28個單位時間內最多可能求和的個數(shù)。P0P4P6P7P2P3P5P110/23/2023524.

BSP 模型

(Bulk

Synchronous

Parallel)10/23/202353BSP 模型是一個分布存儲的

MIMD

計算模型BSP

模型的組成主要包括如下部分:

1)若干個能進行處理和內存操作的處理器,一個用于在處理器之間傳遞消息的路由器,在定義的時間間隔內,對所有處理器進行同步的機制。一般情況下,假設這個全局同步機制是用特殊的硬件支持的。一個

BSP 程序是由一系列超步

(superstep) 組成的。BSP 模型有以下三個重要參數(shù): 1)處理器數(shù)

p路由器吞吐量

g,(也稱為帶寬因子)全局同步之間的時間間隔

L在一個超步中,一個處理機最多發(fā)送

h

個消息或接收

h

個消息。若有

h

個消息,則稱此通信有一個h

關系(h-relation)。g

值的定義方式:–每秒處理機所能完成的局部計算數(shù)與每秒路由器所能傳輸?shù)臄?shù)據(jù)量之比;或–在一個10/23/2023h關系中,傳遞h個消息所需的時間為g.h。54BSP 模型與

APRAM 模型類似,使用障礙同步使整個計算任務以緊同步方式進行各處理器局部計算全局通信障礙同步max+

l1一0/23個/2023超步的執(zhí)行時間:計算時間max

+

gh55BSP 模型的主要特點:–將處理器和路由器分開,即把計算任務和通信任務分開。路由器僅進行點到點的消息傳遞,不考慮互連網(wǎng)絡的拓撲結構;–利用硬件實現(xiàn)全局障礙同步使并行粒度增大(相對

APRAM而言),并能夠實現(xiàn)緊耦合同步并行算法;–兼顧了計算和通信的平衡問題;–硬件可將L設置盡量小----這表示通信帶寬會更寬些,在設計并行算法時應使L盡量大從而提高并行粒度。10/23/2023565.

C3

模型(Computing,

Communication,

Congestion)10/23/2023571994 年S.

E.

Hambrush 等人在分析高性能可擴展的網(wǎng)絡計算機系統(tǒng)特點的基礎上提出了

C3

模型,它適用于粗粒度的并行系統(tǒng)。和

BPS

Log

P 模型相似,

C3

計算模型也將計算劃分為一系列超級步,同步出現(xiàn)在兩個超級步之間,這個同步也是利用障礙同步機制來實現(xiàn)。–擁塞(Congestion):在通信網(wǎng)絡中,當各輸入站的呼叫數(shù)量超過網(wǎng)絡的容量,或超過了網(wǎng)絡處理的能力時,則稱網(wǎng)絡中發(fā)生了擁塞。C3

模型主要由以下幾個參數(shù)來描述:處理器的個數(shù)

p;網(wǎng)絡延遲

h:網(wǎng)絡中任意兩節(jié)點間的距離的平均值;網(wǎng)絡的對分寬度

b:表示網(wǎng)絡的帶寬;啟動時間

s,即建立一個消息時的開銷;消息包的長度

l,即消息包所含字節(jié)數(shù)。消息包是處理機間通信的基本單位。10/23/202358C3模型中用到的一些概念10/23/202359C3

模型中考慮了兩種路由方式:–存儲轉發(fā)路由方式(store-and-forwardmode):它是網(wǎng)絡中信息交換的一種方式。轉發(fā)中心不是將終端發(fā)出的信息立即傳送到接收終端,而是先存儲起來,等待適當?shù)臅r機,選擇空閑的信道,并按信息的優(yōu)先級別轉發(fā)到下一個轉發(fā)中心或接收終端。–蟲孔(蟲蝕)路由方式(wormhole

routing

mode):在平面網(wǎng)絡結構的多處理機系統(tǒng)中進行路徑選擇的一種方法。它把消息分成若干個包,包又分成若干個稱為遷移塊(flit)的基本信息單元。每個包中的遷移塊以流水線方式向前依次傳送。只有包的頭幾個遷移塊含有路徑信息,因而一個包的所有遷移塊必須一個跟著一個,而不能被別的消息包打斷。C3

模型中用到的一些概念10/23/202360C3

模型中考慮了兩種發(fā)送/接收原語:

1)阻塞發(fā)送和接收原語2)非阻塞發(fā)送和接收原語阻塞發(fā)送

(blocking

send) :指一個源處理器從開始發(fā)送一條消息,直到它被目標處理器收到消息,源處理器的發(fā)送操作才結束。非阻塞的發(fā)送

(non-blocking

send) :源處理器只需將要發(fā)送的消息放在發(fā)送緩沖器。非阻塞的發(fā)送不需考慮目標處理器什么時候接收到信息。各種并行計算模型的比較模型屬性PRAMAPRAMLog

PBSPC3體系結構SIMD-SMMIMD-SMMIMD-DMMIMD-DMMIMD-DM計算模式同步計算異步計算異步計算異步計算異步計算同步方式自動同步障礙同步隱式同步障礙同步障礙同步計算粒度細/中粒度中/大粒度中/大粒度中/大粒度粗粒度通信方式共享變量共享變量發(fā)/收消息發(fā)/收消息發(fā)/收消息模型參數(shù)10/23/20231

(單位時間步)d:全局讀/寫時間B:同步時間L:通信延遲

o:通信開銷

g:消息間隔

P:處理器數(shù)p:處理器數(shù)

g:帶寬因子

L:同步間隔l:消息包長度s:發(fā)送開銷

h:通信延61遲由于并行計算機正在處于飛速發(fā)展中,但尚未定型,因此到現(xiàn)在為止,還沒有一個通用的并行計算模型。人們只能將某一類并行機的基本特征抽象出來,形成各種特定的并行計算模型,以便并行算法的設計與理論分析。10/23/202362PRAM 模型是對一類共享的并行機特征抽取,它拋開了通信的干擾,可用于開發(fā)細粒度并行算法;Log

P 模型是對一類分布式并行計算機特征抽取,基于點對點通信的計算模型,集中分析處理機與

網(wǎng)絡之間的瓶頸問題;C3

模型是對一類基于消息傳遞的分布式粗粒度系統(tǒng)特征抽取,集中反映的是網(wǎng)絡擁擠和路由影響。10/23/202363例1_1:在PRAM-EREW計算機上對兩個

N 維向量

A

和B 求內積

s。假設用

p 個處理機完成該任務,并設N/p 是整數(shù),內積的值在

LocalVal

[0] 中。VECTORMUL(PRAM-EREW):Global

N,

i,

A[0..N-1],

B[0..N-1],

LocalVal[0..p-1]Local

jbeginspawn(P0,

P1,

P2,

…,

Pp-1)for

allPi,其中0

≤i≤p-1dobeginLocalVal[i]

=0;for

j

=

i;

j

<

N

step

p

doLocalVal[i]

=

LocalVal[i]

+

A[j]

*

B[j];for

j

=

0

to

?log

p?

-1

doif imod

2j+1

==

0and

i+2j

<pthenLocalVal[i]

=

LocalVal[i]

+

LocalVal[i

+2j

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論