Professional Documents
Culture Documents
Tinh Toan Song Song
Tinh Toan Song Song
Tinh Toan Song Song
a
1
a
2
a
3
.
a
1
a
2
a
n
Chng hn, nu php ton l php cng (+) v u vo l mng s nguyn [3,1,0,4,2], th tng
tin t ca mng l [3,4,4,8,10].
Tng tin t c gi l tin t song song v qut (scan). Tng tin t c nhiu ng dng trong
thc t. V d v nn k t nh sau: gi s ta c mt mng A gm n k t. Ta mun nn cc k t
hoa vo cc v tr u ca mng m vn gi nguyn th t. Trnh t tnh ton th hin trong hnh
di y:
A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9]
4 3 8 2 9 1 0 5 6 3
7 10 10 5 9
17 15 9
32 9
41
Hnh 2.5. Nn cc phn t ca mng l mt ng dng ca Tng tin t.
Bc u tin (bc b) l khi ng mt mng ph kch thc n gm cc phn t 0 v 1. Phn t
T[i] = 0 nu phn t A[i] l k t thng v T[i] = 1 nu A[i] l k t hoa. Tip theo (bc c), ta
tnh tng tin t cc phn t ca mng T. Kt qu ta thu c l A[T[i]] cha cc k t hoa.
Di y l gi m ca thut ton song song tnh tng tin t.
(a) Mng A:
A b C D e F g h I
(b) Mng T:
1 0 1 1 0 1 0 0 1
(c) Mng T (sau khi tnh tng tin t):
1 1 2 3 3 4 4 4 5
(d) Mng A (sau khi c nn):
A b C D e F g h I
A C D F I
PREFIX.SUM (CREW PRAM)
u vo: Danh sch n>0 phn t c lu trong A[0, ...(n-1)]
u ra: Mi phn t A[i]= A[0]+ A[1]+..+ A[i-1]
Cc bin ton cc: n, A[0, ...(n-1)],j
Begin
Spawn(P
0
, P
1
, , P
[n-1]
)
For all P
i
vi (0i[n-1]) do
For j=0 to [log(n)]-1 do
If i - 2
j
0 then
A[i]= A[i]+ A[i-2
j
]
Endif
Endfor
Endfor
End.
phc tp ca thut ton trn tng t nh thut ton tm tng. Th tc spawn c phc tp
l O(log(n)). Vng lp tun t thc hin [log(n)] ln, mi ln lp cn thi gian l hng s. V vy,
phc tp ca thut ton trn l O(log(n)).
Di y l minh ha cc bc thc hin ca thut ton i vi mt mng c 10 phn t:
Hnh 2.6.Tng tin t ca mt mng gm 10 phn t
c. Thut ton song song Xp loi danh sch (List Ranking)
Xt bi ton tnh cc tng hu t (suffix sums) ca i phn t cui cng trong mt danh sch gm
n phn t vi 0 i n. Bi ton tm cc tng hu t l mt bin th (variant) ca bi ton tm
tng cc tin t m ta xt trn vi mng c thay th bi mt danh sch lin kt, v cc
tng c tnh t cui danh sch. Trong trng hp mi phn t trong danh sch l 0 hoc 1, v
ton t kt hp l php cng th bi ton tr thnh bi ton xp loi danh sch.
Mt cch xc nh v tr danh sch l m s lin kt chuyn tip gia cc phn t v lin kt
cui cng trong danh sch. Nh vy, danh sch gm n con tr, vy liu tn ti mt thut ton
duyt danh sch vi thi gian t hn O(n).
Nu ta gn mt b x l vi mi phn t trong danh sch v cc con tr c th di chuyn mt
cch song song, khong cch ti im cui cng ca danh sch c gim mt na bi lnh
next[i]= next[next[i]].
Hnh 2.7.Tm v tr ca mt phn t trong mt danh sch n phn t
V vy, c th ta ch cn O (log(n)) bc nhy l mi phn t trong danh sch c th tr ti
c phn t cui cng. Nu mt b x l b sung vo bin m position[i] lu s ln duyt
qua cc lin kt. Nh vy, v tr danh sch s c xc nh.
Di y l thut ton PRAM xc nh v tr ca mi phn t trong mt danh sch lin kt
n.
Th tc Spawn cn thi gian logn kch hot n b x l hot ng. Thi gian thc hin cc lnh
trong vng lp l hng s v c lp logn ln, nn phc tp ca thut ton song song l
O(logn).
d. Thut ton song song trn hai danh sch sp xp (Merging Two Sorted Lists)
Mt thut ton RAM ti u ti mt thi im to ra danh sch trn gm mt phn t v cn nhiu
nht l n-1 php so snh trn hai danh sch gm n/2 phn t. V vy, thut ton RAM trn hai
danh sch c sp xp thnh mt danh sch c sp xp vi phc tp O(n).
Mt thut ton PRAM c th thc hin cng vic trn vi phc tp O(logn) bng cch gn mi
phn t trong danh sch cho mi b x l. Mi b x l tm v tr cho phn t ca n trong danh
sch cn li bng cch s dng tm kim nh phn. Do ta bit trc ch s ca cc phn t trn
danh sch ca n, v tr ca n trong danh sch trn c th c tnh khi ch s ca n trn danh
sch cn li c tm thy v hai ch s c b sung. Tt c cc phn t c th c chn vo
trong danh sch trn vi thi gian hng s.
Chng trnh gi m di y biu din thut ton PRAM trn hai danh sch :
n gin, trong phin bn ny ca thut ton ta gi s cc gi tr ca hai danh sch khng giao
nhau.
LIST.RANKING (CREW PRAM)
u vo:Cc gi tr trong mng next biu din mt danh sch lin kt.
u ra: Gi tr trong mng position cha khong cch ban u ca mi phn t
t cui danh sch.
Cc bin ton cc: n, position[0, ...(n-1)], next [0, ...(n-1)],j
Begin
Spawn(P
0
, P
1
, , P
n-1
)
For all P
i
vi (0in-1) do
If next[i]= i then position[i]=0
else
position[i]=1
Endif
For j=1 to [log(n)] do
position[i]= position[i]+ position[next[i]]
next[i]= next[next[i]]
Endfor
Endfor
End.
Trn hai danh sch sp xp vo mt danh sch
Nh thng l, cc b vi x l c kch hot ti bc u tin ca thut ton. Trong thut ton
ny ta cn n b x l, mi b x l tm v tr cho mt phn t t hai danh dch ban u. Sau khi
cc b x l c kch hot, chng s xc nh khong ch s m chng tm kim mt cch song
song. Cc b x l gn vi cc phn t trong na thp ca mng (na cha cc gi tr b hn
phn t ang cn tm v tr) s c thc hin tm kim nh phn trn cc phn t trong na cao
ca mng v ngc li.
MERGE.LISTS (CREW PRAM)
u vo: Hai danh sch gm n/2 phn t c sp xp A[1..(n/2)] v
A[(n/2)+1..n] .
u ra: Danh sch A[1..n] c sp xp, c trn t hai danh sch trn.
Cc bin ton cc: n, A[1..n]
Cc bin cc b: x, low, high, index
Begin
Spawn(P
1
, P
2
, , P
n
)
For all P
i
vi (1in) do
/*Mi b x l thit lp bin cho tm kim nh phn*/
If i (n/2) then
Low = (n/2)+1
High = n
else
Low = 1
High = (n/2)
Endif
/*Mi b x l thc hin tm kim nh phn*/
x=A[i]
Repeat
Index=[(low+high)/2]
If x A[index] then
High = index-1
else
Low = index+1
Endif
until low>high
/*a gi tr vo ng v tr trong danh sch trn*/
A[High+i-(n/2)]=x
Endfor
End
Hnh 2.8. Trn hai mng sp xp thnh mt mng sp xp
Mi b x l c duy nht mt gi tr x, mt phn t s c trn. Vng lp repeatuntil thc
hin tm kim nh phn. Khi mt b x l thot khi vng lp th bin high s c gn li gi tr
l ch s ca phn t ln nht trong danh sch cha cc phn t nh hn x.
Xt mt b x l P
i
v gi tr A[i] c gn cho P
i
trong na thp ca danh sch. Gi tr low
cui cng phi nm gia (n/2) v n. phn t A[i] ln hn i-1 phn t trong na thp ca danh
sch. ng thi, n cng ln hn high-(n/2) phn t trn na cao ca danh sch. Do vy, ta s t
A[i] vo danh sch c sp xp sau i+high-(n/2)-1 phn t khc v n c ch s i+high-(n/2).
Trng hp tip theo ta xt b x l P
i
v gi tr A[i] c gn cho P
i
trong na cao ca danh
sch. Gi tr ca bin high phi nm gia 0 v (n/2). Phn t A[i] ln hn i-(n/2)-1 phn t khc
trong na cao ca danh sch v ln ln high phn t trong na thp ca danh sch. Do vy, A[i]
s c t vo danh sch c sp xp sau i+high-(n/2)-1 phn t khc v n c ch s i+high-
(n/2).
Do tt c cc b x l s dng cng mt cch tm v tr cho cc phn t trong danh sch trn, nn
mi b x l cng s dng mt php gn khi kt thc thut ton.
Tng s thao tc c thc hin trn cc danh sch tng t O(n) trong thut ton tun t ln
O(nlogn) trong thut ton song song. Tuy nhin, vi n b x l thc hin song song th phc
tp v thi gian ch cn l O(logn). Vi gi thit (cho cc thut ton PRAM) l s b x l l v
hn th thut ton ny hiu qu ng k. Nhng khi ci t thc t th s lng b x l l c hn,
nn ta phi xem xt chi ph thc t cho thut ton.
2.2 Cc thut ton song song nhn hai ma trn
Phn ny gii thit v cc thut ton song song nhn ma trn c thc hin cho cc m hnh
SIMD trn cc my tnh song song khc nhau. Thut ton song song nhn hai ma trn trn my
A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
1 5 7 9 13 17 19 23
1 2 4 5 7 8 9 11 12 13 17 19 21 22 23 24
2 4 6 8 10 21 23 24
A[9] A[10] A[11] A[12] A[13] A[14] A[15] A[16]
SIMD vi t chc b vi x l theo mng hnh li l O(n); Mt thut ton song song c thit
k cho my SIMD vi cc b x l c t chc theo mng siu khi v mng hon v di chuyn
vi phc tp la O(logn).
2.2.1 Thut ton nhn ma trn tun t
Tch ca ma trn A kch thc l x m vi mt ma trn B kch thc m x n l mt ma trn
C kch thc l x n, m cc phn t ca n c xc nh bi:
C[i,j] =
=
1
1
] , [ * ] , [
m
k
j k B k i A
Mt thut ton tun t nhn hai ma trn cp n c phc tp O(n
3
) v n cn ti n
3
php cng v
n
3
php nhn.
2.2.2 Thut ton nhn ma trn trn my SIMD vi cc b x l c t chc theo
mng hnh li hai chiu (2-D Mesh SIMD).
Cn di ca thut ton: Gentleman ch ra rng nhn hai ma trn cp n x n trn my tnh
SIMD vi cc b x l c t chc theo hnh li 2 chiu cn khng t hn (n) bc nh
tuyn d liu.
nh ngha 2.1: Cho mt mc d liu ban u c sn trn mt b x l trong mt m hnh tnh
ton song song no , v p(k) l s lng ln nht cc b x l m d liu c th chuyn ti
trong k hoc t hn k bc nh tuyn d liu (data rounting steps).
Chng hn, trong my tnh SIMD vi cc b x l c t chc theo hnh li 2 chiu th p(0)=1,
p(1)=5, p(2)=13 v trong trng hp tng qut th p(k)=2k
2
+2k+1.
MATRIX_ MULTIPLICATION()
u vo: Hai ma trn: A[1..m,1..n], B[1..n,1..k].
u ra: Ma trn C[1..m, 1..k] l ma trn tch ca A v B
Begin
For i=1 to m do
For j=1 to k do
Begin
t=0
for h=1 to n do
t=t+A[i,h]*B[h,j]
endfor
C[i,j]=t
End;
Endfor
Endfor
End.
B 7.1. Gi s ta mun nhn hai ma trn A v B kch thc n x n, v mi phn t ca A v B
c lu ng mt ln v khng c b x l no cha nhiu hn mt phn t ca ma trn cn li.
Nu ta b qua s thun tin v truyn thng (broadcasting facility), php nhn hai ma trn A v B
to ra ma trn C yu cu t nht s bc nh tuyn d liu, m p(2s) n
2
.
Chng minh: Xt mt phn t bt k c[i,j] ca ma trn tch. Phn t ny l kt qu ca tng cc
tch ca cc phn t ca hng i ca ma trn A v ct j ca ma trn B. Do vy, s c mt ng i
t cc b x l lu cc phn t ny ti b x l cha kt qu c[i.j]. Gi s l di ng i di
nht nh vy. Ni cch khc, vic to ra ma trn C cn t nht s bc nh tuyn d liu.
Ch rng, cc ng i cng c th c nh ngha l mt tp hp cc ng i c di ln
nht 2s t bt k phn t B[u,v] ti mi phn t A[i,j] no . Do tn ti mt ng i vi di
khng vt qu s i t mt b x l cha phn t B[u,v] n b x l cha C[i,v] v cng c mt
ng i vi di khng vt qu s i t A[i,j] n C[i,v]. V vy, tn ti mt ng i vi
di khng vt qu 2s i t mi phn t B[u,v] n A[i,j]. Tng t nh vy cc ng i ny
xc nh mt tp cc ng i vi di khng vt qu 2s t mi phn t A[u,v] bt k ti mi
phn t B[i,j], vi mi 1 i,j n; n
2
phn t ca ma trn A c lu trong cc b x l ring bit
(mi b x l cha mt phn t). Do tn ti mt ng i vi di khng vt qu 2s i t mt
b x l cha B[u,v], ti cc b x l lu cc phn t ca ma trn A, nn theo nh ngha 2.1
trn ta s c p(2s) n
2
.
nh l 7.1. Nhn ma trn trn my tnh SIMD vi cc b x l c t chc theo hnh li 2
chiu yu cu (n) bc nh tuyn d liu, hoc vi n ln s 0.35n.
Chng minh: T b 7.1, ta c p(2s) n
2
, trn my tnh SIMD vi cc b x l c t chc
theo hnh li 2 chiu th ta c p(s)=2s
2
+2s+1, nn p(2s)=8s
2
+4s+1, do
8s
2
+4s+1 n
2
s
2
+ (s/2)+ 1/8 (n
2
/8)
(s + 1/4)
2
+ 1/16 (n
2
/8)
s sqrt(2n
2
-1)/4 -1/4 0.35n. khi n ln.
Mt thut ton ti u,
Cho mt my tnh SIMD vi cc b x l c t chc theo hnh li 2 chiu c kt ni vng
(wrap-around), th d nhn thy c th a ra mt thut ton s dng n
2
b x l nhn hai ma
trn kch thc n x n vi phc to v thi gian l O(n).
Trong thut ton tun t cn n
3
php nhn, v n
2
b x l c th hon thnh tnh nhn hai ma
trn trong thi gian O(n) th tt c n
2
b x l phi cng thc hin tnh ton ma trn kt qu ti
mi bc. Pha khi to cp pht cc phn t ca ma trn cho cc b vi x l, c minh ha trn
hnh (?). Cc b x l dng i ct j trong mng hnh li cha A[i,j] v B[i,j]. Ch rng, trong
bc khi to ch c n b x l cha mt cp cho php nhn. Tuy nhin, n c th di chuyn ma
trn A v B mi b x l cha mt cp phn t cn c nhn vi nhau (hnh 2.9). Hn na,
mi ln quay ln trn ca cc phn t trong ma trn B v quay tri cc phn t trong ma trn A s
lm cho mi b x l c mt cp phn t mi thc hin php nhn.
Hnh 2.9. Thut ton nhn ma trn trn my SIMD t chc theo hnh li 2 chiu
pha sp xp cc phn t ca thut ton nhn ma trn trn my tnh SIMD vi cc b x l c
t chc theo hnh li 2 chiu. (a) Khi to v phn pht cc cp phn t A[i,j] v B[i,j] cho cc
b vi x l, sau thut ton tin hnh nhn tt c cc cp (A[i,k],B[k,j]) (ch rng ch c cc
b x l P(0,0), P(1,1), P(2,2) v P(3,3) cha cc cp nh vy. (b) thut ton di chuyn mi hng
i ca ma trn A sang bn tri bi j v tr ct. ng thi, di chuyn mi ct j ca ma trn B ln
pha trn bi i v tr hng. (c) ging phn (b), sau khi di chuyn vng quanh (wrap-around), by
gi mi b x l P(i,j) c mt cp phn t nhn.
Ta hy xem cc hnh ng ca mt b x l (hnh ..). Sau khi cc phn t ca hai ma trn A v B
c di chuyn, b x l P(1,2) thc hin cc php nhn v cng tnh C[1,2].
Hnh 2.9. Thut ton nhn ma trn trn my tnh SIMD vi cc b x l c t chc theo hnh li
2 chiu t cch nhn cc bc thc hin ca b x l P(1,2). Cc phn t ca ma trn c di
chuyn. (a) l bc u tin. (b) bc th hai c thc hin sau khi cc phn t ca c quay
vng sang tri v cc phn t ca B c di chuyn ln trn. (c) bc 3 c thc hin sau bc
(b). (d) c thc hin sau bc 3, bc ny b x l P(1,2) tnh xong C[1,2].
Pha u ca thut ton l phn pht v di chuyn cc phn t ca hai ma trn. Pha th hai tnh
tt c cc tch A[i.k]*B[k,j] v tnh tng chng li vi nhau.
2.2.3 Thut ton nhn ma trn trn my SIMD vi cc b x l c t chc theo
mng hnh siu khi (Hypercube SIMD).
nh l 2.2: Cho mt my tnh SIMD vi cc b vi x l c t chc theo hnh siu khi vi
n
3
=3
3q
b x l, thut ton hai ma trn kch thc n x n thc hin trn my tnh ny c phc
tp O(logn) (Dekel et al., 1989).
Chng minh: tng chnh ca gii thut nm ch ci tin chin lc nh tuyn d liu; ch
cn 5q=5logn bc nh tuyn l phn pht cc gi tr d liu ban u qua mt mng cc b
x l v kt hp cc kt qu.
Cc b x l c xem nh mt li (lattice) 3 chiu n x n x n. B x l P(x), vi 0 x 2
3q
-1
c cc v tr a, b, c, s v t trong b nh cc b.
MATRIX_ MULTIPLICATION(2-D MESH SIMD)
u vo: Hai ma trn: A[0..l-1,0..m-1], B[0..m-1,0..n-1].
u ra: Ma trn C[0..l-1, 0..n-1] l ma trn tch ca A v B
Bin ton cc: n,k
Bin cc b: a,b,c
Begin
/*Di chuyn ma trn*/
For k=1 to n-1 do
For all P(i,j) where 1 i,j n do
If i > k then
a = east(a)
endif
If i > k then
b = south(b)
endif
Endfor
Endfor
/*tnh tch */
For all P(i,j) where 1 i,j n do
c = a *b
Endfor
For k=1 to n-1 do
For all P(i,j) where 1 i,j n do
a = east(a)
b = south(b)
c = c + a*b
endfor
Endfor
Endfor
End.
Khi thut ton song song bt u thc hin. Trong sut pha u A[i,j] v B[i,j] vi 0 i,j n-1,
c lu trong cc bin a v b ca b x l P(2
q
*i + j) (xem gi m). Sau khi thut ton song
song hon thnh th ma trn C[i,j] vi 0 i,j n-1, c lu trong bin c ca b x l P(2
q
*i + j)
Thut ton c 3 pha. Trong pha u, A[i,j] v B[i,j] c phn pht cho cc b x l cn li. Sau
vng lp for th nht th:
[2
2q
*k + 2
q
*i +j] a = A[i,j]
[2
2q
*k + 2
q
*i +j] b = B[i,j]
Vi mi 0 k n-1,
Sau vng lp for th hai th:
[2
2q
*k + 2
q
*i +j] a = A[i,k] vi 0 j n-1
Sau vng lp for th ba th:
[2
2q
*k + 2
q
*i +j] a = B[k,j] vi 0 i n-1
C n
3
php nhn c thc hin v s dng n
3
b x l. Do qu trnh phn pht hon thnh trong
pha u tin th tt c cc tch A[i,k] * B[k,j] c th c hon thnh mt cch ng thi trong
pha th 2. Pha th 3 ca thut ton thc hin vic nh tuyn v tnh tng cc php nhn.
C hai hm mi l BIT v BIT.COMPLEMENT c s dng trong thut ton ny. Hm BIT
nhn u vo l hai s nguyn m v l, tr li gi tr l bt th l trong biu din nh phn ca m.
Hm BIT.COMPLEMENT nhn u vo l hai s nguyn m v l, tr li gi tr l mt s nguyn
c sinh ra do php b bt th l trong biu din nh phn ca m.
Di y l cc v d v hm BIT v BIT.COMPLEMENT
BIT (9,0)=1 BIT.COMPLEMENT(9,0)=8
BIT (9,1)=0 BIT.COMPLEMENT(9,1)=11
BIT (9,3)=1 BIT.COMPLEMENT(9,3)=1
BIT (9,4)=0 BIT.COMPLEMENT(9,4)=25
BIT (9,5)=0 BIT.COMPLEMENT(9,5)=41
Thut ton song song y c trnh by di y.
V d minh ha (hnh ?) cc bc ca thut ton khi thc hin nhn hai ma trn kch thc 2 x 2
trn mt my tnh SIMD vi cc b vi x l c t chc theo hnh siu khi vi 8 b x l.
Vng lp for u tin yu cu 2q bc nh tuyn d liu. Ba vng lp cui yu cu q bc nh
tuyn d liu cho mi vng. Do , tng s cn 5q bc nh tuyn d liu l nhn hai ma
trn trn mt my tnh SIMD vi cc b vi x l c t chc theo hnh siu khi. ng thi,
thut ton cng s dng 1 bc thc hin php nhn v q bc thc hin php cng. T ta c
phc tp ca thut ton song song nhn ma trn thc hin trn mt my tnh SIMD vi n
3
b
x l c t chc theo hnh siu khi l O(q) =O(logn).
MATRIX.MULTIPLICATION (Hypercube SIMD)
Tham s: q {kch thc ma trn l 2
q
X 2
q
}
Bin ton cc: l
Bin cc b: a,b,c,s,t
Begin
{Pha 1: phn pht cc phn t A[i,j] v B[i,j]}
For l = 3q-1 downto 2q do
For all P
m
vi BIT(m,l)=1 do
t = BIT.COMPLEMENT(m,l)
a = [t]a
b = [t]b
endfor
endfor
For l = q-1 downto 0 do
For all P
m
vi BIT(m,l) BIT(m,2q+l) do
t = BIT.COMPLEMENT(m,l)
a = [t]a
endfor
endfor
For l = 2q-1 downto q do
For all P
m
vi BIT(m,l) BIT(m,q+l) do
t = BIT.COMPLEMENT(m,l)
b = [t]b
endfor
endfor
{Pha 2: thc hin cc php nhn song song}
For all P
m
do
c = a x b
endfor
{Pha 3: tnh tng}
For l = 2q to 3q-1 do
For all P
m
do
t = BIT.COMPLEMENT(m,l)
s = [t] c
c= c+s
endfor
endfor
End.
Mt v d:
Hnh 2.10. Thut ton nhn ma trn trn my SIMD siu khi
2.2.4 Thut ton nhn ma trn trn my a b x l.
Bi ton nhn ma trn th hin y yu t song song ha trn my tnh a b x l. Trong
thut ton nhn ma trn tun t, ba vng lp For c th song song ha c. iu ny pht sinh
mt cu hi th v: c phi tt c cc vng lp (v cc vng lp lng nhau (nested loops)) c th
song song ha c khng?.
Trc ht, ta tm hiu mt khi nim lin quan n hiu sut ca cc h thng song song: hon
thnh cng vic cng tc (grain size).
hon thnh cng vic cng tc l khi lng cng vic c thc hin qua s tng tc
(interations) gia cc b vi x l. Do mc tiu ca ta l gim cc chi ph (overhead) do qu trnh
song song gy ra, bt c khi no hon thnh cng vic cng tc cng ln cng tt.
Xt bi ton nhn hai ma trn, ta c th song song vng lp vi j hoc vng lp vi i m khng b
nh hng bi s ph thuc d liu t vng lp trong cng (innermost loop). Nu ta song song
ha vng lp j, thut ton song song thc hin n ln ng b (mi ln lp l mt ln ng b), v
hon thnh cng vic cng tc ca on m song song l O(n
2
/p). Nu ta song song vng lp i,
thut ton song song thc hin 1 ln ng b, v hon thnh cng vic cng tc ca on m
song song l O(n
3
/p). i vi my tnh a b x l truy cp b nh ng b (UMA
multiprocessors), th vng lp song song i s thc hin nhanh hn.
Thut ton song song nhn ma trn cho my tnh a x l truy cp b nh ng b c trnh by
di y.
Ta hy tnh phc tp ca thut ton trn. Mi tin trnh tnh n/p hng ca ma trn C. Thi gian
cn thit tnh mt hng l O(n
2
). Cc tin trnh ng b chnh xc mt ln, chi ph ng b l
O(p). V vy phc tp ca thut ton song song ny l O(n
3
/p + p). Ch rng, v ch c n
hng, nn c nhiu nht n tin trnh c th c thc hin trong thut ton ny. Nu ta b qua kh
nng tranh chp b nh (memory contention), th tc (speedup) s tim cn n tuyn tnh.
Trong thc t liu ta c th b qua thi gian truy cp b nh?. iu ny c th c khi thc hin
thut ton trn my tnh a b x l truy cp b nh ng b. Trn my tnh a b x l truy cp
b nh ng b th khong cch ca tt c cc nh trong b nh ton cc ti cc b x l l nh
nhau.
Mt phng php khc c th ci tin thut ton trn l nhn ma trn khi (block matrix
multiplication). Gi s A v B l hai ma trn kch thc n x n vi n=2k th mi ma trn A hoc B
c coi nh mt khi gm 4 ma trn con kch thc k x k:
A = ( A
11
A
12
) v B = ( B
11
B
12
)
A
21
A
22
B
21
B
22
Khi , ma trn kt qu C s c xc nh nh sau:
C = ( C
11
C
12
) = ( A
11
B
11
+
A
12
B
21
A
11
B
12
+
A
12
B
22
)
C
21
C
22
A
21
B
11
+
A
22
B
21
A
21
B
12
+
A
22
B
22
MATRIX_ MULTIPLICATION(UMA MULTIPROCESSORS)
Bin ton cc:
n,
A[0..n-1,0..n-1], B[0..n-1,0..n-1], C[0..n-1,0..n-1]
Bin cc b: i,j,k,t
Begin
For all P
m
(1 m p) do
For i =m to n step p do
for j=1 to n do
t=0
for k=1 to n do
t=t+A[i,k]*B[k,j]
endfor
C[i,j]=t
Endfor
Endfor
End.
Nu ta gn cc process thc hin tnh cc ma trn khi, th s lng php nhn v cng v c
d liu t b nh trn mi ma trn khi s tng. Chng hn, c p=(n/k)
2
tin trnh, th php nhn
ma trn c thc hin bi vic chia A v B thnh p khi kch thc k x k. Mi khi 2k
2
ln c
b nh (fetches), k
3
php cng, v k
3
php nhn. S cc tho tc tnh ton trn mt ln truy xut
b nh s tng t 2, trong thut ton trc ln k=n/ p trong thut ton ny, y l mt s ci
tin ng k. Di y l mt v d v thut ton nhn ma trn hng khi.
Hnh 2.11. V d minh ha thut ton nhn ma trn khi.
Hnh 2.12. Tc ca thut ton nhn ma trn.
2.3 Cc thut ton sp xp song song.
Sp xp l mt trong nhng bi ton c bn nht ca khoa hc my tnh. Trong nhiu bi ton tm
kim thng tin yu cu tp d liu phi c sp xp trc khi tm kim tng hiu qu tm
kim. Sp xp c ngha quan trng i vi cc nh thit k thut ton song song: n c s
dng thng xuyn thc hin cc php hon v d liu tng qut trn my tnh vi cc b nh
phn tn. Cc thao tc di chuyn d liu ny c th c s dng gii cc bi ton trong l
thuyt th, hnh hc gii tch, v x l nh vi thi gian ti u hoc cn ti u.
c nhiu kt qu trong nghin cu pht trin cc thut ton sp xp song song m ta s tho
lun trong cc phn sau nh: cc thut ton sp xp song song trn my tnh b x l mng, my
tnh a b vi x l, v a my tnh. Tt c thut ton ny c gi l sp xp trong. Ngha l,
chng sp xp cc mng c kch thc nh hn hoc va vi b nh chnh. ng thi, cc thut
ton ny sp xp bng cch so snh tng cp phn t.
2.3.1 Sp xp bng lit k (enumeration sort) v cn di (lower bounds) ca sp
xp song song.
a. Sp xp bng lit k:
Bi ton c pht biu nh sau: cho mt mng gm n phn t a
0
, a
1
,.., a
n-1
vi th t c
xc nh. i vi 2 phn t a
i
, a
j
th c cc trng hp sau: a
i
< a
j
, a
i
=a
j
, v a
i
>a
j
. Mc tiu ca
sp xp l tm mt hon v (t0, t1,, tn-1) sao cho a
t0
a
t1
,.., a
tn-1
Di y l thut ton sp xp theo lit k:
Mt tp gm n phn t c th c sp xp trong thi gian O(logn) vi n
2
b x l trn mt my
tnh m hnh PRAM CRCW trong ghi ng thi vo cng mt v tr lm cho tng cc gi tr
c gn. Nu thi gian kch hot cc b x l khng tnh n th thi gian thc hin thut ton
l hng s.
b. Cn di ca sp xp song song:
trn ta ch ra rng sp xp c th c thc hin trong thi gian l hng s nu c b x
l v mt m hnh tnh ton song song mnh (nh mt phin bn ca PRAM). Vy cn di
sp xp song song trn mt m hnh tnh ton song song hp l l g?. Trong phn ny ta i
tm cn di ca cc thut ton sp xp song song da trn my tnh vi cc b x l c t
chc theo mng hnh li 1 chiu, 2 chiu v mng hon v-di chuyn.
nh l 2.3-1: Gi s ta cn sp xp n phn t trn mt my tnh mng cc b x l c t chc
nh mt mng hnh li 1 chiu. V gi s rng trc v sau khi sp xp cc phn t c phn
pht u (evenly distributed) vi mi phn t trn mt b x l. Th cn di ca phc tp v
thi gian l O(n).
Chng minh: rng phn i ca mt mng hnh li mt chiu vi n nt l 1. Gi s rng, cc
v tr c sp xp ca tt c cc phn t ban u trn mt bn ca mng phn i (bisection). Th
tt c n phn t phi i qua 1 lin kt sang na bn kia. Do ti mt thi im mt lin kt ch
c th cha mt phn t, s bc cn i ch (swap) cc phn t qua hai na ca mng t nht
l n. V vy, cn di ca phc tp ca bt k thut ton sp xp no c thc hin trn my
tnh vi cc b x l c t chc theo mt mng hnh li 1 chiu l O(n).
nh l 2.3-2: Gi s ta cn sp xp n phn t trn mt my tnh mng cc b x l c t chc
nh mt mng hnh li 2 chiu. V gi s rng trc v sau khi sp xp cc phn t c phn
pht u (evenly distributed) vi mi phn t trn mt b x l. Th cn di ca phc tp v
thi gian l O( n ).
ENUMERATION SORT(SPECIAL CRCW PRAM)
Tham s: n
Bin ton cc: A[0.. n-1], Position[0..n-1], Sorted[0..n-1] .
Begin
Spawn(P
i,j
for all 0 i,j n-1)
For all P
i,j
where 0 i,j n-1 do
Position[i]=0
If a[i] < a[j] or (a[i] =a[j] and i <j) then
Position[i]=0
endif
endfor
For all P
i,0
where 0 i n-1 do
Sorted[Position[i]] = A[i]
endfor
End;
Chng minh: rng phn i ca mt mng hnh li 2 chiu vi n nt khng vt qu n .
Gi s rng, cc v tr c sp xp ca tt c cc phn t ban u trn mt bn ca mng phn
i (bisection). Th tt c n phn t phi i qua 1 hoc khng nhiu hn n lin kt sang na
bn kia. Do ti mt thi im mt lin kt ch c th cha mt phn t, s bc cn i ch
(swap) cc phn t qua hai na ca mng t nht l n/ n . V vy, cn di ca phc tp ca
bt k thut ton sp xp no c thc hin trn my tnh vi cc b x l c t chc theo
mt mng hnh li 2 chiu l O(n/ n )= O( n ).
nh l 2.3-3: Gi s ta cn sp xp n = 2
k
phn t trn mt my tnh mng cc b x l c t
chc theo mt mng hon v-di chuyn . V gi s rng trc v sau khi sp xp cc phn t
c phn pht u (evenly distributed) vi mi phn t trn mt b x l. Th cn di ca
phc tp v thi gian l O(logn).
Chng minh: Gi s v tr c sp xp ca mt phn t ban u nt 0 l nt n-1. Chuyn
phn t t nt 0 n nt n-1 cn t nht logn thao tc hon v v t nht logn-1 thao tc di
chuyn. V vy cn di bt k thut ton sp xp no da trn mng hon v di chuyn cng c
phc tp khng vt qu O(logn).
2.3.2 Sp xp song song i ch chn l (odd-even transposition) .
Sp xp i ch chn l c thit k cho my tnh mng cc b x l trong cc b x l c
t chc trong mt mng hnh li 1 chiu.
Gi s rng A=( a
0
, a
1
,.., a
n-1
) l mt tp n phn t cn c sp xp, vi n l s chn. Mi b x
l c hai bin cc b t v a, trong a l mt phn t ca mng A v t l bin cha gi tr c
ly t b x l bn cnh.
Thut ton thc hin n/2 ln lp, mi ln lp gm hai pha:
Pha u c gi l i ch l chn (odd-even exchange), gi tr a trn mi b x l c s hiu l
(tr b x l th n-1) c so snh v hon v (nu cn) vi gi tr nm trn b x l k tip. Do
vy b x l c s hiu nh s lu gi tr nh hn. Pha th hai c gi l i ch chn l, trong
gi tr a trong mi b x l c s hiu chn c so snh v hoan v (nu cn) vi gi tr ang
c lu b x l k tip v do b x l c s hiu nh s lu gi tr nh hn. Sau n/2 ln
lp th tt c cc gi tr s c sp xp.
V d v thut ton song song hon v chn l:
Ch s 0 1 2 3 4 5 6 7
Mng ban u G H F D E C B A
Sauk hi hon v l chn G F < H D < E B < C A
Sau khi hon v chn l F < G D < H B < E A < C
Sau khi hon v l chn F D < G B < H A < E C
Sau khi hon v chn l D < F B < G A < H C < E
Sau khi hon v l chn D B < F A < G C < H E
Sau khi hon v chn l B < D A < F C G E < H
Sau khi hon v l chn B A < D C < F E < G H
Sau khi hon v lchn l A < B C < D E < F G < H
nh l 2.3-4: phc tp ca thut ton sp xp n phn t trn my tnh mng cc b x l
trong cc b x l c t chc trong mt mng hnh li 1 chiu s dng sp xp hon v
chn l l O(n).
Chng minh: Chng minh da trn mt thc t l vi i ln lp bn ngoi ca vng lp for, khng
phn t no di chuyn qu n-2i v tr so vi v tr cui cng (v tr c sp xp). Do vy n/2
ln lp l sp xp cc phn t v phc tp v thi gian l O(n) vi n b vi x l.
ODD-EVEN TRANSPOSITION SORT(ONE DIMENTIONAL MESH)
Tham s: n
Bin ton cc: i.
Bin cc b: a {phn t cn sp}
t {phn t ly t b x l bn cnh}
Begin
Spawn(P
i
for all 0 i, n-1)
For i=1 to n/2 do
For all P
i
where 0 i n-1 do
If j<n and odd(j) then /*hon v l chn*/
t = successor(a)
successor(a) = max (a,t)
a = min(a,t)
endif
If even(j) then /*hon v chn l*/
t = successor(a)
successor(a) = max (a,t)
a = min(a,t)
endif
endfor
endfor
End.
T nh l 2.3-1 th thut ton sp xp hon v chn l l mt thut ton ti u.
2.3.3 Sp xp song song trn bitonic (bitonic merge)
Thut ton sp xp song song trn Bitonic (c xut bi Batcher,1968) l thut ton c
phc tp O(log
2
n). Trc ht, ta tm hiu mt s khi nim s s dng trong thut ton.
a. Cc mng so snh (comparation networks)
Cc mng sp xp (sorting networks) l cc mng so snh m chng lun so snh cc u vo ca
chng. Mt mng so snh bao gm cc dy dn (wires) v cc b so snh. Mt b so snh
(comparator) l mt thit b gm 2 u vo a v b, v 2 u ra av b, thc hin nh sau:
a = min (x,y)
b = max(x,y)
So snh- i ch (compare-exchange) l hai gi tr u vo ca b so snh c th i ch nu cn
thit chng c th t ng.
Nu k c th t ca u ra th ta c hai loi b so snh: b so snh t b n ln (low-to-high) v
b so snh t ln n b (high-to-low). Hnh di minh ha hai b so snh trn:
Hnh 2.13. a B so snh nh n ln; b. B so snh ln n b.
Thi gian thc hin thao tc so snh (tnh a v b) l hng s. Mt dy dn c th truyn mt gi
tr t ni ny n ni khc. Cc dy dn c th kt ni u ra ca b so snh ny vi u vo ca
b so snh khc. Mt mng sp xp gm n dy dn cha n gi tr u vo cn c sp xp (a
1
,
a
2
, ..,a
n
), v n dy dn u ra (b
1
, b
2
, ..,b
n
) l kt qu ca vic sp xp n u vo.
Hnh di y l mt minh ha v mt mng so snh.
Mng so snh ny gm 4 dy dn cha 4 u vo v 5 b so snh A, B, C, D v E.
b. Dy bitomic (bitonic sequence)
Mt dy bitonic l mt dy a
1
, a
2
, ..,a
n
sao cho:
1) tn ti mt ch s i vi 1 i n sao cho dy con a
1
, a
2
, ..,a
i
l dy n iu tng v dy con a
i
,
..,a
n
l dy n iu gim, hoc:
2) sau mt s bc thc hin php quay (tri hoc phi) th 1) tha mn.
Nu nhn th ca mt dy bitonic th n s gm mt im cao nht (peak) v mt im thp
nht (valley).
Di y l mt vi v d v dy bitonic:
Hnh 2.14. Ba dy u tin l cc dy bitonic, dy cui cng khng phi l bitonic.
Cc dy: (1,4,6,8,3,2), (6,9,4,2,3,5) v (9,8,3,2,4,6) l cc dy bitonic.
Mt bc so snh- i ch (compare-exchange) c th chia mt dy bitonic thnh hai dy bitonic
nh b 2.3 di y:
B 2.3: Nu n l chn, th n/2 b so snh l chuyn mt dy bitonic gm n phn t a
1
,
a
2
, ..,a
n
thnh hai dy bitonic vi mi dy c n/2 phn t:
min(a
1
, a
n/2+1
), min(a
2
, a
n/2+2
) , min(a
n/2
, a
n
)
v
max(a
1
, a
n/2+1
), max (a
2
, a
n/2+2
) , max (a
n/2
, a
n
)
sao cho khng c phn t no trong dy u tin ln hn bt k phn t no trong dy th 2.
Chng minh: Hnh (a) di y l mt dy bitonic trc khi c chia i.
Hnh 2.15. (a). dy bitonic ban u; (b) dy c na u v na cui giao nhau; (c). cc gi tr b
nht; (d). cc gi tr ln nht; (e). Dy c bin i thnh 2 dy bitonic.
Mt dy bitonic c th c phn chia tr thnh hai dy con.
Theo nh ngha, dy ban u c nhiu nht mt im cao nht v mt im thp nht. Ta s s
dng n/2 b so snh so snh mi phn t na u ca dy vi phn t tng ng ca dy th
2.
Ta s chng minh bng phn chng ch ra rng khng c phn t no trong na u tin ca
dy ln hn phn t bt k trong na cn li. Nu tn ti mt phn t trong na u tin ca dy
ln hn mt phn t no trong na cn li th gi tr nh nht c tr v t mt b so snh s
ln hn mt gi tr ln nht tr v t mt b so snh khc. Nu iu ny ng, th dy khng giao
nhau ban u s cha hai nh cao nht (peak) v hai y thp nht (valley) v dn ti dy ban
u khng phi l dy bitonic, v dn ti mu thun. Mu thun cho ta kt lun khng c phn
t no trong na u tin ca dy ln hn phn t bt k trong na cn li l ng.
Hnh 2.15. Minh ha chng minh b .
Cho mt dy bitonic, mt bc so snh v i ch (compare-exchange step) s chia i dy thnh
2 na dy bitonic c di bng nhau..
Hnh 2.16. Dng qui t nhin ca sp xp trn bitonic.
p dng bc ny mt cch qui s sinh ra dy c sp xp. Ni cch khc, cho trc mt
dy bitonic vi n=2
k
phn t vi k>0 th cn k bc so snh v i ch sp xp dy bitonic
ban u.
nh l: Mt dy gm n=2
k
phn t cha c sp xp c th c sp xp bng cch s dng
mt mng so snh gm 2
k-2
k(k+1) b so snh vi phc tp O(log
2
n) (Batcher, 1968).
Chng minh: Sp xp trn bitonic nhn u vo l mt dy bitonic v bin i n thnh mt dy
c sp xp. Dy sp xp c th c xem nh mt na ca dy bitonic. Nu mt dy bitonic c
di 2
m
c sp xp theo th t tng dn, trong khi dy lin k vi di 2
m
c sp xp
theo th t gim dn, th sau m bc so snh v i ch s kt hp chng thnh dy 2
m+1
bitonic.
Mt dy gm n phn t cn sp xp c th c xem nh n dy cn di 1 hay n/2 dy bitonic
di 2. V vy, ta c th sp xp dy bt k bng vic trn lin tip chng tr thnh cc dy
bitonic c di ln hn. Cho mt mng n=2
k
phn t cha c sp xp, v mt mng so snh
vi k(k+1)/2 mc. Mi mc cha n/2= 2
k-1
b so snh. Th tng s cn 2
k-1
* k(k+1)/2 =
2
k-2
k(k+1) b so snh. Nu thc hin song song th mi mc cn thi gian l hng s. Tng s
mc l k(k+1)/2 =logn(logn+1) /2 nn thut ton c phc tp O(log
2
n).
Hnh 2.17. Cn 7 bc so snh v i ch sp xp trn mt dy bitonic 128 phn t.
Di y l mt v d minh ha v mt dy cc thao tc trn bitonic sp xp mt danh sch
gm 16 phn t.
Hnh 2.18. Sp xp trn bitonic cho mt dy bitonic gm 16 phn t (theo thut ton Batcher) .
Mi mc th biu din mt bc ca qu trnh sp xp. Cc phn t cha c sp xp mc
u tin. Sau logn ln lp th ton b n phn t c sp xp. Trong trng hp ny, n=128 v
logn=7.
Hnh di minh ha chi tit qu trnh ny:
Hnh 2.19. Qu trnh sp xp 128 phn t qua 7 bc lp so snh v i ch.
Trong hnh 2.19, sau bc th 7, ton b 128 phn t c bin i thnh mt dy bitonic, v
logn ln trn t cc dy bitonic con hon thnh vic sp xp.
Hnh di y minh ha thm mt v d na v sp xp trn bitonic s dng cc b so snh b-
n-ln hoc b so snh ln-n-b.
Hnh 2.20. Sp xp trn bitonic trn mt dy gm 8 phn t.
c. Sp xp trn bitonic trn mng di chuyn hon v (Shuffle-Exchange)
nh l 2.3: Mt dy cha c sp xp gm n=2
k
phn t c th c sp xp trong thi gian
O(log
2
n) vi mt mng 2
k-1
[k(k-1)+1] b so snh trn mng di chuyn hon v (Stone, 1971).
Stone nhn thy rng b sp xp ca Batcher lun lun so snh cc phn t vi ch s khc nhau
chnh xc mt bit trong biu din nh phn ca chng. Ta nh li rng mt mng di chuyn hon
ho (perfect shuffle) nh tuyn phn t v tr i ti v tr c tm thy bi quay tri mt bt
trong biu biu din nh phn ca i. V vy, hai ch s vi biu din nh phn khc nhau chnh xc
mt bt c th di chuyn n u vo ca cng mt b so snh bng vic thc hin mt s bc di
chuyn.
Hnh di y minh ha trn bitonic thc hin trn mng di chuyn hon v.
Hnh 2.21. Sp xp dy bitonic gm 16 phn t trn mng di chuyn hon v (theo thut ton Stone)
Khc vi thut ton Batcher, cc kt ni ca thut ton Stone a dang v bin i theo tng bc.
Mt sp xp ton b s c hon thnh vi cc lin kt di chuyn hon v.
C hai gii thut u cn ti k bc sp xp 2
k
phn t, nhng trong bc th i ca thut ton
Batcher trn cn i bc, cho tng s k(k+1)/2 bc. Thut ton Stone cn k(k-1)+1 bc.
sp xp mt dy gm 8 phn t th cn thm mt thao tc ln lp th hai xem hnh (10-14).
Hnh 2.22. Sp xp trn bitonic cho 8 phn t trn mng di chuyn hon v.
Mt s bin th ca mng di chuyn hon v nh mng di chuyn hon ho ca Sedgewick, trong
cc kt ni gia cc b so snh ging nhau trn tt c cc bc. Ch cn mt tng cha cc b
so snh l sp xp nh hnh di y:
Hnh 2.23. Mt my sp xp da trn mng kt ni di chuyn hon ho.
Gii thut song song sp xp bitonic ca Batcher c trnh by di dng gi m nh sau:
Mt vn m thut ton phi gii quyt l xc nh cp phn t cn so snh s c sp xp t
b n ln hay t ln n b. Thut ton Stone s dng mt vc t mt n M kiu sp xp
c thc hin bi tng phn t x l. Gi tr 0 tng ng vi b so snh (+) (t b n ln) v
gi tr 1 tng ng vi b so snh (-) (t ln n b).
Di y l th tc COMPARE-EXCHANGE(a,m)
BITONIC-MERGE SORT(SHUFFLE-EXCHANGE PROCESSOR ARRAY)
Tham s: n
Bin ton cc: j,k
Bin cc b: a {phn t cn sp}
m,r {bit mt n v bt c dng tnh bt mt l }
Begin
{Tnh gi tr ca mt n M}
For all Pi where 0 i n-1 do
r = i mod 2
m = r
endfor
For i=1 to logn do
For all Pi where 0 i n-1 do
m = m r {exclusive OR}
shuffle(m) = m
endfor
endfor
{sp xp}
COMPARE-EXCHANGE(a,m)
For k=1 to logn -1 do
For all Pi where 0 i n-1 do
shuffle(r) = r
m = m r {exclusive OR}
For j=1 to logn k-1 do
shuffle(a) = a
shuffle(m) = m
endfor
endfor
For j=logn-k to logn do
For all Pi where 0 i n-1 do
shuffle(a) = a
shuffle(m) = m
endfor
COMPARE-EXCHANGE(a,m)
endfor
endfor
end.
Thut ton ny cn logn (logn +1) /2 bc so snh hon v v logn (logn-1) bc di chuyn ca
vc t A, v 2 logn-1 bc di chuyn ca vc t M v R. phc tp ca thut ton l O(log
2
n).
d. Sp xp trn bitonic trn mng hnh li 2 chiu (2-D Mesh network)
nh l: Tn ti mt thut ton sp xp n = m
2
= 2
k
phn t trn my tnh mng cc b x l c
t chc theo mng hnh li hai chiu c phc tp O( n ).
Chng minh: Ta c th s dng mt bin th ca thut ton trn bitonic ca Batcher c
trnh by phn trn thc hin trn my tnh mng cc b x l c t chc theo mng hnh
li hai chiu. Vi n = 2
k
phn t, sp xp trn bitonic gm k ln lp, ln lp th i c i bc so
snh- i ch. Mi bc so snh- i ch cn hai ln nh tuyn d liu: ln nh tuyn th nht
l mang hai phn t so snh vi nhau, v ln nh tuyn th hai l phn pht chng ng v tr.
Di y l hnh nh minh ha thut ton sp xp trn bitonic vi 16 phn t trn my tnh mng
cc b x l c t chc theo mng hnh li hai chiu ( xut bi Knuth, 1973).
COMPARE-EXCHANGE(a,m)
Tham s: a {phn t ca dy cn sp xp}
m {bt mt n ch th t sp xp }
t {gi tr ly t b x l k tip}
Begin
For all P
i,j
where 0 i,j n-1 do
If even(i) then
t = exchange (a)
If m=0 then
Exchange(a) = max (a,t)
a = min (a,t)
else
Exchange(a) = max (a,t)
a = min (a,t)
endif
endif
endfor
End.
Hnh 2.24. Mng sp xp trn bitonic vi 16 phn t trn my tnh mng cc b x l c t chc
theo mng hnh li hai chiu.
Cc mi tn th hin cc b so snh- i ch. thc hin mt ln so snh- i ch, phn t v
tr u v ui ca mi tn s c so snh, phn t nh hn s c a ln u mi tn v phn
t ln s c a n ui ca mi tn.
Ch rng cc phn t cc v tr ch khc nhau mt bt c trng s nh nht v chng c so
snh trong mi ln lp. vng lp cui, cc phn t vi trng s bt ln nht khc nhau s c
so snh. Thut ton hiu qu nht khi: bt i c trng s nh hn bt j, mt bc so snh- i ch
i vi phn t cha bt i yu cu d liu t di chuyn hn i vi phn t cha bt j. Mt cch
tha mn iu kin ny l s dng cch di chuyn hng l chnh (shuffled row-major addressing
schema). Hnh di minh ha mt mng hnh li 4 x 4 c s dng cc thao tc di chuyn trn
hnh vung con ca mng hnh li. iu ny lm gim i cc thao tc di chuyn gia cc b x
l.
Hnh 2.25. Cc hm nh x cc phn t cn sp xp vo mng hnh li 2 chiu.
Hng di chuyn ca ti mi bc so snh- trao i ph thc vo ch s ca tng b x l. Hnh
di y m t sp xp 16 phn t trn mng hnh li kch thc 4 x 4. Trong trng hp tng
qut, sp xp n=m
2
=2
k
phn t bng thut ton ny cn logn pha.
Hnh 2.26 Cc bc nh x cc phn t cn sp xp vo mng hnh li 2 chiu.
Tng s cc thao tc di chuyn cn:
Kt qu trn bng O( n ). Tng s cc bc so snh l
=
n
i
i
log
1
= O (log
2
n)
V vy, trong trng hp xu nht, sp xp trn bitonic c phc tp O( n ).
d. Sp xp trn bitonic trn mng siu khi (Hypercube)
Sp xp trn bitonic lun lun so snh m cc ch s khc nhau ng mt bt. Ta nh li rng
trong mng siu khi th cc b vi x l c ch s khc nhau ng mt bt c kt ni vi nhau.
Chnh v vy, ta c th d dng trn bitonic trn m hnh ny vi cc b vi x l thay th cc b
so snh. Thay v tng cp phn t thao tc trn cc b so snh, cc b x l cnh nhau s so snh
v trao i d liu cho nhau.
Di y l gi m ca thut ton sp xp n= 2
m
phn t trn mng siu khi.
phc tp ca thut ton l O (m
2
) =O (log
2
n) vi n=2
m
b x l.
2.3.4 Sp xp song song ta trn Quicksort
Quicksort l gii thut sp xp qui da trn cch tip cn chia tr (divide and conquer).
Quicksort thc hin cc bc lp chia mt mng thnh hai mng nh hn v mt phn t kha
(medium). Trong , mt mng con cha cc phn t b hn (hoc bng) phn t kha, mng con
cn li cha cc phn t ln hn (hoc bng) phn t kha. Phn t kha c t ng v tr.
Qu trnh ny c tip tc mt cch qui.
Phn ny gii thiu v hai gii thut song song da trn gii thut sp xp Quicksort l
Quicksort song song (Parallel Quicksort) v Siu Quicksort (HyperQuicksort).
a. Thut ton Quicksort song song (Parallel Quicksort).
rng trong gii thut Quicksort tun t th sau khi phn hoch thnh hai mng con, th hai
mng con ny c th c sp xp c lp vi nhau.
Gi s ta c mt s tin trnh, mi tin trnh c thc hin trn b x l, thc hin gii thut
song song. Cc phn t cn sp xp c lu vo mt mng cha trong b nh ton cc. Mt
ngn xp trong b nh ton cc cha cc con tr tri v phi ca mng con cha c sp xp.
Khi mt tin trnh rnh ri, n s ly cc gi tr con tr tri v phi ca mng con khi ngn xp
BITONIC MERGE SORT(HYPERCUBE PROCESSOR ARRAY)
Bin ton cc: d {khong cch gia cc phn t cn so snh}
Bin cc b: a {mt trong cc phn t cn sp xp }
t {gi tr ly t b x l k tip}
Begin
For i = 0 to m-1 do
For j = i downto 1 do
d = 2
j
For all P
k
where 0 k 2
m
-1 do
If k mod 2d < d then
t = [k+d]a {ly gi tr t b x l lin k}
if k mod 2
i+2
<2
i+1
then
[k+d]a = max (t,a) {sp xp t b n ln}
a = min (a,t)
else
[k+d]a = min (t,a) {sp xp t ln n b}
a = max (a,t)
endif
endif
endfor
endfor
endfor
End.
trong b nh ton cc. Nu thnh cng, b x l s chia i mng thnh hai mng con (kch
thc mi mng con ph thuc vo gi tr ca phn t kha). Trong , c mt mng con cha
cc gi tr nh hn (hoc bng) phn t kha v mng con cn li cha cc phn t ln hn (hoc
bng) phn t kha.
Sau khi phn hoch (ging nh phn hoch trong thut ton tun t), tin trnh s t gi tr con
tr tri v phi ca mt mng con vo ngn xp trong b nh ton cc v lp li qu trnh phn
hoch cho mng con cn li.
Hm Stack.init() khi to ngn xp cha cc con tr tri v phi ca mng ban u cha c sp
xp. Cc hm Stack.Push() v Stack.Pop() t vo v ly ra cc gi tr con tr tri v phi ca
mng con trn nh ngn xp.
V phc tp ca thut ton : trong trng hp xu nht th sau khi phn hoch, mt mng con
rng v mng cn li gm n-1 phn t, cn n n-min ln phn hoch phn hoch xong mng.
Chnh v iu ny lm cho Quicksort song song c cng phc tp vi Quicksort tun t l O
(n
2
). Tuy nhin, ngi ta chng minh v th nghim c rng tc (speedup) ca Quicksort
PARALLEL QUICKSORT()
Bin ton cc: n {kch thc ca mng}
A[0,..,n-1] {mng cn sp xp}
sorted {s phn t ti v tr c sp xp}
min, partition {mng con nh nht c phn hoch}
Bin cc b: bounds {con tr tri v phi ca mng cha c sp xp}
median {ch s ca gi tr kha}
Begin
Sorted = 0
Stack.Init()
For all P
i
where 0 i < p do
bounds =Stack.pop()
while (bounds.low <bounds.high) do
if (bounds.high - bounds.low < min.partition) then
InsertionSort (A, bounds.low, bounds.high)
AddToSorted(bounds.high - bounds.low+1)
exit while
else
median = Partition(bounds.low, bounds.high)
Stack.Push (median+1, bounds.high)
bounds.high = median -1
if bounds.low = bounds.high then
AddToSort(1)
endif
endif
endwhile
endfor
End.
song song tt hn so vi Quicksort tun t (vic chng minh c th kh phc tp, xin c khng
nu y).
b. Thut ton Siu Quicksort (HyperQuicksort).
Thut ton Quicksort song song trn lm tng tc x l nh vic s dng nhiu tin trnh
c thc hin ng thi trn nhiu b vi x l khc nhau. Ngoi ra, c mt s bin th ca
Quicksort song song c pht trin tng s lng cc b vi x l lm vic ng thi. y,
ta gii thiu mt trong s gii thut c thc hin trn my tnh song song vi cc b vi x l
c t chc theo hnh siu khi: thut ton Siu Quicksort c trnh by di y.
Cho mt dy cc phn t c phn phi u (evenly distributed) cho cc b vi x l, ta nh
ngha mt dy c sp xp khi:
(1). Mi dy con trn cc b x l c sp xp v
(2). Phn t cui cng ca dy con trn b x l P
i
nh hn hoc bng phn t u tin ca dy
con trn b x l P
i+1
vi mi 0 i p-2 . Cc phn t c sp xp khng cn phi phn phi
u trn cc b x l.
pht trin thut ton, ta p dng chin lc: cho mi b x l gii mt bi ton con v s dng
cch gii tun t hiu qu nht trn mi b x l, sau s dng mt thut ton song song c
hiu qu truyn thng tt kt hp cc li gii bi ton con thu c li gii ca bi ton ban
u.
Trong pha u ca thut ton Siu Quicksort, mi b x l s dng gii thut Quicksort tun t
sp xp dy con cc b ca n v qu trnh ny din ra ng thi i vi tt c cc b vi x l.
Khi pha ny kt thc th iu kin (1) c tha mn nhng iu kin (2) cha c tha mn.
Siu Quicksort l mt gii thut qui, s dng cch tip cn chia tr (divide and conquer)
lm iu kin (2) c tha mn. Trong mi bc ca pha 2, mt siu khi c hai siu khi
con (subcubes). Mi b x l gi cc phn t ca mnh ti b x l khc trong mt siu khi con
khc, th mi b x l s trn cc phn t ca dy con n gi vi cc phn t ca dy con n
nhn c t b x l bn cnh. Kt qu ca thao tc chia v trn (split and merge) chia mt
siu khi vi dy c sp xp thnh hai siu khi vi 2 dy con c sp xp, v gi tr
ln nht trong siu khi di s b hn phn t nh nht ca siu khi trn. Sau d bc chia v
trn, th t mt mng siu khi vi 2
d
b x l s c chia thnh 2
d
siu khi con vi mi siu
khi l mt b x l, v iu kin (2) c tha mn.
Bc chia v trn chia mt siu khi d chiu thnh hai siu khi d-1 chiu. rng cc phn t
trn mi b x l c sp xp. B x l c ch nh trong siu khi d chiu s phn pht
(broadcast) gi tr kha (median value) ti 2
d
-1 b x l khc trong siu khi. Mi b x l s s
dng gi tr ny chia dy con m n ang cha thnh hai na con sao cho cc phn t ca na
di nh hn hoc bng gi tr kha v cc phn t thuc na trn ln hn gi tr kha. Mi b
x l P
i
trong na di ca siu khi s gi na dy con trn (na cha cc phn t ln hn gi
tr kha) ti b x l partner ca n trn na trn ca siu khi, l b x l P
i
2
d-1
trong
l php tnh loi tr OR (eXclusive OR). Mi b x l P
i
trong na trn ca siu khi s
gi na dy con di (na cha cc phn t nh hn hoc bng gi tr kha) ti b x l
partner ca n trn na di ca siu khi, l b x l P
i
2
d-1
trong l php tnh
loi tr OR.
Mi b x l s trn dy phn t m n nhn c t partner vi dy cc phn t m n ang
cha to thnh mt dy mi c sp xp. V vy, tt c cc phn t nh hn hoc bng
phn t kha s c cha trong cc b x l ca siu khi d-1 chiu pha di v tt c cc phn
t ln hn phn t kha s c cha trong cc b x l trn siu khi d-1 chiu pha trn.
Di y l mt minh ha:
Hnh 2.27. Mt minh ha v cc bc thc hin gii thut Siu Quicksort
Di y l gi m ca gii thut Siu Quicksort
Gi s ti thi im ban u mi b x l c n phn t. Trong pha ban u, phc tp v thi
gian k vng l O (nlogn). Gi s rng mi b x l gi li n/2 phn t v chuyn n/2 phn t
khc cho b x l partner sau mi bc chia v trn, s php so snh k vng cn trn hai dy
con c sp xp thnh mt dy c sp xp l O(n). Do thao tc chia v trn c thc
hin trn cc siu khi d, d-1,, 1 chiu, nn s php so snh k vng l O(nd). Nn s php so
snh k vng ca thut ton Siu Quicksort l O (n(logn+d)).
HYPERQUICKSORT()
Bin ton cc: n {s phn t trn mi b x l}
d {chiu ca siu khi}
i {s chiu ca siu khi hin ti}
Bin cc b: logicalNum {ch s ca b x l}
partner {b x l partner trao i}
root {b x l gc ca siu khi hin ti}
splitter {gi tr kha}
Begin
For all P
i
where 0 i < 2
d
do
Sp xp cc phn t s dng Quicksort tun t
If d>0 then
For I = d downto 1 do
root = gc ca khi i chiu cha b x l logicalNum
if logicalNum = root then
splitter = gi tr trung bnh ca danh sch lu bi b x l logicalNum
endif
B x l root phn pht splitter ti cc b x l trong siu khi i chiu
S dng splitter phn hoch cc dy phn t trong cc b x l
Partner = logicalNum 2
d-1
if logicalNum <partner then
Gi danh sch cha cc gi tr b hn kha ti b x l partner
Nhn danh sch cha cc gi tr ln hn kha t partner
Else
Gi danh sch cha cc gi tr ln hn kha ti b x l partner
Nhn danh sch cha cc gi tr b hn kha t partner
endif
Trn hai dy con trn mi b x l thnh mt dy c sp xp
endfor
endif
endfor
End.
2.4 Thut ton tm kim song song trn danh b
Trong phn ny, ta tho lun v cc thut ton song song c s dng gii quyt bi ton tm
kim mt kha no trn tp d liu c sp xp. Cc thut ton tun t c pht trin
tm kim trn danh b vi phc tp l l ga rt (log) i vi kch thc ca tp d liu.
Tng hiu qu tm kim bng cch s dng nhiu tin trnh thc hin tm kim mt cch ng
thi trn danh b tr nn ngy cng ph bin. ng thi, vic tm kim nh vy cng i hi cc
chng trnh dch song song phi h tr kh nng c nhiu hn mt tin trnh truy cp n mt
phn t mt cch ng thi.
Cc thut ton tm kim thng thao tc trn mt tp cc phn t gi l kha (keys), c lu tr
trong mt bng c kch thc hu hn. Mc tiu l t chc bng v thc thi thut ton sao cho
cc chc nng nh chn cc kha (cng vi cc d liu ca n) vo bng. xa kha (cng vi cc
d liu ca n) ra khi bng, v tm kim cc kha trong bng c thc hin cng nhanh cng
tt.
2.4.1 phc tp ca tm kim song song.
Mt thao tc tm kim mt kha c thc hin trn mt my tnh song song nhanh n c no?.
Ta s i tm cu tr li trong mc ny.
nh l 2.4.1: Cho cc s nguyn dng k, n v p, vi n=(p+1)
k
-1, tm kim mt kha trong mt
mng n phn t s dng m hnh CREW PRAM s dng khng qu [log(n+1)/log(p+1)] php so
snh.
Chng minh: Ta s s dng php qui np (induction) theo k ch ra rng [log(n+1)/log(p+1)]
php so snh l cho php tm kim mt kha trong mt bng kch thc n.
Vi k=1, th n=(p+1)
1
-1 =p, hin nhin l ch cn mt php so snh i vi p b x l trn mt
bng p phn t (mi b x l thc hin so snh kha vi mt phn t trong bng) l tm
c kha (s php so snh l [log(p+1)/log(p+1)]=1).
Gi s iu ny ng vi tt c cc bng c kch thc (p+1)
j
-1 vi 1 j<k. tm kim trn
danh sch kch thc (p+1)
k
-1, trong ln so snh u tin ca b x l th i vi mi 1 i k, so
snh kha c ch s i(p+1)
k-1
. Sau bc ny, mt phn t trong bng c gi tr bng kha c
tm thy, hoc kha khng nm trong phn ny ca bng. Mi phn c kch thc (p+1)
k-1
-1.
Theo gi thit qui np k-1 php so snh l tm kim kha bt k trong mi phn.
S dng nh l 2.4.1 ta c th tnh tc ca thut ton tm kim song song trn bng c
sp xp. Ta s dng s php so snh ca thut ton tm kim nh phn tun t trong trng hp
xu nht, chia cho s so snh t nht thc hin bi thut ton song song trong trng hp xu
nht, ta tm c:
S =
) 1 log( / ) 1 log(
) 1 log(
+ +
+
p n
n
= log (p+1)
Ni cch khc, tc t c qua vic song song ha l l ga rt ca s b x l c s dng.
2.4.2 Tm kim song song trn my tnh a b x l.
Mt cch logic tip cn bi ton l lu tr cy tm kim (search tree) trong b nh chia s v gn
cc yu cu cho tng b vi x l. Mi b x l c th chn, xa hoc tm kim. y l chin lc
c bn cho hai thut ton sau:
a. Thut ton Ellis
Ellis xut mt thut ton song song cho php tm kim ng thi trn cy nh phn cn bng
(AVL tree). Di y l nhng khi nim lin quan:
Chiu cao ca mt cy l di ng i ln nht t nt gc n nt l. V mt cy rng (cy
khng c gc) l cy c cao bng -1.
Cy nh phn cn bng l cy nh phn c thuc tnh: i vi mi nt v trn cy th chiu cao ca
cy con bn tri v chiu cao ca cy con bn phi ca v khc nhau khng qu 1.
Xy dng cc cy tm kim cn bng l cch tip cn ti u php tm kim nh phn c cn
bng vi thao tc tm kim v chn vo mt kha mi vo cy. Khi mt kha c chn vo cy
th ch cn hai thao tc quay vng l gi cho cy cn bng.
Thut ton chn tun t: Mi nt v ca mt cy nh phn cn bng c 4 trng: key(v) l trng
nh danh duy nht; left(v) l con tr tr n cy con bn tri; right(v) l con tr tr n cy con
bn phi; v bal(v) l mt s nguyn, bal(v) c gi tr l 0 nu cy (gc v) l cy cn bng, l -1
nu cy l cy lch tri, l +1 nu cy l cy lch phi. Thut ton chn tun t c 3 pha. Trong
pha u cy c tm kim tm ra v tr thch hp chn nt l mi. Trong khi tm kim, mt
con tr s c lu li vt tm kim v tr n nt cui cng trong qu trnh tm kim. Nt ny
c gi l nt cht (critical node). Mi nt cng vi ng dn tm kim c cc cy con cn
bng, th nt gc l cc nut cht. Pha th nht kt thc vi mt nt l mi c b sung vo cy.
Pha 2 bao gm di chuyn tt c cc nt trn ng i gia nt mi c chn vo v v cc nt
cht c. i vi mi nt w nh vy, nu key(v) < key(w), th bal(w)= -1; ngc li bal(w)=+1.
Pha 3 thay i gi tr bal(v) v quay cy nu cn thit. Nu bal(c)=+1 v v c chn cy con bn
tri hoc nu bal(c) = -1 v v c chn vo cy con bn phi, th bal(c)=0 v khng cn thit
phi quay cy. Nu c l gc vo bal(c)=0 th bal(c) c t gi tr -1 hoc +1 ty thuc vo v
c chn vo cy con tri hay cy con phi. Ngc li, v c chn vo cy con vi cao ln
hn v mt thao tc quay cy s c thc hin.
Hnh 2.28. Thao tc quay s gi cho cy AVL c cn bng; a. quay 1 ln; b. quay 2 ln.
Thut ton chn song song: Mc tiu ca thut ton chn song song l gi cc tin trnh tm
kim v chn trng thi hot ng (active) cng nhiu cng tt. Chng hn, xem xt cy nh
phn cn bng hnh 2.29 di y. Gi s rng c hai tin trnh ang hot ng: tin trnh th
nht chn vo gi tr 37, v tin trnh th hai l tm kim gi tr 13. Sau khi gi tr 37 c chn
vo cy, th mt thao tc quay cy c thc hin gia cho cy cn bng. Vic quay cy yu
cu gi tr ca con tr tri v phi c thay i (hnh 2.29.d c v li t hnh 2.29.c). Gi s
rng, tin trnh tm kim gi tr 13 theo sau cy con tri ca nt 6 v cy con tri ca nt 25 khi
cy c v li bng hnh 2.29.b. Gi tr 13 s khng c tm thy mc d gi tr ny vn ang
trn cy. Mt vn ng na c th xy ra nu hai tin trnh ang quay cc cy con c mt
s nt chung nhau. Ellis gii quyt vn ny bng cch thm vo 3 trng kha cho mi nt.
Nhng trng kha ny cho php cc tin trnh tm kim c kha nu tin trnh quay cy ang
din ra. ng thi, n cng cho php mt tin trnh chn kha mt tin trnh con chn khc. Ba
trng kha c thm vo mi nt ca cy nh phn cn bng, l cc kha x, y v z. Mt tin
trnh thc hin vic tm kim s kim tra kha x trc khi truy cp n trng d liu ca nt .
Cc kha y c thit lp bi tin trnh chn vo cy. Kha z c dnh cho thao tc quay cy.
C th c nhiu tin trnh c php chia s kha x, trong khi cc kha y v z khng c
chia s. Nu mt tin trnh chn gi mt nt vi kha z, th khng th c cc tin trnh khc c
th gi cc kha x hoc y hay c hai.
Trong trng hp c mt thao tc quay cy n (single rotation), th cc kha z trn cc nt cht
v nt cha ca nt cht s c thit t (set). Mt thao tc quay cy kp (double rotation) s lm
cho cc kha z trn cc nt cht, cha ca nt cht v cc con ca nt cht trn ng i ca thao
tc chn (tm kim trc khi chn) s c thit t. Bng di y minh ha cc trng thi ca
cc kha ti cc thi im khc nhau trong khi thc hin bn tin trnh ca thao tc tm kim v
chn.
Chn 51 Tm kim 46 Chn 24 Tm kim 17
Kha x trn nt 26 Kha y trn nt 26
Xa kha y trn nt
26
Kha x trn nt 34 Kha y trn nt 26
Kha x trn nt 49 Xa kha y trn nt
34
Kha y trn nt 49
Trng thi hin ti trn hnh 2.30.a
Kha x trn nt 66 Xa kha y trn nt
49
Chn 51 Dng
Kha z trn nt 26
Kha z trn nt 34 Ch kha x trn
nt 26 c xa.
Trng thi hin ti trn hnh 2.30.b
Quay nt 34
Xa tt c cc
kha
Kha x trn nt 26
Dng Kha x trn nt 20
Kha x trn nt 23
Chn 25 Kha y trn nt
26
Ch z trn nt 26
c xa
Trng thi hin ti trn hnh 2.30.c
Kha z trn nt
26
Xa kha y trn nt
26
Kha y trn nt 20
Trong sut qu trnh thc hin thut ton Ellis, mt tin trnh thc hin thao tc chn s thit t
kha x khi duyt cy. Kha x t nt cha ca cc nt cht t v tr chn vo s c thit lp trong
sut thi gian xy ra thao tc chn v quay cy. Vic lm ny s ngn chn xung t c th xy
ra bi cc tin trnh thc hin thao tc chn trn cc cy con c gc l cha ca cc nt cht. Chnh
v l do ny m s cc thao tc chn c thc hin ng thi rt hn ch. Mt vi nm sau, Ellis
ci tin thnh cng thut ton ny cho php t nt b kha hn v nhiu tin trnh thc hin
thao tc chn c xy ra ng thi hn.
Hnh 2.29. Bin i cy AVL khi gi tr 37 c chn vo.
Tm li, thut ton Ellis gn tng tin trnh cho cc thao tc tm kim hay chn mt kha xc
nh. S lng cc thao tc tm kim v chn c th c thc hin song song. Thut ton c ba
nhc im: mt l khng cho php thc hin thao tc xa. Hai l, vn cn b ng
(contention) i vi cc tin trnh chia s ti nguyn (cc tin trnh chn khng cho cc tin trnh
chn khc c thc hin nu cng truy cp trn cc cy con c nt chung). Th ba, thut ton
song song mt nhiu thi gian . Thm ch mt tin trnh tm kim cng phi kim tra cc nt n
duyt qua c kha c thit lp hay b xa.
b. Thut ton Manber v Ladner.
Manber v Ladner xut mt gii thut tm kim song song cho my tnh a b x l truy
cp b nh ng b (UMA multiprocessors) cho php thc hin thao tc xa b mt nt trn cy
nh phn cn bng nhng lm mt thuc tnh cn bng ca cy. Thut ton ny khng duy tr
c thuc tnh cn bng ca cy m cc tc gi hy vng rng nh vic xa v chn mt cch
ngu nhin s duy tr c mt cy cn bng hp l. iu hy vng ny ch ng trong mt s
iu kin c th. Mt s nhng b cho hai tc gi l thut ton ca h n gin hn cc thut
ton khc nhiu. Bi v cc tin trnh chn v xa khng c trch nhim quay cy. Mt c im
th v ca thut ton ny l s dng cc tin trnh duy tr xa cc nt.
Mi nt v trn cy tm kim c 10 trng gn vi n:
Key(v): trng kha ca nt
Data(v): mc d liu ca nt
Left(v): con tr tr n cy con tri
Right(v): con tr tr n cy con bn phi.
Parent(v): con tr cha ca v
Garbage(v): c gi tr l ng (true) nu v b loi khi cy.
Redundant(v): c gi tr l ng (true) nu c mt bn sao (copy) khc ca v trn cy.
Copy(v): c gi tr l ng (true) nu v l mt bn sao ca nt khc trn cy.
Userlock(v): kha c th c thit t bi bt k tin trnh no.
Mlock(v): kha c th c thit t bi bt k mt tin trnh bo tr.
Gc ca cy l mt nt c bit vi kha . N khng cha d liu v khng b xa. N s c
s dng n gin cho gii thut song song.
C hai l do ti sao cc nt cn c xa. Trc ht, mt nt cn c kha bo m rng ti
mt thi im ch duy nht mt tin trnh c cp nht d liu. Th hai, cc nt cn c kha
bo m rng hai hay nhiu tin trnh khng th thay i hnh dng ca cy ti cng mt thi
im ti cng mt v tr. Hai mc tiu ny khng c lp vi nhau. Chng hn, mt tin trnh
khng th cho php xa mt nt trong khi th c mt tin trnh khc ang cp nht n. V vy,
ch cn mt kha userlock, c s dng cho c hai mc ch trn.
Mi kha gn vi mt nt duy nht. Nu kha xut hin trong cy, s c mt nt gn vi n.
Nu mt kha (key) khng xut hin trong cy, c th c mt nt sp c chn vo cy gn vi
n. V vy, cc nt trong c gn vi cc kha xc nh, trong khi cc nt l c th c gn vi
mt s gi tr kha tng ng vi mt khong cc gi tr kha. Cc thao tc c bn nh: cp nht,
chn, v xa mt nt. Nhng thao tc ny bt u bi thc hin mt thao tc tm kim mnh
(strong search), n s tm cc nt gn vi mt kha v kha trng userlock ca nt. Nu trng
userlock c kha trc , tin trnh thc hin thao tc s b kha cho n khi nt c m
kha. Ch duy nht mt thao tc c bn c th c thc hin trn mt nt ti mt thi im.
Ngc li vi thut ton Ellis, tt c cc thao tc c th c thc hin bng vic kha mt nt
duy nht. iu ny em n mt phm v rng hn c x l ng thi. Ch rng, ngoi tr
trng d liu, tt c cc trng ca mt nt c th c duyt trong khi nt ang b kha.
iu ny cng cho php vic tm kim vn c tip tc mc d c mt nt trong trn ng i
ca n b kha.
Cc thao tc ngi dng c bn: bao gm cc thao tc: tm kim mnh (strong search), tm kim
yu (weak search), cp nht, chn, v xa. Di y ta s trnh by v cc thao tc ny.
V vic tm kim khng thay i cy, khi ta tin hnh thc hin tm kim song song cng tng
t nh tm kim tun t. Tuy nhin, c mt yu t quan trng cn phi xem xt l: iu g s
xy ra nu vic tm kim c thc hin v kt qu tm kim c bo co, nhng mt tin trnh
khc thay i cy trong khong thi gian tm kim kt thc v kt qu c bo co? Yu
t ny i khi l khng hp l i vi vic tinh ton: vo thi im khc th yu t ny li tr nn
quan trng. Do , ta s nh ngha hai loi thut ton tm kim di y.
Tm kim yu (weak search): s tr li kt qu khng bo m c kt qu ny l mi nht (up-
to-date). Tm kim yu nn c dng bt c khi no c th, bi v n khng yu cu kha bt k
nt no. V vy, thut ton song song khng mt thi gian v mt tin trnh thc hin tm kim
yu khng b cn tr bi cc tin trnh khc.
Tm kim mnh (strong search): s tm kim mt kha cho trc v tr li nt v gn vi kha .
chc chn rng v vn l nt cha kha m n cn, tin trnh s thc hin thao tc tm kim
yu, sau kha v. Sau khi nt v b kha th tin trnh s kim tra xem v vn cha kha. Gia
khong thi gian v c tm thy v v b kha, c th c ba s kin lm mt hiu lc gia nt v
v kha ca n. Mt l, v c th b xa khi cy (garbage(v) c t gi tr true). Hai l, nu
key(v) khng phi l kha ang c tm kim, mt nt khc c th c chn vo v ang c
gn gi tr kha. Ba l, v c th tr thnh mt nt tha (redundant(v) c t l true). Cc nt
tha c to ra nh l mt hiu ng ph (side-effect) ca thao tc xa nt. V vy, khi tm kim
mnh tr v mt nt, nt s c gn kha v b kha. Nt c m kha ch khi mt trong
cc thao tc cp nht, chn, hoc xa hon thnh.
Trong thao tc xa, thut ton Manber v Ladner kh n gin, bi v tin trnh xa ch thc hin
thao tc xa nt logic. Cc tin trnh bo tr s c nhim v xa nt mt cch vt l. Tin trnh
xa s dng tm kim mnh tm ra nt theo kha tm kim v kha nt . Gi s nt c
tm thy th data(v) c t bng rng (nil). Tin trnh xa s t v vo danh sch cha cc nut
xa (delete list) ri sau tin trnh xa c th xa vt l nt ny.
Thao tc chn ng thi bt u bng thc hin tm kim mnh i vi nt v. Nu mt nt c
tm thy theo kha, n c th c xa logic, th tin trnh s thm mt trng mi ri m kha
nt v v dng. Nu v cha c xa mt cch l gic, tin trnh s thng bo v ang tn ti, m
kha v dng.
Gi s kha khng c trn cy, th v l nt l s tr thnh nt cha ca nt c chn vo, v
thao tc chn c thc hin tng t nh thut ton tun t. Sau khi con tr con ca v tr vo
nt chn vo th tin trnh s m kha cho nt v v dng.
Hnh 2.30. Tm kim v chn song song trn cy AVL
Cc tin trnh bo tr (maintainance processes) cc tin trnh bo tr s xa vt l cc nt t cy
tm kim. Nhc li rng khi mt nt c xa, con tr ca n c c t vo danh sch xa.
Cc tin trnh bo tr ch truy cp danh sch ly con tr ca cc nt cn xa.
Nu nt v cn c xa v v ch c mt nt con th thao tc xa kh n gin: con tr cha ca v
s tr n con tr con ca v, v v s c tch ra khi cy (hnh 2.31). Nu v l nt l th con
tr ca nt cha s c t bng con tr rng (nil).
Nt v c th c dng li trong bao lu ? Mc d nt v khng cn l mt phn ca cy, mt tin
trnh c th truy cp v trong khi n ang c loi khi cy. Mc ch ca hm garbage(v) l
thng bo ti tin trnh l v khng cn trn cy. V parent(v) vn cn tr n nt cha ca n,
nu khng th mt tin trnh tm kim s c thc hin trn cy v tip tc.
Nh ta bit, v khng th c s dng ngay lp tc. Manber v Ladner xut nn s dng
thut ton Kung v Kehman (1980) loi b nt vo thng rc (garbage collection). Thut ton
ny s dng ba danh sch: danh sch rc b ng (passive garbage list), danh sch rc ch ng
(passive garbage list) v danh sch c sn (available list). Khi mt tin trnh bo tr loi b mt
nt t cy, nt s c t vo danh sch rc b ng. Danh sch ny s pht trin cho n khi
tin trnh bo tr sn sang thc hin thu gom rc. Vic thu gom rc bt u bng vic sao
chp mt nhm nt t danh sch rc b ng vo danh sch rc ch ng, v ch rng tin trnh
no ang hot ng ti thi im sao chp. Khi tt c cc tin trnh ny dng, danh sch rc ch
ng c b sung vo danh sch c sn. Do ch c mt tin trnh c th truy cp n cc nt
trong danh sch rc b ng c hot ng khi to danh sch rc ch ng, cc nt thc cht
khng c kch hot s dng li khi cc tin trnh ny dng.
Thut ton xa vt l phc tp hn nu nt v c hai nt con. Qu trnh xa nt c thc hin
qua hai bc (hnh hnh 2.32); Bc 1: nt w c kha nh hn kha v (key(v)) c tm thy
(hnh hnh 2.32.a). Nt w c nhiu nht mt nt con (v n khng th c nt con bn phi). V
vy, d dng xa nt w bng thut ton c trnh by trn (hnh hnh 2.32.b).
Bc th 2 l thay th v bi w (hnh hnh 2.32.c). V w l nt con k tip ca v, cy vn duy tr
c tnh nht qun (consistent). Tuy nhin, ta phi thc hin vic xa theo mt cch khc bo
m rng mt tin trnh tm kim v lun c th truy cp n bn sao ca v.
Hnh 2.32: xa mt nt c 2 con mc khi nim.
Thut ton s dng bi Manber v Ladner c minh ha trong hnh 11-7. u tin, to ra mt
bn sao ca w l w. Ch rng data(w)=data(w) v copy(w)=true. Bc 2 l, t left(w) tr
ti left(v) v right(w) tr ti right(v). Bc 3 l, t right(w) tr ti w, v t
redundant(w)=true. iu g s xy ra nu mt tin trnh tm kim nt w ang trn ng t nt v
n nt w. Tin trnh ny c th mun chn vo nt con bn phi ca w. Khi tin trnh tm thy
nt w, n s pht hin thy redundant(w)=true v s theo sau right(w) n w, m n s tip tc
ti nt t. Bc 4 l. Loi b nt v bng vic t con tr con ca parent(v) tr vo w v t
garbage(v)=true.
Hnh 2.33. Xa mt nt c 2 con
Nt w khng b xa ngay, bi v c th c tin trnh ang tm kim w trn ng t v n w. Mt
phng php tng t nh thut ton gom rc (garbage collection) gii bi ton. Ta t nt w
vo mt danh sch rc b ng. Cc nt trong danh sch rc b ng sn sng cho vic xa vt l
sau khi tt c cc tin trnh ang thc hin trong thi gian thay th dng. Khi w sn sng cho
xa vt l th tin trnh s thc hin kh n gin v w ch c mt nt con.
2.5 Thut ton song song trn th
Phn ny trnh by hai thut ton tm kim song song trn th gii hai bi ton c bn trn
th: bi ton tm ng i ngn nht v tm cy khung nh nht.
2.5.1 Thut ton song song tm ng i ngn nht
Bi ton tm ng i ngn nht c pht biu nh sau: ta cn tm ng i ngn nht t mt
nh ngun (source) ti tt c cc nh trong mt th c trng s v c hng.
Gi s weight(u,v) biu din di ca cnh ni hai nh u v v, nu khng tn ti cnh ny trn
th th weight(u,v) = .
T nm 1959, Moore xut mt thut ton tun t gii bi ton trn. Trong thut ton ny,
hm distance(v) c gn gi tr khi to l i vi mi nh v e V {s}. Khong cch t s
ti s bng 0. Mt hng i cha cc nh c duyt, ban u hng i ch cha mt nh
ngun s. Trong khi hng i cha b rng, nh u t u hng i b loi b, v tt c cc cnh
(u,v) e E s c th. Nu distance(u) + weight(u,v) < distance(v) th mt ng i mi ti v
(qua u) c tm thy. Trong trng hp ny, distance(v) c t li bng distance(u) +
weight(u,v) v v c t vo cui hng i. Thut ton tip tc tin trnh ny cho n khi hng
i rng.
Hnh 2.34. Minh ha thut ton Moore.
Th tc INITIALIZE, c gi dng th 3 khi to khong cch ti tt c cc nh (khng k
nh ngun s) l , v khong cch t s n s bng 0. Vng lp for t dng 12 n 20 tm kim
ng i ngn nht n cc nh khc c th n c t u.
SHORTEST PATH
Parameter n {s nh ca th}
Global distance {phn t i cha khong cch t s n i}
s {nh ngun}
weight {cha trng s ca mi cnh}
1 Begin
2 For i=1 to n do
3 INITIALIZE(i)
4 Endfor
5 Chn s vo cui hng i
6 While hng i khng rng do
7 SEARCH()
8 Endwhile
9 End
SEARCH()
Local newdistance {khong cch ti v nu ng i t u n v ngn nht}
u {nh u}
v {nh v}
10 Begin
11 Loi nh u t u hng i
12 For mi cnh (u,v) trong th do
13 newdistance = distance(u) + weight(u,v)
14 If newdistance<distance(v) then
15 distance(v) = newdistance
16 If v khng c trong hng i then
17 t v vo cui hng i
18 Endif
19 Endif
20 Endfor
21 End
Phin bn tun t ca thut ton Moore tm ng i ngn nht trn th
Lm th no song song ha gii thut trn. C hai cch thc cn xem xt. Cch th nht l
song song ha vng lp t dng 12 n dng 20. Mi nh u c mt s cnh i ra t nh (
th ang xt l c hng) ta c th x l song song tm ng i ngn nht qua u. Cch th hai
l song song ha vng lp while t dng 6 n dng 8. Ti bt k thi im no khi thut ton
thc hin , c th c nhiu nh trong hng i. C th c nhiu cnh c duyt ng thi. Vy
cch song song ha no tt hn. C hai l do ta c th nghin v cch th 2. l, cch th 2 c
th t c hiu sut v tc song song tt hn v cch th nht b gii hn bi s cnh ca
mi nh. Nu th qu tha (t cnh trn mi nh) s tin trnh c thc hin song song s t.
Thut ton song song sau y da trn cch thc th 2. Hng i c khi to vi mt nh
ngun, th mt s tin trnh khng ng b s c to ra. Mi tin trnh ny hon thnh mt s
bc loi b mt nh trong hng i, th cc cnh ra t nh v chn cc nh vi ng i
ngn hn vo hng i.
Vng lp for t dng 2 n dng 4 ca thut ton tun t d dng bin i x l song song s
dng cch thc tin lp lch (pre-scheduling). X l song song vng lp for t dng 2 n dng 6
c trnh by hnh 12-8. Vng lp while t dng 6 n dng 8 ca thut ton tun t phi
c thay i th hin s tn ti ca cc tin trnh khng ng b thc hin th tc SEARCH
mt cch song song. R rng l n khng ph hp cho mt tin trnh dng khi n pht hin ra
rng hng i rng (ti sao li nh vy: v cc tin trnh c thc hin mt cch c lp v
ng thi). Do vy, mt phng php phc tp hn phi c s dng. Trong thut ton song
song s c hai bin c s dng cng nhau xc nh c hay khng c vic phi lm. Bin th
nht l waiting, l mt mng theo di cc tin trnh ang i. Bin th hai kiu Boolean halt,
halt = true khi tt c cc tin trnh ang ch.
Khng c tranh chp gia cc tin trnh nu mi tin trnh c bo tr mt danh sch ring cc
nh sp c tm kim, hoc chn hay xa. Nu kch thc ca cc danh sch ny ln th
mi tin trnh t qun l danh sch ring ca n c th gy ra mt cn bng ti i vi khi
lng cng vic.
SHORTEST PATH (MULTIPROCESSOR)
Parameter n {s nh trn th}
p {s tin trnh}
Global distance {distance (i) cha khong cch t s n i}
halt {= true, nu cc tin trnh dng}
s {nh ngun}
weight {trng s ca mi cnh}
1 Begin
2 For all P
i
where 1 i p do
3 For j=i to n step p do
4 INITIALIZE(j)
5 Endfor
6 Endfor
7 t s vo hng i
8 halt = false
9 For all P
i
where 1 i p do
10 Repeat SEARCH(i) until halt
11 Endfor
12 End
SEARCH(i);
value i {s tin trnh}
local newdistance {khong cch ti v}
u {nh u}
v {nh v}
1 Begin
2 Kha hng i
3 If hng i rng then
4 waiting(i) = true
5 If i=1 then
6 halt =waiting(2) AND waiting(2) AND. waiting(p)
7 Endif
8 M kha hng i
9 Else
10 ly u ra khi hng i
11 waiting(i) = false
12 M kha hng i
13 For mi cnh (u,v) trong th do
14 newdistance=distance(u)+weight(u,v)
15 Lock(distance(v))
16 If newdistance < distance (v) then
17 Distance(v) = newdistance
18 Unlock(distance(v))
19 If v khng c trong hng i then
20 Kha hng i
21 If v khng c trong hng i then
22 Ly v ra khi hng i
23 Endif
24 M kha hng i
25 Endif
26 Else Unlock(distance(v))
27 Endif
28 Endfor
29 Endif
30 End.
Thut ton song song tm ng i ngn nht trn my tnh UMA a b x
l
Mng lin kt l cu trc d liu cho php lin kt cc danh sch c kch thc khc nhau sao cho
vic chn v tm kim cc phn t trong danh sch c th c thc hin song song m khng c
xung t. Gi s rng trong mt vng lp n khng c b vi x l thc hin thao tc chn nhiu
hn w phn t. Trong mng lin kt, trong trng hp cha p(w+p) phn t, w+p phn t trn
mt tin trnh. Trong mt nhm lin tip nhau w+p v tr, mt tin trnh c th cha tn cc phn
t c tm kim trong vng lp tip theo. Nu b vi x l i, 1 i p, sinh ra tn ca e
i
phn t
c xem xt trong vng lp tip theo, th cc v tr (i-1)(w+p) +1 n (i-1)(w+p) + e
i
+p cha
cc gi tr -i (w + p +1) ln lt gim ti ( i(w+p) + p)).
Trong vng lp k tip, khi cc phn t vi cc tn trong mng lin kt c th, b x l i (1 i
p) s th mi v tr th p, bt u vi v tr th i. Nu gi tr gp phi ln hn zero, l nh
cn tm kim. Nu gi tr nh hn zero, l mt con tr, v b x l s nhy n ch s c
ch ra. Khi con tr c gi tr t hn p(w+p), vic tm kim s dng,
Th tc EXAMINE sau y minh ha mt tin trnh loi b cc phn t chia s t mt mng
cha cc ch s nh v cc con tr.
EXAMINE (a,i,p,w)
Value a[1..p(w+p)], {mng cha s hiu nh v con tr}
i, {s hiu tin trnh}
p, {s cc tin trnh}
w, {kch thc mng con gn vi mi tin trnh}
Local j {ch s ca mng a}
1 Begin
2 j=i
3 While j p * (w+p) do
4 If a[j] < 0 then
5 j = -a[j] {con tr k tip}
6 Else
7 Thao tc vi nh c gi tr a[j]
8 j = j+p
9 Endif
10 Endwhile
11 End
Khng gian lu tr mng lin kt c th rt ln. Tr khi n c th c bo m khng phi tt
c cc thao tc chn c th c thc hin bng mt b x l n, th khng gian dnh cho mng
lin kt phi xp x p ln khng gian lu tr mt mng thng thng. Phin bn d liu song
song ca thut ton Moore c th c sa i s dng mng lin kt. Trong mt vng lp
n, mi tin trnh c mt s nh th. Mi tin trnh x l danh sch cc nh ring ca n
tm ng i ngn hn v xy dng cc lin kt ti danh sch ca tin trnh k tip. Trong vng
lp k tip th nhng danh sch ny c x l song song. C hai mng c s dng. Trong bt
k ln lp no lun c mt mng c c trong khi mng kia c ghi. Ln lp k tip th vai
tr ca hai mng c hon i.
Hnh 2.35. Nu khng s dng kha hng i th hai tin trnh cng cp nht gi tr distance(v) s
gy ra li.
2.5.2 Thut ton song song tm cy khung b nht
Bi ton tm cy khung b nht c pht biu nh sau: cho mt th lin thng, v hng, c
trng s; hy tm cy khung nh nht (mt cy cha tt c cc nh vi trng s b nht). Phn
di y ta s tho lun v hai thut ton song song da trn gii thut tun t ca Sollin (1977)
v ca Kruskal (1956) gii bi ton ny.
a.Thut ton Sollin
Trc ht, ta hy kho st phin bn gii thut Sollin tun t. Trong gii thut ny, ta bt u vi
mt rng gm n nh tch bit nhau. Mi nh c xem nh mt cy. Trong mi vng lp, thut
ton tm ra mt cnh ni hai cy vi nhau, khng th c hai cy no c ni bng nhiu hn
mt cnh. ng thi, cng phi bo m chng khng th to thnh cc chu trnh. Tin trnh ny
tip tc cho n khi ch cn mt cy (tt c cc nh c kt ni). V s lng cy s c
gim i t nht 2 ln trong mi ln lp, nn thut ton Sollin yu cu nhiu nht [logn] ln lp
tm ra c cy khung nh nht. Mi ln lp yu cu nhiu nht O(n
2
) php so snh tm ra
c cnh b nht qua mi nh. V vy, thut ton tun t c phc tp O(n
2
logn).
Di y l gi m ca phin bn tun t ca thut ton:
MINIMUM-COST SPANNING TREE()
Parameter n {s nh}
Global closest[], {khong cch ca cy gn nht}
edge[], {cnh ni cy vi cy gn nht}
i,
T, {cy khung nh nht}
u,w {im cui ca cnh ang xem xt}
weigh[] {cha trng s ca cnh}
1 Begin
2 For i=1 to n do
3 nh i c khi to trong tp i
4 Endfor
5 T =
6 While |T| < n-1 do
7 For mi cy i do
8 closest[i] =
9 Endfor
10 For mi cnh (v,w) do
11 If FIND(v) FIND(w) then
12 If weight(v,w) < closest(FIND(v)) then
13 closest(FIND(v)) = weight(v,w)
14 edge(FIND(v)) = (v,w)
15 Endif
16 Endif
17 Endfor
18 For mi cy i do
19 (v,w) = edge(i)
20 If FIND(v) FIND(w) then
21 T = T {(v,w)}
22 UNION(v,w)
23 Endif
24 Endfor
25 Endwhile
26 End
Phin bn tun t ca thut ton tm cy khung nh nht ca Sollin
Mt minh ha ca thut ton c th hin hnh di y:
Hnh 2.36. Mt v d minh ha thut ton Sollin.
Ch rng thut ton ny s dng cc tp hp (set) lu cc nh trong cy. Hm FIND(v)
nhn u vo l mt nh v, tr li tn ca tp cha v. Th tc UNION nhn vo hai tham s l
hai nh, thc hin php hp gai tp hp cha v v w; ni cch khc, UNION thc hin php kt
ni hai cy cha nh v v w.
Lm th no song song ha gii thut tun t trn?. Thng thng, ta c th song song ha
vng lp ngoi cng. Tuy nhin, trong trng hp ny th vng lp ngoi cng while b ph
thuc rng buc d liu gia cc ln lp. Mi cy ang tn ti ti vng lp th i phi c kt
hp vi cy ln cn trc khi ln lp th i+1 c bt u. V vy, x l song song phi c
thc hin bn trong vng lp while. Cc dng lnh t 7 n 9 c th c song song ha bng
cch tin lp lch (prescheduling). Mi b x l chu trch nhim to ra 1/p cy. Vng lp for t
dng 10 n 17 cng c th c song song theo cch trn. y l cch hiu qu nht bi c th
gn mi b x l vi cc nh ang c chia s, sau cho php chng th tt c cc cnh t
tp ny.
Vic song song ha t dng 18 n 24 phc tp hn. Gi s rng mt b vi x ang kt ni cy A
vi cy B, trong khi b vi x l khc kt ni cy B vi cy A. Bin edge(A) cha cnh (v
A
, w
A
)
vi di k. Bin edge(B) cng cha cnh (v
B
, w
B
) vi di k. Nu c hai b x l thc hin
dng 20 trc khi thc hin php ton UNION dng 22 th c hai cnh s c thm vo cy T
v kt qu l s sinh ra li. Do vy, nu cc dng 18 n 24 c song song ha th cc cy
FIND(v) v FIND(w) phi c kha trc dng 20 v phi c m kha (unlocked) trc sau
dng 23 v ta ch c php mt b x l c thc hin ti mt thi im trong trng hp m
rng cy khung.
nh l: phin bn song song ha gii thuaatk Sollin miu t trn c phc tp
O(log(n(n
2
/p+n/p+n+p)).
Chng minh:
Mt chui n thao tc UNION v FIND s c phc tp l O(nlog*n) v thi gian dnh cho mt
thao tc nh vy l O(log*n); v vy, phc tp ny c xem nh hng s.
Thc hin song song vng lp for t dng 7 n 9 c phc tp O(n/p + p), vng lp 10 n 17
c phwvs tp O(n
2
/p + p), v vng lp t dng 18 n 24 c phc tp O((n/p)p + p). Tha
s p trong ln lp cui cng v trong trng hp xu nht, mt b x l ch kha mt cy A c
th phi i b x l khc kha v m kha cy A. V vng lp while ngoi cng cn O(logn)
thi gian nn phin bn song song ca thut ton Sollin l O((n
2
/p+n/p+n+p)logn).
phc tp ny t gi tr nh nht khi p=O( n ).
b. Thut ton Kruskal
Thut ton Kruskal bt u vi mt th gm mt rng cc nh ring bit. Cc cnh s c
duyt theo th t tng dn ca trng s, v mi cnh kt ni vi hai cy khng giao nhau s c
b sung vo cy khung nh nht (ni cch khc, tt c cc cnh m khng to ra chu trnh trong
th s c th chn). Thut ton dng khi ch gm mt cy l mt cy khung nh nht.
Hnh di y l mt v d minh ha cho thut ton Kruskal:
Hnh 2.37. Mt v d minh ha cho thut ton Kruskal.
Yoo (1983) pht biu rng: mt my tnh a x l UMA vi [logm] b x l c th loi b mt
phn t t mt heap m phn t vi thi gian l hng s.
M t thut ton:
Xt hnh di y:
Hnh 2.38. Thut ton x l xen k ca Yoo
Thut ton x l xen k (pipelined algorithm) ca Yoo c minh ha hnh trn. Mt mng
c dng trin khai heap vi gc ca heap c lu li trong phn t u tin v con tri v
phi ca nt i c lu trong phn t th 2i v 2i+1. Heap l mt cy nh phn hon chnh vi p
mc, p l s b vi x l. Cc nt l c gn gi tr nu cn. Trong khi thc hin, mt nt c
gi l y (full) nu no cha mt gi tr no (k c ). Mt nt l rng nu gi tr ca n
c chuyn n cha ca n v n cha nhn c gi tr thay th t con ca n. Mng flag ch
ra mc no c nt rng; flag(i)=empty nu mc i c nt rng; ngc li flag(i)=full.
Nu flag(i)=empty th empty_node(i) s ch ra nt no rng. Vi mi 2 i p, b x l i c
gn cng vic l lm cho tt c cc nt th i-1 tr thnh full. Nu flag(i-1) = empty v flag(i)
=full, th b x l th i s gn cc gi tr thch hp (ly t mc i) cho cc nt mc i-1. Khi
flag(i-1)= full, v flag(i) =empty. Khi mt nt l tr thnh empty, th n s c gn gi tr .
Cui cng, cc gi tr c gn vo cy. B x l 1 s lm rng nt 1 bt k khi no n tr
thnh full v dng th tc khi nt 1 c gi tr .
Gi m ca thut ton c m t di y:
HEAP CONSTRUCTION (SISD)
Parameter d { su ca heap}
Global k,v,w {cc phn t ca heap}
Key[1..(2
d+1
-1)] {heap}
l {s mc}
1 Begin
2 For l=d downto 1 do
3 For nt khng phi l nt l mc l do
4 K=key(v)
5 Repeat
6 w = con ca v vi kha nh hn
7 If k>key[w] then
8 Key[v]=key[w]
9 v=w
10 Else
11 Exit loop
12 Endif
13 Until v l nt l
14 Key[v]=k
15 Endfor
16 Endfor
17 End
Vng lp trong cc dng 3 n 15 c th c song song ha bi cch thc tin lp lch; mi b
vi x l to ra cc nt khng phi l nt l chia s trong heap mc l. Mt cch tt hn l cho
php xy dng heap vi hai con c to 1 ln gii quyt ng thi tnh ng b khi cc mc
c x l ng thi.
2.7 Kt chng
PRAM l mt m hnh c m rng t m hnh x l tun t RAM. Mt thut ton PRAM cho
php thc hin ng thi nhiu bc trn tp d liu ln vi s lng b vi x l tham gia thc
hin chng trnh khng b hn ch. Cc m hnh ca PRAM c th c cc c ch cho php nhiu
b x l c hoc ghi ng thi mt nh trong b nh ton cc.
Cc thut ton song song nhn hai ma trn c thit k cho cc kin trc song song khc nhau.
Gentleman ch ra rng nhn hai ma trn kch thc n x n trn my tnh SIMD vi cc b x l
c t chc theo mng hnh li hai chiu c phc tp O(n), v l ti u. Dekel cng
xut mt gii thut rt hiu qu cho php n
3
=2
3q
b x l trn mt my SIMD vi cc b x l
c t chc theo hnh siu khi nhn hai ma trn vi phc tp O(logn).
Ba gii thut sp xp song song m ta tm hiu u rt hiu qu. Trong , gii thut sp xp
hon chuyn chn l trn my tnh m cc b vi x l c t chc theo mng hnh li mt
chiu rt n gin nhng ti u vi phc tp O(n). Thut ton sp xp trn Bitonic c thc
hin mt cch quy rt hiu qu trn my tnh m cc b x l c t chc theo mng hon v-
di chuyn hoc siu khi vi phc tp O(log
2
n). Gii thut quicksort song song v siu
quicksort c thit k cho my tnh MIMD theo chin lc chia tr tuy khng t c gim
phc tp tnh ton; nhng trn thc t th tc thc hin thut ton rt hiu qu nh cc tin
trnh thc hin c lp c x l song song.
Khng d dng tng tc i vi cc thut ton tm kim trn danh b. Th nht, thut ton
tun t c phc tp l logn v th hai l cc tin trnh thc hin cc thao tc thng b ph
thuc ln nhau. Tuy nhin, trong chng ny m t thut ton song song thc hin cc thao
tc tm kim, chn v xa trn my tnh a b x l UMA. Cc thut ton i km vi cc tin
trnh vi tng thao tc ring l c th hin. Vic kha (lock) cc tin trnh c s dng
kha cc tin trnh an xen nhau trnh xung t (contention) khi cn thit. Thut ton Ellis cho
php tm kim v chn vo cy AVL yu cu tin trnh thc hin thao tc chn phi kha phn
cy con m c gc l nt ang c quay ( bo m tnh cn bng ca cy. Thut ton Manber
v Ladner i hi khng kha nhiu hn mt nt trn cy i vi cc thao tc: tm kim, chn,
xa v cp nht. Cc thut ton song song yu cu phc thp v thi gian khng qu O(logn).
Hai thut ton song song trn th nhm gii quyt bi ton tm ng i ngn nht v cy
khung nh nht c song song ha t cc phin bn tun t. Thut ton Moore gii bi ton tm
ng i ngn nht c song song ha thnh mt gii thut thc hin trn my tnh a x l
UMA v dng mng lin kt loi tr cc xung t gia cc tin trnh. Mng lin kt ny c th
c thay th bi mt hng i hiu qu hn. Phin bn song song ca thut ton Kruskal tm cy
khung nh nht cng c thc hin trn my tnh a x l UMA. Thut ton ny hiu qu i
vi my tnh c t b vi x l nh vic s dng k thut pipeline kt hp vi vic thao tc trn
mt heap.
2.8 Cu hi v bi tp
2.8.1 Cu hi
1. Trnh by v m hnh PRAM. Trong m hnh PRAM, mt b x l c th thc hin c cc
thao tc g?.
2. Nu cc c ch ca m hnh PRAM gii quyt cc vn nhiu b x l c/ghi cng mt
nh trong b nh ton cc?.
3. Cho mt v d minh ha gii thut trn hai mng sp xp thnh mt mng c sp xp
c trnh by phn 2.1.3.
4. Trnh by thut ton nhn hai ma trn trn my SIMD vi cc b x l c t chc theo mng
hnh li hai chiu.
5. Trnh by thut ton nhn hai ma trn trn my SIMD vi cc b x l c t chc theo
mng siu khi.
6. Nu ngha ca th tc BIT.COMPLEMENT?. Cho v d minh ha?.
7. Trnh by thut ton nhn hai ma trn trn my a b x l UMA?.
8. Trnh by thut ton nhn hai ma trn hng khi trn h thng a my tnh.
9. Trnh by v gii thut sp xp song song hon chuyn chn l: tng, th tc gi m,
phc tp.
10. Trnh by v gii thut sp xp trn Bitonic?.
11. Chng minh rng: gii thut sp xp Bitonic c phc tp O(log
2
n). (gi :
T(n)=T(n/2)+O(logn)).
12. Trnh by gii thut sp xp Quicksort song song.
13. Trnh by gii thut sp xp siu Quicksort.
14. Hy ch ra rng: gii thut Quicksort song song c phc tp O(nlogn).
15. Trnh by gii thut song song Ellis trn my tnh a b x l UMA?.
16. Lit k v nu ngha cc thao tc c bn ca thut ton Manber v Ladner?.
17. S khc nhau gia tm kim yu v tm kim mnh trong thut ton Manber v Ladner?
18. Trnh by thut ton song song tm ng i ngn nht trn my tnh a b x l UMA?
19. Trnh by thut ton song song Sollin trn my tnh a b x l UMA?
20. Hy ch ra rng thut ton song song Sollin trn my tnh a b x l UMA c phc tp
O(n) vi n l s cnh ca th u vo.
2.8.2 Bi tp
1. Hy trnh by mt thut ton PRAM gii bi ton tnh tng ca n s t nhin u tin.
2. Hy trnh by mt thut ton PRAM gii bi ton tnh tch phn sau:
I =
}
+
1
0
) ) (cos( dx x x
3. Hy trnh by mt thut ton PRAM gii bi ton tm tt c cc s nguyn t nh hn s
nguyn n cho trc.
4. Hy m t tng bc ca thut ton nhn hai ma trn trn my SIMD vi cc b x l c t
chc theo mng hnh li hai chiu vi u vo l hai ma trn sau:
A= ( 2 3 4 1
1 0 1 1
2 1 4 1
1 0 3 4)
v
B= ( 1 0 0 1
2 1 0 0
0 1 1 2
1 0 3 0)
5. Hy m t tng bc ca thut ton nhn hai ma trn trn my SIMD vi cc b x l c t
chc theo mng hnh siu khi vi u vo l hai ma trn A v B bi 4.
6. M t tng bc thc hin thut ton hon chuyn chn l vi u vo:
{3 4 1 2 9 0 5 2 6}
7. M t tng bc thc hin thut ton sp xp trn Bitonic vi u vo:
{1 2 3 4 9 7 5 2 0}
8. M t tng bc thc hin thut ton sp xp Quicksort song song vi u vo:
{3 4 1 2 9 0 5 2 6}
9. M t tng bc thc hin thut ton sp xp siu Quicksort vi u vo:
{3 4 1 2 9 0 5 2 6}
10. Hy song song ha gii thut tm kim nh phn tun t?.
CHNG 3 : CC VN CA H THNG TNH TON
SONG SONG