You are on page 1of 112

HC VIN CNG NGH BU CHNH VIN THNG

TNH TON SONG SONG


(Dng cho sinh vin h o to i hc t xa)
Lu hnh ni b
H NI - 2007
HC VIN CNG NGH BU CHNH VIN THNG
TNH TON SONG SONG
Bin son : THS. PHM VN CNG
Bi ging
TNH TON SONG SONG
Bin son: Phm Vn Cng
Khoa CNTT1- Hc vin Cng ngh BCVT
Email: pcuongcntt@yahoo.com
Mc lc
CHNG 1 : CC KIN TRC SONG SONG.........................................................................5
1.1 Tng quan v tnh ton song song ......................................................................................5
1.1.1 Nhu cu tnh ton............................................................................................................5
1.1.2 Lch s pht trin............................................................................................................7
1.1.3 Cc thut ng..................................................................................................................9
1.1.4 Cc xu th xy dng my tnh ........................................................................................9
1.2 Cc kin trc song song.....................................................................................................10
1.2.1 My tnh mt dng lnh, mt dng d liu (SISD) ......................................................11
1.2.2 B nh chia x (shared memory) v b nh phn tn (distributed memory). .............13
1.2.3 My tnh mt dng lnh, nhiu dng d liu (SIMD) ..................................................14
1.2.4 My tnh nhiu dng lnh, mt dng d liu (MISD) ..................................................17
1.2.5 My tnh nhiu dng lnh, nhiu dng d liu (MIMD) ..............................................19
1.2.6 Hiu sut ca My tnh song song................................................................................20
1.3 T chc cc b vi x l ......................................................................................................21
1.3.1 Mng hnh li (Mesh).................................................................................................21
1.3.2 Mng hnh cy nh phn (Binary Tree Networks) ........................................................22
1.3.3 Mng hnh siu cy (Hypertree networks)....................................................................22
1.3.4 Mng hnh thp (Pyramid networks) ............................................................................23
1.3.5 Mng hnh bm (Butterfly networks).........................................................................24
1.3.6 Mng hnh siu khi (Hypercube networks)................................................................25
1.3.7 Mng cc chu trnh hng kt ni khi (Cube-Connected Cycles networks) .............26
1.3.8 Mng hon v di chuyn (Shuffle-exchange networks) ...............................................27
1.3.9 Mng de Bruijn.............................................................................................................29
1.3.10 Tng kt v t chc cc b vi x l............................................................................29
1.4 Cc h thng mng b x l, a b x l, v a my tnh..............................................30
1.4.1 H thng mng b vi x l (processor arrays)..............................................................30
1.4.2 My tnh a b x l (Multiprocessors) .......................................................................35
1.4.3 H thng a my tnh (Multicomputers) ......................................................................39
1.5 Kt chng..........................................................................................................................41
1.6 Cu hi v bi tp ..............................................................................................................42
1.6.1 Cu hi..........................................................................................................................42
1.6.2 Bi tp...........................................................................................................................44
CHNG 2 : CC THUT TON SONG SONG..................................................................45
2.1 M hnh PRAM.................................................................................................................45
2.1.1 M hnh x l tun t...................................................................................................46
2.1.2 M hnh tnh ton song song PRAM............................................................................46
2.1.3 Mt s thut ton PRAM..............................................................................................48
2.2 Cc thut ton song song nhn hai ma trn...................................................................56
2.2.1 Thut ton nhn ma trn tun t...................................................................................57
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). .................................................................................57
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). .......................................................................................61
2.2.4 Thut ton nhn ma trn trn my a b x l. ............................................................64
2.3 Cc thut ton sp xp song song. .............................................................................67
2.3.1 Sp xp bng lit k (enumeration sort) v cn di (lower bounds) ca sp xp song
song........................................................................................................................................67
2.3.2 Sp xp song song i ch chn l (odd-even transposition) . .....................................69
2.3.3 Sp xp song song trn bitonic (bitonic merge) ...........................................................71
2.3.4 Sp xp song song ta trn Quicksort ..........................................................................83
2.4 Thut ton tm kim song song trn danh b...........................................................88
2.4.1 phc tp ca tm kim song song. ..................................................................88
2.4.2 Tm kim song song trn my tnh a b x l. ...................................................89
2.5 Thut ton song song trn th ...............................................................................97
2.5.1 Thut ton song song tm ng i ngn nht .....................................................97
2.5.2 Thut ton song song tm cy khung b nht .....................................................102
2.7 Kt chng ................................................................................................................107
2.8 Cu hi v bi tp.....................................................................................................108
2.8.1 Cu hi........................................................................................................................108
2.8.2 Bi tp.........................................................................................................................109
Li ni u (cha vit)
Chng 2: Cc vn ca h thng tnh ton song song LT8/BT2
2.1 Hiu sut ca h thng x l song song.
2.2 Tc (speedup) v hiu qu (efficiency) ca x l song song
2.2.1 Tc (speedup) ca x l song song
2.2.2 Hiu qu (efficiency) ca x l song song
2.2.3 nh lut Amdhal v Gustafson-Barsis v tc v hiu qu ca x l song song.
2.3 nh x d liu trn my tnh song song
2.3.1 nh x d liu ln cc mng b vi x l (processor arrays).
2.3.2 nh x d liu ln h thng nhiu my tnh (multicomputers).
2.4 Vn cn bng ti ng trn h thng nhiu my tnh (multicomputers)
2.5 Vn lp lch biu trn h thng nhiu my tnh (multicomputers)
2.5.1 Gii thut Graham s List Scheduling
2.5.2 Gii thut Coffman-Graham Scheduling
2.5.3 Cc m hnh n nh v khng n nh.
2.6 Vn deadlocks
Chng 3: Lp trnh song song LT9/TH4/KT1
3.1 C bn v giao tip bng phng php trao i thng ip (message passing)
3.1.1 Trao i thng ip nh mt m hnh lp trnh
3.1.2 C ch trao i thng ip
3.1.3 Tip cn n mt ngn ng cho lp trnh song song
3.2 Th vin giao din trao i thng ip (Message Passing Interface MPI)
3.2.1 Gii thiu v MPI
3.2.2 Lp trnh song song bng ngn ng C v th vin MPI
3.2.3 Mt s k thut truyn thng: broadcast, scatter, gather, blocking message passing...
3.3 My o song song (Parallel Virtual Machine-PVM)
4.4 Thit k v xy dng mt chng trnh (gii mt bi ton (NP-complete) s dng MPI v C.
Thc hnh: Xy dng v chy chng trnh s dng C v MPI
CHNG 1 : CC KIN TRC SONG SONG
Ni dung chng ny trnh by cc vn sau:
- Tng quan v tnh ton song song: phn ny trnh by v nhu cu tnh ton trn mi lnh vc:
thng mi, khoa hc; lch s pht trin ca my tnh song song, cc xu th thit k my tnh.
- Cc kin trc song song: phn ny trnh by v 4 loi kin trc my tnh c phn loi theo
thut ng Flynn; my tnh mt dng lnh, mt dng d liu (SISD), my tnh mt dng lnh,
nhiu dng d liu (SIMD), my tnh nhiu dng lnh, mt dng d liu (MISD) v my tnh
nhiu dng lnh, nhiu dng d liu (MIMD).
- T chc cc b vi x l trong cc my tnh song song theo 9 cch khc nhau, bao gm: t chc
cc b vi x l theo hnh mng li, theo hnh cy, theo hnh siu cy, hnh thp, hnh siu khi,
cc chu trnh hng khi, hon v- i ch, v de Bruijn. Mi cch thc t chc c nh gi u
im, nhc im qua cc tiu ch: ng kch, rng phn i v s nt/cnh.
- Mt s my tnh song song thc t: my tnh mng cc b vi x l, my tnh a b x l v h
thng a my tnh.
- Phn cui cng l cu hi v bi tp dnh cho sinh vin.
1.1 Tng quan v tnh ton song song
1.1.1 Nhu cu tnh ton
Khoa hc kinh in da vo cc quan st, pht trin thnh cc l thuyt v tin hnh thc nghim.
S quan st mt hin tng mt hin tng dn n mt gi thuyt no . Nh khoa hc s pht
trin mt l thuyt gii thch hin tng v thit k cc thc nghim chng minh (hoc
bc b) l thuyt . Cc kt qu t thc nghim s gip cc nh khoa hc hon chnh l thuyt
ca mnh.
Mt iu khng may l khng phi lc no ta cng c th s dng cc thc nghim kim
chng l thuyt, l v vic tin hnh cc thc nghim tn qu nhiu thi gian v tin ca.
Cc my tnh tc cao s cho php cc nh khoa hc kim chng cc gi thuyt ca h theo
phng php m phng cc hin tng (numerical simulation). Nh khoa hc so snh cc kt
qu ca chng trnh m phng l thuyt v quan st cc hin tng trong th gii thc bng
chng trnh m phng. Cc nh khoa hc s hiu chnh l thuyt hoc tip tc quan st nu c
s khc bit.
Chnh v vy, khoa hc hin i c m t bng s quan st, l thuyt, thc nghim v m
phng. Trong , m phng ngy cng ng vai tr quan trng i vi cc nh khoa hc. Nhiu
bi ton khoa hc phc tp khi c m phng yu cu phc tp l hm s m. A.
a.Nhu cu tnh ton cho cc ng dng khoa hc.
Cc ng dng mi ngy cng c nhu cu tiu tn ti nguyn phn cng hn.
Hnh 1.1. Cc ng dng mi ngy cng yu cu s lng tnh ton ln
in hnh l cc loi ng dng :
- M phng, m hnh ha nh cc bi ton sau y; nhng bi ton ny vn cn l thch thc ln
(grand challenges) i vi khoa hc, l:
1. Ha hc lng t (quantium), phng php thng k, v vt l tng i.
2. V tr (cosmology) v vt l thin vn (astrophysics).
3. ng lc hc (fluid dynamics)
4. Thit k vt liu v siu dn
5. Sinh hc, dc hc, so snh DNA, cng ngh gen & protein
6. Y hc v m hnh ha s hot ng h xng v cc c quan ni tng
7. M hnh ha kh hu v s bin i mi trng
Hnh 1.2. Yu cu v phn cng ca cc bi ton khoa hc
Mt v d thc t v m hnh ha bi ton tnh lu lng ca dng chy i dng [c thc
hin bi cc nh khoa hc t i hc bang Oregon, Hoa k]. t c kt qu chnh xc, cc
nh khoa hc chia i dng thnh 4096 vng t ng sang ty v 1024 vng t bc n nam.
ng thi, i dng c chia thnh 12 lp; vi m hnh ny th i dng c khong 50 triu
khi 3 chiu. m phng cho mt khi 3 chiu nh vy vi mt chu k l 10 pht th cn
khong 30 t php tnh. Trong khi cc nh nghin cu m phng chu k ca i dng trong
vng hng trm nm.
b.Nhu cu tnh ton cho cc ng dng v dch v thng mi
Cc ng dng v dch v thng mai ngy cng a dng, in hnh l:
- Cc ng dng a phng tin nh: video servers, multimedia databases, video on demand
- Cc ng dng v data mining v phn tch, x l d liu trc tuyn (OLAP)
- Cc ng dng my ch thi gian thc, x l ha
l cc dch v yu cu khi lng tnh ton ln:
Hnh 1.3. Nhu cu tnh ton cho cc ng dng thng mi
1.1.2 Lch s pht trin
Phi mt hn 20 nm cc my tnh song song i t cc phng th nghim ra th trng. Daniel
Slotnick ti i hc Illinois thit k hai my tnh song song sm nht l: Solomon c xy
dng bi cng ty in t Westinghouse vo nhng nm 1960 v ILLIAC IV c lp rp bi
cng ty Burroughs vo nhng nm 1970. Sau , trong sut thp k 70s, trng i hc
Carnegie Mellon xy dng hai my tnh song song C.mmp v CM*. Vo nm 1980, cc nh
khoa hc ti Hc vin k thut CalTech xy dng my tnh Cosmic Cube, tin thn ca a my
tnh ngy nay v c hin thc bi cc cng ty Ametek, Intel v nCUBE.
Cho n gia thp k 80, cc my tnh song song vi nhiu b vi x l mi c a ra th
trng. Mt nghin cu v hiu sut my tnh i vi cc loi my tnh khc nhau ch ra l do
cc my tnh song song da trn a b x l tr thnh hin thc.

Trong hnh 1.4, t l gia tng hiu sut i vi cc loi my tnh minicomputers, mainframes v
supercomputers hng nm ch di 20%. Trong khi , t l gia tng hiu sut i vi cc b x
l (microprocessors) trung bnh khong 35% mi nm.
Ti sao hiu sut ca my tnh nhiu b vi x l tng nhanh hn cc loi my tnh song song
khc?. Hiu sut ca mt b vi x l n c th c ci tin thng qua s ci tin kin trc hoc
ci tin v cng ngh. S ci tin v kin trc c th lm tng khi lng cng vic trng mt chu
k lnh. S ci tin v cng ngh c th lm gim thi gian thc hin chu k lnh. Nhng nm
1970s, cc kin trc c bn: b nh c cc bit song song (bit-parallel memory), b tnh ton bit
song song (bit-parallel arithmetic), b nh Cache, cc knh truyn d liu, b nh xen k
(interleave memory), tin x l lnh (instruction lookahead), x l xen k (pipelining), a chc
nng v cc b tr gip x l xen k dng m lnh (pipelined functional unit) c tch hp
vo thit k cc siu my tnh. Tuy nhin, s ci tin hiu sut ca cc b x l ring l (lm
1000
100
10
1
1965 1970 1975 1980 1985 1990
Supercomputers
Mainframes
Minicomputers
Microprocessors
Hnh 1.4 : Hiu sut ca 4 loi my tnh song song thng dng
gim thi gian thc hin chu k lnh) rt kh khn v iu ny b gii hn bi tc x l ca vi
mch in t (b hn tc nh sang).
Ngc li, my tnh nhiu b vi x l t c cc bc tin v ci tin hiu sut rt n tng.
Mc d, ban u nhng my tnh nhiu b x l khng kt hp tt c cc ci tin kin trc nh
trong cc siu my tnh v tc ng h ca chng kh chm.
S hi t (convergence) gia microcomputers v siu my tnh truyn thng ko theo s
thng mi ha nhng my tnh song song vi hng trm b x l. nh im l cc my tnh
song song da trn a b vi x l c th k n nh: Intel s Paragon XP/S
TM
, MP-2
TM
, v
Thinking Machine -5
TM
vt qua tc ca cc siu my tnh n b x l nh: Cray Y/
MP
TM
v NEC SX -3
TM
.
1.1.3 Cc thut ng
Hu ht cc my tnh hiu sut cao hin i u h tr x l nhiu lnh mt cch ng thi
(concurrency). Chng hn, a x l (multiprocessing) l mt phng php c s dng t
c x l ng thi nhiu lnh mc cng vic hoc chng trnh. Trong khi , x l xen k
dng lnh (pipeline) l phng php nhm x l ng thi cc lnh mc lnh
(interinstruction). Tuy nhin, khng th gi cc my tnh h tr x l cc lnh ng thi l my
tnh song song. Di y l cc thut ng c bn:
Lp trnh song song (parallel programming) l vic lp trnh s dng mt ngn ng c h tr x
l song song cc lnh trong mt chng trnh.
My tnh song song (Parallel conputer) l mt my tnh c nhiu b x l (multiple-processor
computer) c kh nng phi hp vi nhau gii quyt cc bi ton.
X l song song (parallel computing) l qu trnh s dng my tnh song song gii quyt cc
bi ton n (single problem) nhanh hn.
Siu my tnh (supercomputer) l mt my tnh a nng c kh nng gii cc bi ton n vi tc
tnh ton cao (c hng nghn t php tnh trong mt giy). So vi cc my tnh c ch to
cng thi th siu my tnh c tc x l ln hn hng nghn ln. Cc siu my tnh hin i l
cc my tnh song song. Mt vi siu my tnh c s lng t b x l nhng rt mnh; a s siu
my tnh c s lng b x l rt ln.
Thng lng (throughput) ca mt thit b l lu lng d liu c truyn ti qua thit b trong
mt n v thi gian. C nhiu cch ci tin thng lng ca mt thit b nh: tng tc ,
tng s thao tc ti mt thi im
Song song ha d liu (data parallelism) l vic s dng nhiu b chc nng (functional units)
x l cng mt thao tc ng thi cho cc phn t ca mt tp d liu.
Tc (speedup) l t s gia thi gian cn thit x l mt thut ton tun t tt nht v thi gian
cn thit x l pipeline hoc song song trn cng mt my tnh.
1.1.4 Cc xu th xy dng my tnh
a. Xu th pht trin phn cng:
- Hiu sut b vi x l tng 50 -100% mi nm.
- C 3 nm, s lng cc transitors tng gp i trn mi vi mch.
- C 3 nm kch thc b nh RAM tng 4 ln.
Hnh 1.5 Xu th pht trin phn cng
b. Xu hng thit k kin trc my tnh:
- Gim thi gian thc hin chu k lnh my; tuy nhin, xu hng ny b gii hn bi cng ngh
in t.
- Tng s lnh my c thc hin ng thi (x l xen k cc dng lnh, siu v hng ...)
- Tng s bt truyn d liu song song 4 bt , 8 bt, 16 bt, 32 bt, 64 bt v 128 bt.
- Song song mc lung (multithread)
- Nhiu b x l c tch hp trn cng mt chip (dual core, quad. Core ).
1.2 Cc kin trc song song
Kin trc ca cc my tnh song song c th c chia lm hai loi (nh hnh di y): kin trc
ng b, bao gm: my tnh vc t, my tnh SIMD hoc my tnh Systolic v kin trc khng
ng b, bao gm: my tnh MIMD, Reduction. Trong kin trc song song kiu ng b th cc
b vi x l thc hin ng thi cng mt lnh no trn cc b vi x l khc nhau (vi d liu
c th khc nhau) v kt thc trong cng mt chu k lnh. Ngc li, kin trc song song kiu
khng ng b th cc b vi x l c th thc hin cc lnh khc nhau, hoc cc on chng
trnh khc nhau v c th kt thc vic x l lnh trong cc thi im khc nhau.
Hnh 1.6. Hai loi kin trc song song: ng b v khng ng b
1.2.1 My tnh mt dng lnh, mt dng d liu (SISD)
a. My tnh SISD

Hnh trn l kin trc tng quan ca my tnh SISD (Single Instruction stream Single Data
stream). N bao gm hai u vo: dng lnh v dng d liu; mt b iu khin cha b gii m
lnh v b to xung iu khin; v mt b x l lnh v d liu. Cc my tnh SISD l cc my
tnh x l tun t. Ti mt thi im, ch mt dng lnh v mt dng d liu c x l. Chnh v
vy m my tnh SISD cn c gi l my tnh c von Neumann.
Mc d dng lnh (instruction stream) c x l mt cch tun t, nhng cc lnh c th c
x l ng thi theo c ch xen k dng m lnh (pipeline). Nhng ti mt thi im, ch c duy
nht mt lnh c gii m (decode) hoc c c (fetch). My tnh SISD c th c nhiu b
chc nng (multiple functional units) nh: b ng x l ton hc (mathematics co-processor), b
vector (vector units), cc b x l ha (graphics processors), v cc b x l vo/ra (I/O
processors). Trong m hnh kin trc my tnh SISD, tt c cc b chc nng u c iu
khin bi mt b x l (single processing unit) n.
Mt s bin th ca my tnh SISD nh Systolic c th tng nng lc x l nh vo tch hp
nhiu b x l lnh v d liu nh hnh di y:
Hnh 1.7. M hnh my tnh SISD c in
Mt s my tnh SISD hin i nh Cray-1 cn h tr nhiu b x l kiu vector (nh hnh trn).
Dng d liu c lc qua mt mng cc b x l (processing units) x l. Do , ngi ta
cn gi cc my tnh SISD vi mng cc b x l l my tnh Systolic.
b. V d v thc hin bi ton Banking trn my tnh song song Systolic:
S b vi x l = s my ATM
S cng vic = s khch hng
C m khch hng, thi gian phc v mi khch hng l t
i
.
C n my ATM,
Vi n=1: x l tun t; thi gian thc hin s l tng thi gian phc v tng khch hng:
T= t
1
+ t
2
+ t
n

Vi m=n, trng hp tt nht; thi gian thc hin s l T=max {t
1
, t
2
,,t
n
}
Vi n<m, mc tiu l x l cng vic sao cho ti mi thi im, s my ATM khng lm vic l
t nht. Trong trng hp ny my tnh Systolic gii bi ton trn nh sau:

Hnh 1.9. Gii bi ton Banking trn my Systolic
Bc 1: c s ti khon
Bc 2: kim tra tnh hp l v s d trong ti khon
Bc 3: cp nht ti khon vi giao dch mi
Bc 4: nhn tin t khch hng (deposit) hoc tr tin rt (withdraw) cho khch hng.
Hnh 1.8. M hnh my tnh SISD vi mng b x l
Thi gian thc hin:
(1/n) *(t
1
+ t
2
+ t
n
) ~ (t*m)/n.
c. Mt s my tnh SISD thc t :
- CDC 6600 : khng h tr x l pipeline, nhng c tch hp cc b a chc nng.
- CDC 7600: l th h sau ca CDC 6600, c b x l ton hc v logic (ALU) c h tr
x l pipeline.
- Amdhal 470/6: h tr x l pipeline.
- Cray-1: h tr vector cc b x l.
1.2.2 B nh chia x (shared memory) v b nh phn tn (distributed memory).
a. Khi nim v chia x phng tin (shared medium).
- Cho php nhn mt thng ip ti mt thi im.
- Cc thng ip c th truyn rng ri (broadcast).
- Mi b x l lng nghe (listens) cc thng ip chuyn n.
- C ch trng ti l tp trung.
- Yu cu truyn li thng ip nu c ng .
- Ethernet, Bus l cc v d in hnh v chia s phng tin.
Cc kin trc song song s h tr truyn thng ip kiu im-im gia cc cp b vi x l, cc
b x l c kt ni vi nhau theo mt hnh trng (topology) no (star, ring..)
Hai u im ca chia s phng tin l c th truyn ng thi nhiu thng ip (broadcast) ti
mt thi im v d dng m rng (khi b sung thm CPU).
b. B nh chia s :
Hnh 1.10. B nh chia s
- Mi b x l c th thao tc trn nhiu d liu khc nhau (thm ch tt c) trn b nh
chia s.
- Kt ni cc b x l (qua bus, mng)
- C b nh chia s ton cc
- Giao tip vi b nh ton cc thng qua READ/WRITE
c. B nh phn tn :
Hnh 1.11. B nh phn tn
- Kt ni gia cc cp CPU + b nh cc b
- Giao tip qua thng ip (message) c truyn qua mng.
- D dng m rng.
1.2.3 My tnh mt dng lnh, nhiu dng d liu (SIMD)
Tt c cc b vi x l trn mt my SIMD thc hin cng mt lnh mt cch ng b trn cc d
liu khc nhau.
Trong mt my SIMD, nhiu thnh phn x l c gim st bi mt n v iu khin. Tt c
nhng thnh phn x l u nhn cng mnh lnh t n v iu khin nhng li thc hin trn
nhng tp d liu khc nhau v n t nhng lung d liu khc nhau. Mt my SIMD biu din
hnh 1.12 c nhng c im sau: x l phn tn trn mt s lng ln phn cng, thc hin
ng thi trn nhiu thnh phn d liu khc nhau v thc hin cng mt cu lnh trn cc thnh
phn d liu.
Hnh 1.12. Kin trc my tnh SIMD
My tnh SIMD ng vai tr quan trng trong x l song song. Chng c th thao tc trn cc d
liu biu din di dng vector hay ma trn; trn thc t cc d liu v thi tit hoc cc nghin
cu v bc x gy ung th thng c biu din di dng vc t. My SIMD c th x l cc
bi ton ny trong mt khong thi gian ngn hn so vi cc m hnh khc. Trong trng hp
kch thc ca vector ng bng s lng b vi x l th hiu sut ca my SIMD s t ti u.
Trong trng hp m s b vi x l v kch thc vector khc nhau, th tc x l ca my tnh
SIMD cng tt hn nhiu so vi my tnh tun t.
Di y ta tm hiu v 3 loi my tnh SIMD :
a. My tnh SIMD vi b nh phn tn:
SIMD vi b nh phn tn gm mt b iu khin (Control Unit) vi nhiu b x l
(Processing Elements). Cc b x l hot ng ging nh cc b tnh ton s hc (Arithmetic
Unit). Cc b tnh ton s hc l th (slaver) c iu khin bi b iu khin l ch (Master).
Cc b tnh ton s hc khng th t c hoc gi m lnh, chng ch l cc b tnh ton thun
ty c th thc hin c cc php tnh cng, tr, nhn, v chia. Mi b tnh ton s hc c th
truy cp ti b nh cc b ca chng. Trong trng hp, b tnh ton s hc ny cn thng tin
cha trong b tnh ton s hc khc, n phi gi yu cu n b iu khin v b iu khin s
lm nhim v c thng tin ca b tnh ton s hc v gi n b tnh ton s hc yu cu.
Hnh 1.13 My tnh SIMD vi b nh phn tn
u im ca kin trc ny l ta c th rt d dng m rng b nh ton cc cng nh cc b trn
mi b tnh ton s hc.
Nhc im d nhn thy l mt nhiu thi gian khi b iu khin phi qun l tt c cc trao
i thng tin gia cc b tnh ton s hc. Trong trng hp phi thc hin mt chng trnh m
c nhu cu trao i d liu ln gia cc b x l th thi gian ch s lm hn ch hiu sut ca h
thng tnh ton.
b. My tnh SIMD vi b nh chia s:
Mt kin trc khc ca SIMD c thit k vi s kt hp gia cc b x l (Processing
Element) vi cc m un b nh. Trong kin trc ny, b nh cc b ca mi b tnh ton s hc
trn c thay th bng cc m un nh. Cc m un nh ny c chia s cho tt c cc b
x l thng qua mng hoc cc thit b chuyn mch. iu ny cho php cc b x l truy cp
n b nh chia s m khng phi truy cp qua b iu khin nh trn; y cng l u im ca
kin trc ny. Nhc im ca kin trc ny l kh khn khi ta mun m rng cc m un nh v
b gii hn ca khng gian a ch ca my tnh.
c. My tnh SIMD c s h tr ca pipeline
Kin trc SIMD c s h tr ca pipeline bao gm mt b tnh ton s hc c h tr pipeline vi
b nh chia x. X l pipeline c th c cc lnh t cc dng m lnh (instruction streams)
khc nhau v thc hin chng trn cng mt b tnh ton s hc. Pipeline l mt th tc x l
theo kiu vo trc ra trc (First In First Out) v hiu xut pipeline l tng i. tng hiu
qu ca x l pipeline th d liu c lu trong b nh chia x b x l c th c chng
cng nhanh cng tt. u im c th nhn thy l tc v hiu qu ca x l d liu vi yu
cu trn c tha mn..
d. Mt s v d
V d 1: Bi ton banking
Bi ton banking ( cp phn 1.2.1) thc hin trn my SIMD nh sau:
Hnh 1.14 Gii bi ton Banking trn My tnh SIMD
Tt c cc b x l s cng thc hin mt lnh (hoc ch) ti cng mt thi im trn cc d liu
khc nhau.
Bc 1: phn chia (partition) d liu cho cc b vi x l (my ATM)
Bc 2: thc hin cc giao dch mt cch song song.
Hiu sut ph thuc vo c bao nhiu giao dch c thc hin song song.
Gi s khi lng cng vic c phn chia u (balanced) th:
Gi t l thi gian phn pht d liu v gi tr v kt qu th:
Thi gian tt nht l: T= t+ max {t
1
, t
2
,,t
n
}
V d 2: Bi ton qun l nhn vin
Thng tin ca mi nhn vin l mt bn ghi, v c trng salary cha thng tin v h s lng
ca tng nhn vin.
Bc 1: Phn pht mi mt b x l (PE) lu tr mt bn ghi v nhn vin.
Bc 2: on chng trnh sau c thc hin ng thi:
If salary >100K then
Salary=salary * 1.05
Else
Salary=salary * 1.10
Ton b lng ca nhn vin c tnh trong 1 bc. S c mt s b x l c thc hin, cn
li s khng c kch hot (disabled).
1.2.4 My tnh nhiu dng lnh, mt dng d liu (MISD)
MISD l mt kin trc song song m trong ti mi thi im cc b x l thc hin cc thao
tc khc nhau trn cng mt d liu. My tnh MISD c ngha v mt l thuyt nhiu hn thc
t. Trn thc t, cha c my tnh MISD no c thng mi ha.
My tnh MISD cn c gi l my tnh vi cc mng Systolic (Systolic arrays machine), chng
ng vai tr i vi cc bi ton lm mn d liu bng cch bm (pump) d liu t b x l
ny n b x l khc. Mi b vi x l c th thay i d d liu trc khi chuyn d liu sang
b x l khc. Cc thao tc thay i d liu trn cc b vi x l c th khc nhau.
Hnh 1.15. Kin trc MISD
IS : Instruction Stream dng lnh
DS: Data Stream dng d liu
CU : Control Unit B iu khin
PU : Processing Unit B x l.
Hai ng dng trong thc t m my tnh MISD c th nhm ti l h thng h tr x l a
pipeline (hyper pipeline) v h thng dung th li (fault tolerance).
V d minh ha: chng trnh tm max, min v medium ca 3 s.
Hnh 1.16. Mt v d thc hin trn my tnh MISD
Vi mt dng d liu u vo gm cc s a,b v c. Dng d liu ny i qua my tnh MISD l
c my tnh MISD thc hin ng thi 3 thao tc: tm gi tr ln nht, b nht v trung bnh
ca ba s trn.
1.2.5 My tnh nhiu dng lnh, nhiu dng d liu (MIMD)
My tnh MIMD cn c gi l my tnh a b x l (multiprocessors) trong cc b x l c
cc chc nng c lp nhau. Ti bt c thi im no, cc b x l ca my tnh MIMD c th
thc hin cc lnh khc nhau trn cc d liu khc nhau mt cch khng ng b. My tnh
MIMD v ang c ng dng rt rng ri trn nhiu lnh vc nh: thit k v sn xut c s
tr gip ca my tnh (computer-aided design/ computer-aided manufacturing), m phng, m
hnh ha, chuyn mch Cc my tnh MIMD c th c b nh chia x hoc phn tn ty thuc
vo cch thc truy cp b nh ca cc b vi x l.
Di y l mt s loi my tnh MIMD thng dng.
a. My tnh MIMD vi b nh chia s
Hnh 1.17. Kin trc my tnh MIMD
My tnh MIMD vi b nh chia s bao gm cc b vi x l cng chia s mt b nh ton cc.
B nh ton cc l mt b nh c qun l tp trung m cc b vi x l u c th truy cp
c a ch bt k. B nh ton cc bao gm nhiu m un nh.
My tnh MIMD vi b nh chia s c th d dng nng cp (scalability) p ng nhu cu tnh
ton: d b sung cc m un b nh v b vi x l. Vic qun l trao i vo/ ra c thc hin
bi cc b iu khin (Control unit) hoc thit b vo ra (I/O devices).
Trn thc t c 3 loi my tnh MIMD vi b nh chia s:
- My tnh MIMD vi b nh chia s da trn bus (bus-based shared memory MIMD machines):
Tt c cc b x l c kt ni vi nhau thng qua mt h thng Bus v h thng Bus ny cng
c kt ni ti cc b x l. Ty theo thit k hoc nhu cu thc t m loi my tnh ny c th
c cc loi bus khc nhau hoc cho php cc b vi x l giao tip trc tip vi nhau. Thng
thng th cc loi bus ny cng c s dng ng b gia cc b x l. My tnh MIMD
da trn bus c nhc im l ti mt thi im, khng c nhiu b vi x l c h tr truy cp
b nh v kh nng tranh chp ng truyn (contention) khi s dng bus truy cp b nh
ton cc l rt ln. Chng phi tun theo c ch trng ti bus trong khi s dng cc bus chung
truyn ti d liu. Khi nhu cu v trao i d liu cng ln, th kh nng tranh chp ng truyn
v thi gian ch gia cc b x l cng cao. iu ny lm nh hng n hiu sut chung ca
ton h thng.
- My tnh MIMD vi b nh chia s m rng (extended shared memory MIMD machines): My
tnh MIMD vi b nh chia s m rng c sinh ra khc phc tnh trng tranh chp ng
truyn khi s dng bus truy cp b nh ton cc. Bng cch chia nh b nh ton cc thnh
cc n v b nh nh hn nhng c lp vi nhau. Nhng n v b nh ny s c kt ni vi
cc b vi x l bng mt lin mng (interconnection network). Cc n v b nh c xem nh
mt b nh tp trung hp nht. Lin mng c s dng trong kin trc ny c th l mt mng
chuyn mch cho (crossbar switching network). Trong lin mng ny, nu c N b vi x l c
kt ni n M n v b nh v cn N*M chuyn mch. S chuyn mch l kh ln khi m rng
kin trc; gy tn km v mt kinh t nu phi kt ni mt s lng ln b x l.
- My tnh MIMD vi b nh chia s phn cp (hierarchical shared memory MIMD machines):
My tnh MIMD vi b nh chia s phn cp s dng mt h thng bus phn cp cho php cc
b vi x l c th truy cp b nh ton cc. Cc bus ni b c s dng giao tip gia cc b
vi x l trn cng mt bo mch (board). Cc bus ngoi cho php cc b vi x l nm trn cc bo
mch khc nhau c th giao tip c vi nhau. Vi kin trc ny my tnh c th h tr m rng
n hng ngn b vi x l.
b. My tnh MIMD vi b nh phn tn
Trong my tnh MIMD vi b nh phn tn, mi b vi x l c ring mt b nh cc b. Cc d
liu cn chia s c truyn t b x l ny n b x l khc nh cc thng ip (message). V
khng c b nh chia s nn vic tranh chp ng truyn (contention) khng cn l hn ch i
vi loi my ny. Tuy nhin, m hnh ny i hi chi ph cao trong trng hp c nhiu b vi x
l v chng c kt ni trc tip vi nhau. Mt cch gim bt chi ph l hn ch s lng b
x l kt ni trc tip: mt b vi x l c th kt ni vi 1 s b vi x l khc thay v kt ni vi
tt c cc b vi x l cn li. Cch thit k ny trn thc t li km hiu qu v thi gian yu cu
truyn thng ip gia hai b vi x l v cc thng ip phi i qua cc b vi x l trung gian.
C hai cch t chc b vi x l thng dng c th gim c thi gian truyn ti cc thng ip
gia cc b vi x l l: t chc theo mng hnh siu khi v hnh li m ta s tho lun cc
phn sau.
1.2.6 Hiu sut ca My tnh song song
Hiu sut (performance) l s lng cng vic c hon thnh trong mt n v thi gian (work
done per time unit).
V d: v tnh hiu sut ca mt my tnh SIMD
Tnh tng hai vector c kch thc 1024 A v B,
Bit rng : thi gian thc hin 1 php cng l 1 s.
Bc 1: b vi x th i s nhn cc phn t A[i] v B[i] vi i= 1..1024.
Bc 2: thc hin cng chng mt cch song song.
Tnh hiu Sut trong 2 trng hp :
Trng hp 1: S b vi x l l 1024.
P= (1024 php tnh) / (1 chu k * 1 s) = 1024 * 10
9
ops/ s
Trng hp 2: S b vi x l l 1000.
P= (1024 php tnh) / (2 chu k * 1 s) = 512 * 10
9
ops/ s
Ch c 24 b x l thc hin trong chu k th 2, 1000 b x l khc idle. iu kin mt b vi
x l c th idle l do khng c d liu hoc l do cu lnh c iu kin.
1.3 T chc cc b vi x l
Trong phn ny ta s tho lun 9 m hnh t chc cc b vi x l quan trng ca s kt ni cc b
vi x l trong cc my tnh song song. Mt m hnh t chc cc b vi x l c th c biu din
bi mt th trong cc nh (vertices) hoc nt (node) biu din cc b vi x l v cc cnh
(edges) biu din cc ng truyn thng gia cc cp b vi x l. Di y l cc tiu chun
nh gi tnh hiu qu ca cc m hnh t chc cc b vi x l i vi cc thut ton song song
thc hin trn phn cng.
ng knh (diameter) : ca mt mng cc b vi x l l khong cch ln nht gia hai nt.
ng knh cng nh th cng tt v ng knh l cn di ca phc tp v truyn thng ca
cc thut ton song song. N ch s b vi x l trung gian t nht m thng ip phi i qua gia
hai b vi x l bt k.
rng phn i (Bisection width): ca mt mng cc b vi x l l s cnh nh nht c th b
i chia mng thnh hai na (hn km nhau khng qu 1 nt). rng phn i cng ln th
cng tt bi v trong cc thut ton yu cu mt lng ln d liu c di chuyn th kch thc
ca tp d liu chia cho rng phn i s l cn di ca phc tp v truyn thng ca mt
thut ton song song.
S cnh ca mt nt (number of edges per node): Trng hp tt nht l s cnh ca mt nt l
mt hng s c lp vi kch thc ca mng; Bi v, nu vy ta s d dng m rng mng vi
mt s lng nt ln.
1.3.1 Mng hnh li (Mesh)
Trong mt mng hnh li, cc nt c sp xp trong mt li q-chiu. Ch cc nt ln cn c
th giao tip c vi nhau v vy mt nt trong c th giao tip c vi 2q nt.
Mt s bin th ca mng hnh li cho php cc kt ni vng (wrap-around) gia cc b vi x l
trn cc cnh ca hnh li. Cc kt ni ny c th kt ni cc b vi x l trn cng mt hng
hoc ct hoc cc cnh bn ca hng hoc ct.
Hnh 1.18. Mng hnh li
Ta hy nh gi mng hnh li theo cc tiu chun trn:
Gi s mt mng hnh li khng cha cc kt ni vng. ng knh ca mt mng hnh li q
chiu vi k
q
nt l q(k-1). V vy, theo quan im trn, mng hnh li s c nhc im l s di
chuyn d liu s lm gia tng phc tp v truyn thng ca thut ton song song thc hin
trn hnh li. Tuy nhin trong thc t, cc my tnh song song t chc cc b x l theo mng
hnh li thc thi mt s kt ni nhanh lm gim phc tp v truyn thng.
rng phn i ca mt mng hnh li q chiu l k
q-1
v s cnh ca mt nt l 2q.
T chc CPU theo mng Mesh 2 chiu c s dng rng ri cc my tnh mng b vi x l nh:
Goodyear Aerospace s MPP
TM
, the AMT DAP
TM
, Intel Paragon v MP-1
TM
ca MasPar.
1.3.2 Mng hnh cy nh phn (Binary Tree Networks)
Trong cy nh phn, 2
k
-1 nt c sp xp trong mt cy nh phn hon chnh vi chiu cao k-1.
Mi nt c nhiu nht l 3 lin kt. Mi nt bn trong (nu khng l nt gc) c th giao tip
c vi 2 nt con v 1 nt cha ca n.
Hnh 1.19. Mng hnh cy nh phn
Mng hnh cy nh phn c 2 dng: a) mng tnh trong mi nt u l cc phn t x l v b)
l mng ng trong ch c nt l l cc phn t x l; cc nt trong l cc nt chuyn mch
(cho vic di chuyn d liu gia cc nt).
Mng hnh cy nh phn c ng knh l 2(k-1), rng phn i l 1.
Nh vy, mng hnh cy nh phn c ng knh tt (nh), nhng rng phn i khng tt.
1.3.3 Mng hnh siu cy (Hypertree networks)
Mng hnh siu cy th hin mt cch tip cn xy dng mt mng vi ng knh nh ca
mng cy nh phn v ci tin rng phn i. Mt mng siu cy cp k v su d c nhn
t hai pha: nhn pha mt trc (front view) nh mt k-cy vi chiu cao d. Nhn t pha bn
cnh (side view) siu cy nh mt cy nh phn chiu cao d t di ln trn. Kt hp gia nhn
pha trc v bn cnh l mng hon chnh. Hnh 1.20c l mt mng vi cp 4 chiu cao 2.
Hnh 1.20. Mt mng hnh siu cy; a. nhn t mt trc; b. nhn t bn cnh; c. nhn y
Xt mt 4-siu cy vi cao d c 4
d
l v 2
d
(2
d+1
-1) nt. ng knh ca mng ny l 2d,
rng phn i l 2
d+1
. S cnh ca mt nt khng vt qu 6.
Mt v d v my tnh song song c cch t chc b x l theo siu cy (4-siu cy) l
Connection Machine CM-5 multicomputer.
1.3.4 Mng hnh thp (Pyramid networks)
Mng hnh thp l s kt hp cc u im ca mng hnh li v mng hnh cy. Mt mng hnh
thp kch thc k
2
l mt 4-cy vi cao log
2
k v b sung cc lin kt gia cc b vi x l sao
cho cc b vi x l trong mi mc ca mng hnh thnh mt mng 2-D mesh (Miller & Stout
1987).
Mt mng hnh thp kch thc k
2
c nn l mt 2-D mesh vi k
2
b vi x l. Tng s b vi x l
trong mng hnh thp kch thc k
2
l (4/3) k
2
-(1/3). Cc mc ca mng hnh thp c nh s
theo chiu tng v mng Mesh nn c mc 0, v c mt b vi x l n nh c mc log
2
k. Mi
b vi x l pha trong c kt ni vi 9 b vi x l khc; trong , 1 nt cha, 4 nt trong cng
mc v 4 nt con. Hnh 1.21 l mt mng hnh thp c kch thc 16.
Hnh 1.21. Mt mng hnh thp c kch thc 16.
Mt u im ca mng hnh thp l trn cc mng hnh li 2 chiu th ng knh s gim.
Chng hn, khi mt thng ip c trao i t hai b vi x l bt k trong mng th s di chuyn
t mc ny n mc khc s phi qua cc b vi x l trung gian t hn l di chuyn bn trong
mng hnh li.
ng knh ca mt mng hnh thp kch thc k
2
l 2 log
2
k.
Khi b sung thm cc lin kt khng lm tng ng k rng phn i. rng phn i i
vi mt mng hnh thp kch thc k
2
l 2k.
S cnh trn mi nt khng vt qu 9.
1.3.5 Mng hnh bm (Butterfly networks)
Mt mng hnh bm bao gm (k+1)2
k
nt c chia vo k+1 hng hay bc (ranks); mi hng
cha n= 2
k
nt. Cc hng c gn nhn t 0 n k, hng 0 v k i khi c kt hp li cho
mi nt c kt hp vi 4 nt khc.
Gi s nt (i,j) l nt th j trn hng i, vi 0 i k v 0 j n. Th nt (i,j) trn hng i>0 c
kt ni ti 2 nt hng i-1 l (i-1,j) v (i-1,m) vi m l s nguyn khi ta o ngc bt th i bn
tri nht (the ith most significant bit) trong biu din nh phn ca j.
V d: hnh 1.22, nt(2,5) hng 2 ct 5 s kt ni ti 2 nt l (1,5) v (1,7) v:
5=0101, bt th 2 (i=1) l tnh t bn tri nht l 0 (0,1,2) sau khi o s l 0111=7.
Ch rng, nu nt (i,j) c kt ni ti nt (i-1,m) th nt (i,m) c kt ni ti nt (i-1,j). V
vy, ton b mng c t chc ging nh hnh bm nn c tn nh vy.
Khi s hng tng, th rng ca cnh bm s tng theo hm s m (exponentially).
Hnh 1.22. Mt mng hnh bm
ng knh ca mt mng hnh bm vi (k+1)2
k
nt l 2k v rng phn i l 2
k-1
.
Mt s my tnh song song da trn m hnh ny nh my tnh a b x l BBN TC 2000.
1.3.6 Mng hnh siu khi (Hypercube networks)
Mt mng kt ni kiu siu khi cn c gi l mt n-lp phng nh phn. Bao gm 2
k
nt
hnh thnh ln mt siu khi k-chiu. Cc nt c gn nhn 0,1,22
k
-1. Hai nt cnh nhau nu
chng khc nhau chnh xc 1 v tr bt. Hnh 1.23 l v d v cc mng siu khi 0,1,2,3,4 chiu.
Hnh 1.23. Cc mng siu khi 0,1,2,3,4 chiu
ng knh ca mt mng siu khi vi 2
k
nt l k, rng phn i l 2
k-1
. So vi cc mng
khc th mng siu khi c ng knh nh so vi kch thc ca mng.
S cnh trn nt l k, chnh bng logarit ca s nt trn mng.
Mng hnh siu khi tng tr nn thng dng nht i vi cch t chc cc b vi x l cho
cc my tnh a b vi x l th h th nht v th hai. Mt s my tnh song song da trn m
hnh ny l: nCUBE, my tnh mng cc b x l Connecttion Machine CM-200.
1.3.7 Mng cc chu trnh hng kt ni khi (Cube-Connected Cycles networks)
Mng cc chu trnh hng kt ni khi l mng siu khi k chiu vi 2
k
nh. Cc chu trnh gm
k nt, c hnh thnh bi cc ct ca mng hnh bm hng 0 v k kt hp li. Vi mi chiu,
mi chu trnh c 1 nt c kt ni ti 1 nt trong chu trnh bn cnh ca chiu .
Nt (i,j) c kt ni ti nt (i,m) nu v ch nu m l kt qu khi ta o ngc bt th i bn tri
nht (the ith most significant bit) trong biu din nh phn ca j. Ch rng, cc kt ni khc vi
mng hnh bm 1 cht ch: nu nt (i,j) c kt ni ti nt (i-1,m) trong mng hnh bm
khi j m, th nt (i,j) c kt ni ti nt (i,m) trong mng cc chu trnh hng kt ni khi. Tuy
nhin, trong mng cc chu trnh hng kt ni khi, nt (i,j) c th giao tip vi nt (i-1,m) theo
2 cch v c mt kt ni trc tip t nt (i,m) ti (i-1,m).
Hnh 1.24. Mng cc chu trnh hng kt ni khi 3 chiu
So vi mng siu khi, t chc cc b vi x l theo mng cc chu trnh hng kt ni khi c u
im l: s cnh trn nt bng 3 v l hng s khng ph thuc vo kch thc ca mng. Tuy
nhin, mng cc chu trnh hng kt ni khi c nhc im l: ng knh ca mng gp 2 ln
ng knh ca mng hnh siu khi v rng phn i thp hn.
Mt mng cc chu trnh hng kt ni khi kch thc k2
k
c ng knh l 2k v rng phn
i l 2
k-1
.
1.3.8 Mng hon v di chuyn (Shuffle-exchange networks)
Mt mng hon v di chuyn bao gm n=2
k
nt, c nh s t 0,1,2,,n-1, v s hai loi kt
ni l di chuyn (shuffle) v hon v (exchange). Cc kt ni hon v lin kt cc cp nt th i vi
nt th 2i modulo (n-1); tr nt th n-1 c kt ni n chnh n. Hnh 1.26 l mt mng hon
v di chuyn vi 8 nt.
Mng hon v di chuyn cn c mt tn khc l mng di chuyn hon ho (perfect shuffle).
d hnh dung ta xem s di chuyn ca 8 qun bi c nh s 0,1,2,3,4,5,6,7 trn mt chic bn.
Nu chic bn c chia lm hai na v s di chuyn l hon ho th kt qu cho ta th t sau:
0,4,1,5,2,6,3,7. Ta c th kim nghim iu ny qua hnh 1.25 v rng v tr cui cng ca
qun bi bt u vi ch s i c th c xc nh theo sau s di chuyn lin kt t nt i.
Gi s, a
k-1
a
k-2
a
1
a
0
l a ch di dng nh phn ca mt nt trong mt mng di chuyn hon
ho. D liu ny c th lin kt ti a ch a
k-2
a
1
a
0
a
k-1,
, theo sau l mt thao tc hon chuyn.
Ni mt cch khc, s thay a ch ca mt mu d liu sau mt thao tc di chuyn tng ng
vi vic quay tri (left cyclic rotate) a ch 1 bt. Nu n=2
k
, th cn k thao tc di chuyn
chuyn mt mc d liu v v tr ban u. Nhng nt trung gian m mc d liu bt u a
ch i di chuyn theo yu cu ca mt dy cc thao tc di chuyn c gi l chui di chuyn ca i
(necklace). Nu mt chui di chuyn ca i nh hn k th c gi l mt chui di chuyn ngn.
Hnh 1.25. Thao tc hon chuyn trn mt mng hon v di chuyn.
Hnh 1.26. Mt mng hon v di chuyn vi 8 nt
Mi nt trong mng hon v di chuyn u c hai nt vo v hai nt ra. di ca lin kt di
nht tng theo mt hm ca kch thc mng. S lin kt di s ci tin ng knh v rng
phn i trong mng hon v- di chuyn. Trong mng hon v- di chuyn th ng knh l l ga
rt i vi s nt. Mt mng vi 2
k
nt th ng knh l 2k-1 v rng phn i b nht l (2
k-
1
/k).
Siegel (1979) pht trin mt ci tin ca mng hon v-di chuyn l mng Omega, tng
ng vi mng hnh siu khi cp k.

1.3.9 Mng de Bruijn
Mng de Bruijn bao gm n=2
k
nt. Gi s a
k-1
a
k-2
a
1
a
0
l a ch ca mt nt trong mng de
Bruijn th hai nt c lin kt trc tip vi nt s l : a
k-2
a
1
a
0
0 v a
k-2
a
1
a
0
1.
S cnh ca mt nt l hng s v c lp vi kch thc mng. rng phn i ca mt mng
de Bruijn vi 2
k
nt l 2
k
/k. Tng t mng hon v-di chuyn, mng de Bruijn c cha cc kt
ni di chuyn (shuffle).
Hnh 1.27. Mt mng de Bruijn vi 8 b x l.
ng knh ca mng de Bruijn vi 2
k
nt l k.
Mt s my tnh song song da trn mng de Bruijn nh my Triton/1
TM
. y l mt my tnh
song song lai gia hai m hnh SIMD v MIMD c thit k bi trng i hc Karrlsruhe nm
1992.
1.3.10 Tng kt v t chc cc b vi x l
Trong 9 kiu t chc ta xt trn c tm tt trong bng sau:
Mng S nt ng knh rng phn
i
S cnh l
hng s?
1-D hnh li K k-1 1 ng
2-D hnh li k
2
2(k-1) K ng
3-D hnh li k
3
3(k-1) k
2
ng
Cy nh phn 2
k
-1 2(k-1) 1 ng
Siu cy 4
chiu
2
k
(2
k+1
-1) 2k 2
k+1
ng
Hnh thp (4k
2
-1)/3 2logk 2k ng
Hnh bm (k+1) 2
k
2k 2
k
ng
Siu khi 2
k
K 2
k-1
Khng
Hng kt
ni khi c
chu trnh
k2
k
2k 2
k-1
ng
Hon v-di
chuyn
2
k
2k-1 >=2
k-1
/k ng
de Bruijn 2
k
K 2
k
/k ng
1.4 Cc h thng mng b x l, a b x l, v a my tnh
1.4.1 H thng mng b vi x l (processor arrays)
a. My tnh vector
Mt my tnh vector l mt my tnh m tp lnh ca n cha cc thao tc trn cc vector c
hng hoc v hng (scalar). Ni chung, c hai loi my tnh vector l:
B x l vector kiu pipeline (pipelined vector processor) c kh nng x l cc dng vector
(lnh) t b nh n CPU m cc b x l ton hc c th thao tc vi chng bng c ch
pipeline. Mt s my tnh song song c kiu t chc ny l Cray-1
TM
v Cyber-205
TM
.
Mng b x l (processor array) l my tnh vector bao gm mt my tnh tun t c kt ni
n mt tp cc phn t x l (processing elements) ng b, ring bit c kh nng thc hin
cng mt thao tc trn cc d liu khc nhau mt cch ng thi. My tnh tun t thng c
gi l front-end.
Front-end l mt CPU a nng cha chng trnh v cc d liu khng th x l song song. ng
thi, front-end c th thc hin cc phn tun t ca chng trnh (trong mt chng trnh, c th
c nhm lnh khng th thc hin song song c, nhm lnh phi c thc hin tun t).
Mi phn t x l c mt b nh cc b nh m n c th truy cp trc tip. Tp hp li, cc b
nh cc b ca cc phn t x l lu tr vector d liu s c thao tc mt cch song song. Khi
my tnh front-end gp mt lnh m ton hng ca lnh l mt vector, n s pht ra mt lnh
yu cu cc phn t x l thc hin lnh mt cch song song. Mc d cc phn t x l thc
hin song song, cc b x l ny c th c lp trnh l i bt c lnh khng cn thit no.
Chng hn, trong trng hp kch thc vector nh hn s phn t x l, mt vi phn t x l
s khng c d liu thc hin lnh do front-end yu cu, chng s b idle v c lp trnh
l i lnh ny trnh gy ra li (bug) hoc ngoi l (exception). Mt trng hp khc l khi
thc hin cc cu lnh iu kin nh ifthen hoc ifthenelse , mt s b vi x l s b che
(masked) trong qua trnh thc hin do qu trnh thc hin trn my tnh mng cc phn t x l l
ng b.
Thng thng, cc lung d liu c th di chuyn bng mt trong ba cch sau: i t front-end n
mng cc phn t x l, gia cc phn t x l trong mng, v i t mng cc phn t x l n
front-end. Cc phn t x l trao i d liu vi nhau thng qua mt mng kt ni
(interconnection network).
Hnh 1.28. Mt my tnh mng cc b x l.
Chnh v vy, cch thc t chc cc b vi x l theo m hnh mng li 2-D l ph hp nht. Mt
s cch t chc khc nh: hnh siu khi, hnh hng khi c chu trnh, v hon v-di chuyn
cng c gii thiu cho my tnh vi mng cc b x l.
My tnh mng cc b vi x l c mt c ch rt hiu qu i vi front-end l pht tn
(broadcast) cc lnh v d liu n cc phn t x l. Hn na, my tnh vi cc mng b vi x
l cng h tr front-end truy cp b nh cc b ca bt k phn t x l no rt hiu qu. Phn
pht cc thao tc nhanh v truy cp b nh hiu qu ng vai tr quan trng trong nhiu thut
ton song song.
b. My tnh CM-200
Mt v d v my tnh vi mng cc b vi x l l my tnh Connection Machine CM-200 c
thit k v ch to bi tp on Thinking Machine.
My CM-200 bao gm ba thnh phn c bn: mt my tnh front-end, mt b x l song song
(parallel processing unit) v mt h thng vo/ra. My tnh front-end thng thng l mt my
trm ca cng ty my tnh Sun. N lu tr d liu tun t v thc hin phn tun t ca chng
trnh. Cc d liu song song c lu tr trong b x l song song. My tnh front-end phn pht
(broadcast) cc lnh song song ti b x l song song thc hin. H thng vo/ra tc cao
cho php d liu c di chuyn gia b x l song song v cc thit b vo/ra nh cc khung
vng m (frame buffer) v cc a song song (parallel disk devices).
Hnh 1.29. My tnh CM-200.
My tnh front-end c th trao i d liu vi cc phn t x l theo ba cch. N c th phn pht
(broadcast) mt gi tr d liu ti tt c cc phn t x l. Thng qua cc tnh ton ton cc, ta c
th tnh c tng, gi tr ln nht, OR ton ccca mt gi tr t mi phn t x l. Bng vic
s dng bus b nh v hng (scalar memory), b x l front-end c th c hoc ghi cc gi tr
32-bt c lu tr trn bt k phn t x l no.
B x l song song cha khong 2048 n 65536 phn t x l, mt b x l lnh tun t v cc
mng truyn thng gia cc b vi x l, b iu khin vo /ra v/ hoc cc m un vng m
khung truyn.
Front-end phn pht cc lnh x l song song ti b x l tun t, n dch tng lnh v sinh ra
mt tp vi lnh (nanoinstructions). N phn pht (broadcast) cc vi lnh ny qua mt bus truyn
ti lnh (instruction bus) ti cc phn t x l, sau cc phn t x l s thc hin vi lnh.
PARIS (PARallel Instruction Set) l tp lnh ca my tnh CM-200, lm n gin ha chng
trnh dch bng cch cung cp cc thao tc tng t nh mt tp lnh my tnh in hnh. Mt s
lnh PARIS thc hin cc thao tc tnh ton trn nhiu loi d liu, nhng lnh khc lm thun
tin vic truyn thng gia cc phn t x l v my tnh front-end.
Bng vic h tr cc my o, PARIS cng to ra s ngn cch an ton (insulating) gia ngi s
dng vi mng b vi x l bn di. Mt chng trnh c th gi s s tn ti ca mt s lng
cc phn t x l bt k, v nhng my o ny c nh x ln cc phn t x l vt l. Tnh
nng ny cho php cng mt chng trnh chy trn cc h thng Connection Machine vi cc s
lng b vi x l khc nhau.
Nhn chung, bt k khi no mt thao tc (operation) PARIS c thc hin, mi phn t x l c
th thc hin thao tc nhiu ln, mi ln s c b x l o nh x vo. Cc phin bn ca b
nh o ca ba c ch h tr truyn thng cng tn ti trong tp lnh PARIS.
Cc phn t x l ca my tnh CM l cc b x l bt tun t (bit-serial processors). Mi phn t
x l c mt c trng thi (contex flag) ch ra rng phn t x l c che (screened) hay
khng. Cc phn t x l c che khng lu tr cc kt qu tnh ton. Mi phn t x l c 3
bt u vo (2 bt t b nh v 1 bt t c trng thi) v 2 bt kt qu (1 bt n b nh v 1 bt
n c trng thi).
Hnh 1.30. Kin trc b x l i ca my CM-200.
Mt phn t x l c th tnh ton hai hm Boolean bt k t 3 u vo. Cc hm ny c m t
bng 2 byte c biu din trong bng chn l (Truth table). Ni cch khc, phn t x l tnh
ton kt qu ca hm Boolean bng vic tra cu bng chn l t ba bt u vo.
Chng hn, bng chn l sau c s dng thc hin php cng bt tun t (bit-serial
addition). Trong trng hp ny, hai hm trn ba u vo s c thc hin (carry-out) v cng
(sum). cng hai s nguyn k-bt c lu tr trong b nh cc b ca n, mt phn t x l
ti c trng thi (context flag) ca b x l o (virtual processor)vo mt thanh ghi c ca phn
cng (vt l). Tt c cc kt qu ca php ton trn ALU s phn nh vo trng thi ca c ny.
Tip theo, b x l s xa c th 2 (c ny c chc nng nh mt bt nh (carry bit). Sau , b
x l lp k ln qua mt chu k trong n c bt nh v mt bt ca mi ton hng (operand)
v tnh bt tng v bt nh. Vic tnh ton bt u vi bt c trng s b nht (least significant
bits) ca cc ton hng v kt thc vi bt c trng s cao nht (most significant bits).
INPUT BITS OUTPUT BITS
B nh B nh C B nh C
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1


Mt chp VLSI n cha 16 phn t x l cng vi phn cng h tr truyn thng (routing
hardware). Mi cp chp x l chia x mt nhm chip b nh. Mt chp lm giao din du phy
ng (floating point interface chip) v mt chip thc hin cc php tnh lin quan n du phy
ng (floating-point execution chip) nh hnh (3-14, pg 66).
Cc chip b nh cung cp mt ng d liu 44 bt c chuyn i thnh mt ng d liu 32
bt v mt ng 12 bt m ha cc m khc phc li (error-correcting code). 32 bt d liu c th
c trc tip gi n 32 phn t x l bt tun t. Mi bt cho mt phn t x l. Tip n, cc
bt d liu 32 bt s c gi trc tip n chip giao din x l du phy ng. Chip giao din x
l du phy ng c th s s dng d liu ny iu khin cho cc a ch gin tip, hoc gi
cc d liu ny n chip thc hin cc php tnh lin quan n du phy ng.
Chip thc hin cc php tnh lin quan n du phy ng tr li kt qu dng 32-bt. B giao
din s lu li nhng kt qu ny vo b nh. Hiu sut ln nht ca b tnh ton du phy ng
khi thc hin cc php ton 32 bt l 20 megaflops. My CM c th c n 2048 chip thc hin
cc php tnh lin quan n du phy ng v hiu sut t ti a l 40 Gigaflops.
My tnh CM c ba c ch giao tip (routing machanisms). Ph bin v n gin nht l dung b
nh tuyn (router). C ch ny cho php bt k phn t x l no cng c th giao tip c vi
nhau. Mi chp x l c mt nt nh tuyn c th phc v 16 phn t x l trn chip. Cc nt
nh tuyn c ni dn (wired) vi nhau hnh thnh nn 1 siu khi. Trong cu hnh tng
qut ca my tnh CM bao gm 65,536 phn t x l c cha trn 4096 (2
12
) chip x l. V
vy cc b x l ca CM c t chc theo mt mng 12 siu khi 12 chiu. Mi thng ip i
qua cc nt nh tuyn cho n khi n n c chip cha b vi x l ch. Cc nt nh tuyn
(rounter nodes) t ng gi cc thng ip v thc hin vic vic cn bng ti ng (dynamic
load balancing). Chng hn, ng i ca thng ip c th bin i, ph thuc vo nhng ng
i ang rnh ri.
Mi nt nh hng c mt ALU c kh nng thc hin vi thao tc ton hc. B nh tuyn
kim tra xem cc thng ip c cng n 1 ch hay khng?. Nu iu xy ra n s kt hp
cc thng ip da trn ng ngha ca cc lnh s c thc hin. Chng hn nh c th tnh
tng, tnh gi tr ln nht, tnh php tnh logic ca cc gi tr hay n gin ch l b i tt c cc
gi tr khc v ch gi li 1 gi tr duy nht.
C ch nh tuyn th hai c gi l NEWS grid. Mt mng hnh li j chiu c th c nhng
trong mt mng siu khi k chiu nu j k. V vy, mt tp con ca cc dy ni h tr b nh
tuyn c th hnh thnh mt mng li Cartesian, m Thinking Machine gi l NEWS grid. Nu
cc giao tip gia cc phn t x l l ln cn (neighbors) trong mt NEWS grid ca bt k chiu
no nh hn hoc bng s chiu ca siu khi, th tc truyn ti thng ip (message passing
speed) s cao hn nhiu nu cc thng ip i qua b nh tuyn. H thng gi cc thng ip
nh vy s dng ba phng php truyn ti c bit, hai trong ba phng php c thc hin
bi phn cng.

1.4.2 My tnh a b x l (Multiprocessors)
My tnh nhiu b x l (multiple-CPU computers) c mt s b vi x l c th lp trnh c,
mi b vi x l c kh nng thc hin chng trnh ca n. a b vi x l c th l cc my tnh
c nhiu b vi x l vi mt b nh chia x. C hai phng thc t chc my tnh a b vi x l
l: chia x b nh tp trung (Uniform Memory Access- UMA) v chia x b nh phn tn (Non-
uniform Memory Access- NUMA).
a. My tnh a b x l chia x b nh tp trung (UMA multiprocessors)
Cch thc b vi x l lin lc n gin nht l gi s rng tt c cc b vi x l lm vic qua c
ch chuyn mch tp trung ti b nh chia x tp trung nh hnh (?).
Hnh 1.31. My tnh a b x l chia x b nh tp trung truy cp b nh ton cc v thit b vo/ra
thng qua c ch chuyn mch tp trung
C nhiu cch thc thi b nh chuyn mch ny, bao gm mt bus chung ti b nh ton cc,
mt b chuyn mch cho (crossbar switch) v mt mng chuyn mch gi. My tnh Encore
Multimax
TM
v Sequent Symmetry S81
TM
l cc v d ca my tnh a b x l chia x b nh
tp trung thng mi.
Cc h thng s dng mt bus nh Multimax hay Symmetry c gii hn bng kch thc do
nhiu b vi x l chia x mt bus trc khi n b bo ha (saturated). Trong trng hp cc h
thng s dng mt b chuyn mch cho, chi ph ca chuyn mch s tr thnh mu s, iu ny
gii hn s lng b x l c kt ni. My tnh a b x l chia x b nh tp trung da trn
cc mng chuyn mch c th c mt s lng ln cc b x l. Mc d cha c my tnh thng
mi no c kin trc nh vy xut hin, mt my tnh th nghim da trn my tnh a b x l
chia x b nh tp trung c tn l NYU Ultracomputer da trn mng chuyn mch omega (mt
bin th ca mng hon v-di chuyn). Chi ph cho mt h thng vi p b x l da trn mng
omega l O (plogp) thp hn so vi chi ph O(p
2
) cho h thng da trn chuyn mch cho.
Hnh 1.32. Mt my tnh a b x l UMA.
b. My tnh a b x l chia x b nh phn tn (NUMA multiprocessors)
My tnh a b x l chia x b nh phn tn ging my tnh a b x l chia x b nh tp trung
im l chng cng chia x khng gian a ch nh. Nhng chng khc nhau bi im c bn:
My tnh a b x l chia x b nh phn tn s dng b nh phn tn. Mi b x l c ring
mt b nh cc b v khng gian a ch nh chia x l s kt hp ca cc b nh cc b ny.
Thi gian cn thit truy cp tng b nh cc b trn my tnh a b x l chia x b nh phn
tn ph thuc vo v tr cc b i vi b x l.
Mt v d v My tnh a b x l chia x b nh phn tn l my tnh TC2000 c thit k v
sn xut bi cng ty BBN Systems and Technologies thnh ph Cambridge, bang
Massachusetts- Hoa k. My tnh TC 2000 c 128 nt x l. Mi nt x l gm mt CPU
Motorola 88100, ba chip Motorola 88200 cung cp 2 loi b nh cache l b nh cache lnh v
cache d liu vi kch thc t 4 n 16 MB, v giao din chuyn mch da trn mng hnh
bm v bus VME (hnh (?)). Cc giao dch da trn bus kt ni cc h thng b x l con.


Hnh 1.33. Mt nt x l ca my tnh BBN TC2000
Hiu sut ln nht ca mt b x l n l 20 megaflop. Mt my tnh TC2000 vi 128 b x l
c th t ti hiu xut khong 2.5 gigaflop.
Phn cng trn mi nt x l bin i a ch o 32 bt thnh a ch vt l 34 bt. a ch vt l
c th trong b nh cache, cng b nh cc b trn b x l hoc c th l b nh cc b trn
mt x l khc. Tc truy nhp b nh cache l nhanh nht. D liu cc b (private data) v d
liu chia s ch c (read-only shared data), chng hn nh m ngun chng trnh, c th c
lu trong b nh cache. D liu t b nh vt l ca b x l c th c c ln bus. D liu t
b nh ca b x l khc c th c ly bng cch gi mt yu cu qua mng chuyn mch hnh
bm.
My TC 2000 khng phi duy tr s nht qun d liu trn cc b nh cache ca cc b x l.
l l do ti sao m cc h iu hnh ch a mt s lng hn ch d liu vo b nh cache.
Hnh (3-18 v 3-19) minh ha mt chuyn mch kiu hnh bm. Mi nt ca chuyn mch l
mt phn t chuyn mch VLSI vi 8 u vo v 8 u ra. V vy, s phn t chuyn mch trong
mt my tnh vi p b x l l plog
8
p. Lung d liu qua cc chuyn mch c lu trong cc
gi; v cc bt a ch nh tuyn t ni pht n ni nhn.
Hnh 1.34. Chuyn mch trn my TC-2000.
Do mi b x l c mt giao din VME, dung tch I/O ca h thng c m rng theo s lng
CPU. Cc giao din VME cung cp kh nng truy nhp ti cc thit b vo/ra khc nhau, bao gm
c cc b bin i A/D, D/A, b nh ngoi, v cc b x l ha. Mt ca s 16 MB trong mi
khng gian a ch bus VME c nh x vo a ch ton cc ca h thng. Nn mi b x l
u c tim nng truy cp vo mi thit b vo/ra.
Mt my tnh khc, h thng x l ch TCS (Test and Control System) cung cp cc chc nng
quan trng. B x l TCS ch cung cp mt giao din cho TCS. N cng ti cc chng trnh
khi ng vo b nh ca b x l ti thi im h thng khi ng, kt hp vi cc hot ng
ca b x l th (slaver processor), v nhn cc thng ip c gi bi cc b x l th. B x
l ch TCS c kt ni ti b x l th qua mt bus chn on (diagnostic bus), n c nh v
trong chip ca b x l v trong mi module chuyn mch, v n tip tc theo di cc li ca h
thng.
1.4.3 H thng a my tnh (Multicomputers)
Mt kin trc khc ca a b x l l h thng a my tnh. H thng a my tnh khng c b
nh chia x. Mi b x l c ring mt b nh cc b (private memory) v tng tc vi nhau
qua trao i thng ip (message passing). Hin nay c nhiu h thng a my tnh thng
mi nh Intel s Paragon XP/S, Meiko Computing Surface
TM
, nCUBE s nCUBE, Parsytec s
SuperCluster
TM
, v Thinking Machine s CM-5.
Mt c im ni tri ca h thng a my tnh mi l cch thc b vi x l giao tip vi nhau.
Cc th h a my tnh u tin nh Intel iPSC
TM
, nCUBE/10
TM
v cc h thng da trn T800
Transputer
TM
, c c trng bi phn mm h tr lu tr v chuyn tip thng ip (Fig. 3-20).
gi mt thng ip t mt b x l n mt b x l khng lin k (nonadjacent processor),
cc b x l trung gian nm trn ng i ca thng ip s c nhim v lu tr chuyn thng
ip n b x l k tip. Thm ch nu s truyn ti d liu c hon thnh qua cc knh
DMA, CPU s b treo vo thi im truyn ti d liu bng DMA.
Ngc li, h a my tnh th h th hai nh Intel iPSC/2
TM
, Intel iPSC/850
TM
v nCUBE 2 c
nh tuyn chuyn mch thng ip (circuit-switched message routing). Chng hn, Intel cc nt
trong my tnh iPSC/2
TM
v Intel iPSC/850
TM
c card logic nh tuyn c gi l m un kt
ni trc tip (Direct-Connect Module-DCM). Cc m un kt ni trc tip thit lp nn mt mch
in (circuit) kt ni t nt ngun n nt ch. Mi khi mt mch c thit lp, cc lung
thng ip trong cc ng dn xen k (pipelined) s i t nt ngun n nt ch v thng ip
khng c lu trong cc nt trung gian. Mt thng ip c truyn t nt ny n nt khc
(khng cnh nhau) s khng yu cu treo CPU m ch cn kch hot cc m un kt ni trc
tip iu khin qu trnh truyn thng.
Hnh 1.35. M un kt ni trc tip trn a my tnh iPSC/2.
Trong m hnh lu tr v chuyn tip (store-and-forward), thi gian cn thit gi mt thng
ip t b x l ny n b x l khc s tng tuyn tnh i vi bc nhy (hop) ca thng
ip ti c ch ca n. Ngc li vi m hnh lu tr v chuyn tip, thi gian cn thit
gi mt thng ip t b x l ny n b x l khc trong mt chuyn mch s khng ph thuc
vo khong cch gia cc b vi x l.
a. My tnh nCUBE 2
My tnh nCUBE 2 c ch to bi cng ty nCUBE ti thnh ph Foster, Hoa k. My tnh
nCUBE 2 c ba thnh phn chnh: mt my tnh front-end, mt mng cc b x l back-end v
cc thit b vo/ra song song (hnh 3-22). My tnh nCUBE 2 tng t nh my tnh mng cc b
vi x l. Tuy nhin, hai kin trc ny c mt im khc nhau c bn l: my tnh front-end ca
mng cc b x l iu khin cc hot ng ca cc phn t x l. N thc hin cc php tnh
n gin mt cch ng b. Ngc li, cc b x l trong phn back-end ca my tnh nCUBE 2
l cc CPU vi y tnh nng (full-fledged CPUs) v nhng CPU ny thc hin cc dng lnh
ca chng mt cch song song.
Hnh 1.36. S khi ca a my tnh nCUBE2.
My tnh nCUBE 2 c ti 8192 nt x l. Mi nt x l c hiu xut ti a 2.5 megaflop. V vy,
theo l thuyt th hiu xut ti a ca my tnh nCUBE 2 l 20 gigaflops. Mi nt x l c mt
b nh chnh vi kch thc t 1 n 64 MB.
Cc b x l back-end c t chc trong mt siu khi. My tnh nCUBE 2 l th h th hai ca
h thng a my tnh nn k thut truyn thng gia cc b x l l nh tuyn cng (hardware-
routed). Cc knh truyn thng DMA hnh thnh nn cc cnh ca siu khi. Tc truyn d
liu ln nht gia cc b x l l 2.2 MB/ giy.
Mi nt c mt knh DMA dng cho vic truyn ti d liu t/n cc thit b vo/ra. Cc knh
vo/ra c cng tc truyn vi cc knh truyn ca cc nt trong mng.
Cc h a my tnh u tin c hai vn lin quan n b x l front-end. Th nht, cng sut
(power) ca b x l front-end khng t l (scale) vi cc b x l back-end. Nu s ngi dng
t l vi s b x l, th ti mt s thi im, front-end s khng th h tr ngi s dng. Th
hai, b x l front-end cch bit vi cc b x l back-end.
b. My tnh Connection Machine CM-5
My tnh CM-5 l h thng a my tnh u tin c ch to bi cng ty Thinking Machine ti
Cambridge, bang Masachusetts- Hoa k. Thinking Machine cho rng v my tnh CM-5 h tr
phn cng ng b nhanh v a b x l. My tnh CM-5 l kin trc ph hp cho vic thc hin
c d liu song song v chng trnh iu khin song song.
Hnh (3-23) l mt s khi ca CM-5. Cc nt x l c gn nhn P, thc hin chng trnh
ngi dng. Cc b x l iu khin (Control Processors) c nhn l CP thc hin nh b qun l
phn hoch (partition managers) front-ends cho cc cm ca cc nt x l. Cc b x l iu
khin vo/ra lm nhim v iu khin cc thit b vo/ra.
Hnh 1.37. S khi ca a my tnh CM-5
Kin trc ca my tnh CM-5 cng khc phc c mt s vn gn vi b x l front-end ca
cc h thng a my tnh trc y. Trc ht, h thng c th c nhiu b x l front-end v cc
b qun l phn hoch. Th hai, cc b x l ny da trn kin trc SPARC, ging vi cc b x
l back-end. Th ba, cc b phn hoch l mt phn ca mng nh tuyn c cng d liu vi cc
b x l back-end.
T chc ca b x l trong my tnh CM-5 l mt 4 siu cy (hnh 3-3). Cc b x l l cc l
ca cy v cc nt bn trong nh tuyn d liu gia cc l. Di thng (bandwidth) ti thiu ca
mng l 5MB/giy.
Mi nt CM-5 bao gm mt b x l SPARC, phn cng giao din mng, mt b nh chnh
32MB v 4 b x l vector kiu pipeline, mi b x l vector c th x l c 32 triu php tnh
du phy ng trong mt giy. My tnh CM-5 vi cu hnh y (fully-configured) c ti
16,384 nt, 512 GB b nh chnh v hiu xut ln nht c th t ti 2 Teraflops (v mt l
thuyt).
1.5 Kt chng
Trong chng ny, ta tho lun hai vn chnh: kin trc v t chc cc b vi x l trong
my tnh song song. Phn u ca chng l phn tng quan v tnh ton song song (parallel
computing). Bt ngun t cc yu cu khi lng tnh ton ln trong hu ht cc ng dng trong
i sng: khoa hc, thng mil cc bi ton i hi kh nng tnh ton vt xa so vi h
thng tnh ton hin ti. Trong khi , tc nhanh nht ca my tnh vi mt b x l n ngy
cng tng nhng cn km tc ca my tnh vi nhiu b x l. Cc thut ng c bn v lch s
pht trin ca my tnh song song cng c cp trong phn u ca chng.
Theo Flynn, tt c cc my tnh c chia thnh 4 loi da trn x l song song hoc tun t ca
dng lnh v dng d liu. Trong , cc my tnh tun t thuc loi my tnh mt dng lnh,
mt dng d liu (SISD); bao gm c cc my tnh tch hp nhiu b chc nng hay x l nhng
ch thc hin mt dng lnh c gi l systolic. Cc my tnh vi mt mng cc b x l thuc
loi my tnh mt dng lnh, nhiu dng d liu (SIMD). Cc my tnh systolic vi mng cc b
vi x l thuc loi nhiu dng lnh, mt dng d liu (MISD). Cui cng, l cc my tnh nhiu
CPU (multiple-CPU machines) nh my tnh a b x l (multiprocessors), a my tnh
(multicomputers) thuc loi my tnh nhiu dng lnh, nhiu dng d liu (MIMD).
Tip n, c 9 cch thc t chc cc b vi x l trong cc my tnh song song c tho lun.
Cc m hnh t chc l: mng hnh li, mng hnh cy nh phn, mng hnh siu cy, mng
hnh thp, mng hnh cnh bm, mng hnh siu khi, mng cc chu trnh hng kt ni khi,
v mng de Bruijn. ng thi, ta cng nh gi cch thc t chc ca tng mng theo 3 tiu
chun: ng knh, rng phn i v s cnh trn mt nt. Cc tiu chun ny gip chng ta
la chn cch thc t chc cc b vi x l thc hin cc gii thut song song mt cch hiu
qu v ph hp nht theo quan im ca nh thit k v ch to my tnh song song mt cch
thc t.
My tnh mng cc b vi x l c thc thi t m hnh kin trc SIMD, trong x l song
song t c thng qua s p dng mt thao tc n trn mt tp d liu. S l khng thc t
nu ta xy dng mt my tnh mng cc b x l trong cc b x l chia s mt b nh ton
cc. Trong thc t, mi b x l trong my tnh ny c mt b nh cc b. Cch thc t chc cc
b vi x l quyt nh cch thc trao i d liu gia cc b x l. My tnh CM-200 l mt my
tnh vi cc mng b vi x l theo m hnh SIMD c thng mi ha v ng dng rng ri
trn thc t.
Cc my tnh MIMD l cc my tnh a nng ca tnh ton song song. Chng bao gm nhiu
CPU m mi CPU thc hin mt dng lnh c lp v khng ng b. Cc my tnh MIMD c
th c phn loi bng cch truy cp b nh. My tnh a b x l UMA c mt khng gian a
ch chia s v khong cch t mt CPU ti mt nh bt k l hng s. My tnh a b x l
NUMA cng c b nh chia s. Nhng khong cch mi nh n cc b x l l khc nhau. H
thng a my tnh khng c b nh chia s m mi CPU c mt b nh cc b ring v cc b x
l giao tip vi nhau thng qua c ch truyn thng ip (message passing).

1.6 Cu hi v bi tp
1.6.1 Cu hi
1. Trnh by v xu hng thit k my tnh hin i ?.
2. Trnh by phn loi my tnh theo Flynn?. Theo cch phn loi ny th mt my tnh c nhn
vi chip Dual-core (hai nhn) hin nay thuc loi no?
3. Trnh by v my tnh SIMD ?. Hy so snh u v nhc im ca my tnh SIMD vi b nh
phn tn v b nh chia s?.
4. Hy tm mt ng dng thc t c th thc hin trn my SIMD vi b nh chia s.
5. Trnh by v my tnh MIMD ?. My tnh MIMD vi b nh chia s v phn tn.
6. Tm mt ng dng c th trn my tnh MISD?.
7. nh gi cc cch thc t chc b vi x l thng qua cc tiu chun g ?. ngha ca tng tiu
chun.
8. Trnh by cch thc t chc cc b vi x l theo mng hnh li. u v nhc im ca cch
thc t chc ny?.
9. Trnh by cch thc t chc cc b vi x l theo mng hnh cy. u v nhc im ca cch
thc t chc ny?.
10. Trnh by cch thc t chc cc b vi x l theo mng hnh siu cy. u v nhc im ca
cch thc t chc ny?.
11. Trnh by cch thc t chc cc b vi x l theo mng hnh thp. u v nhc im ca cch
thc t chc ny?.
12. Trnh by cch thc t chc cc b vi x l theo mng hnh siu khi. u v nhc im ca
cch thc t chc ny?.
13. Trnh by cch thc t chc cc b vi x l theo mng hnh bm. u v nhc im ca
cch thc t chc ny?.
14. Trnh by cch thc t chc cc b vi x l theo mng chu trnh hng kt ni khi. u v
nhc im ca cch thc t chc ny?.
15. Trnh by cch thc t chc cc b vi x l theo mng di chuyn hon v. u v nhc im
ca cch thc t chc ny?.
16. Trnh by v my tnh mng cc b vi x l?.
17. Trnh by v my tnh a b x l UMA Sequent Symmetry?
18. Trnh by v my tnh a b vi x l NUMA TC 2000?
19. Trnh by v h thng a my tnh?
20. So snh kin trc ca my tnh nCUBE2 v CM-5?
1.6.2 Bi tp
1. Ngi ta cn tnh tng ca hai vc t u v v trn mt my tnh SIMD vi 100 b vi x l; Hy
tnh hiu sut ca my tnh SIMD khi thc hin chng trnh ny bit rng:
- Kch thc (s phn t) ca mi vc t u hoc v l 350.
- Mi lnh cng thc hin trn mt b x l mt 10
-9
giy.
- Chng trnh tnh tng trn c vit ti u cho my SIMD
2. Mt chng trnh tnh tng cc phn t ca mt vc t v trn mt my tnh SIMD vi 1000 b
vi x l; Hy tnh hiu sut ca my tnh SIMD khi thc hin chng trnh ny bit rng:
- Kch thc (s phn t) ca vc t v l 2000.
- Mi lnh cng thc hin trn mt b x l mt 10
-8
giy.
- Chng trnh trn c vit ti u cho my SIMD
3. Trnh by v cch thc t chc 1024 b vi x l theo mng hnh bm? B vi x l (7,9) s
c kt ni vi hai b vi x l no hng th 6.?
4. Trnh by s khc nhau gia mt mng siu khi 4 chiu v mt mng chu trnh hng kt ni
khi cp 4.
5. Hy so snh cch thc t chc b vi x l theo hai mng: hnh li kch thc 64 v hnh thp
kch thc 64.
6. Trnh by v cch thc t chc 1024 b vi x l theo mng hnh siu khi? B vi x l
0011101010 s c kt ni vi cc b vi x l no trong mng?
7. Trnh by v cch thc t chc 64 b vi x l theo mng chu trnh hng kt ni khi. B vi
x l P
1,2,3
s c kt ni vi cc b vi x l no trong mng?
8. Mt chng trnh tnh tch v hng ca hai vc t u v v trn mt my tnh SIMD vi 1000
b vi x l; Hy tnh hiu sut ca my tnh SIMD khi thc hin chng trnh ny bit rng:
- Kch thc (s phn t) ca mi vc t u hoc v l 1000.
- Mi lnh cng hoc nhn thc hin trn mt b x l mt 10
-10
giy.
- Chng trnh trn c vit ti u cho my SIMD
9. Cho mt mng hon v- di chuyn, chng minh rng nu mt kt ni di chuyn (shuffle) ni
nt i vi nt j th j l s l kt qu ca php quay tri mt bt trong biu din nh phn ca i.
10. Tnh hiu sut tt nht ca mt chng trnh tnh tng S=1+2++100 trn mt my tnh CM-
200 vi 50 b vi x l. Bit rng, ti mt thi im, mi b vi x l c th thc hin c mt
php cng cho hai s v thi gian thc hin mt php cng trn mt b x l l 10
-8
.
CHNG 2 : CC THUT TON SONG SONG
Chng ny trnh by mt s vn sau:
- M hnh PRAM l m hnh lm n gin vic thit k cc gii thut song song. Trong m hnh
PRAM phc tp v truyn thng c b qua v s lng b vi x l tham gia thc hin cc
thut ton l v hn. Cng vi m hnh PRAM, ta tm hiu mt s thut ton song son n gin
thit k cho my PRAM.
- Cc thut ton song song nhn hai ma trn; trong phn ny ta trnh by 3 thut ton song song
gii quyt bi ton nhn hai ma trn. Thut ton th nht l song song ha t thut ton nhn
hai ma trn tun t. Thut ton th hai l nhn hai ma trn theo khi, v cui cng l thut ton
nhn hai ma trn trn h thng nhiu my tnh t chc theo hnh siu khi.
- Thut ton sp xp song song: Ba thut thut ton song song gii quyt bi ton sp xp c
tho lun trong phn ny. Thut ton sp xp song song hon chuyn chn l trn my tnh c cc
b x l c t chc theo mng hnh li mt chiu; Thut ton sp xp song song trn Bitonic
v thut ton song song da trn Quicksort.
- Thut ton tm kim song song trn danh b: c song song ha t gii thut tun t Ellis.
ng thi, ta cng tm hiu v mt gii thut tm kim song song rt hiu qu vi cc tin trnh
thc hin cc thao tc trn cy tm kim nh phn c chy song song do Manber v Ladner
xut.
- Thut ton song song trn th: trnh by v hai gii thut c song song ha t gii thut
tun t ca Moore gii bi ton tm ng i ngn nht trn mt th c trng s; v song
song ha t gii thut Kruskal gii bi ton tm cy khung nh nht trn th v hng, c
trng s.
Phn cui cng ca chng l phn kt chng v bi tp dnh cho ngi hc.
2.1 M hnh PRAM
Phn ny trnh by v m hnh my truy cp ngu nhin song song (parallel random access
machine) PRAM trong tnh ton song song. Trong khi cc thut ton tun t da trn m hnh
my tnh von Neumann hay Turing th m hnh PRAM cho php cc nh thit k cc thut ton
song song xem nng lc x l (processing power) nh ngun ti nguyn v hn nh cc nh lp
trnh my tnh xem b nh o l ti nguyn khng hn ch. M hnh PRAM lm n gin qu
trnh thit k thut ton song song nhng khng thc t v ta b qua phc tp truyn thng
gia cc b x l.
2.1.1 M hnh x l tun t
My tnh truy cp ngu nhin (random access machine) RAM bao gm mt b nh, mt bng t
ch c cha u vo, mt bng t (tape) ch ghi cha u ra, v mt chng trnh (hnh 2-1).
Chng trnh khng c lu trong b nh v khng th thay i. Bng u vo cha mt dy
cc s nguyn. Ti mi thi im mt gi tr u vo c c, u c s dch chuyn mt
vung. Tng t, khi mt gi tr u ra c ghi vo bng th u ghi c dch chuyn mt ln.
B nh l mt dy v hn cc thanh ghi k hiu l r
0
, r
1
, mi thanh ghi c th cha mt s
nguyn.
Cc lnh c th tng t nh cc lnh trn mt my tnh thc. V vy, mt my tnh RAM c th
c cc lnh load, store, write, add, subtract, multiply, divide, jump
phc tp v thi gian trong trng hp xu nht (worst-case time complexity) ca mt
chng trnh RAM l mt hm f(n) ch thi gian ln nht thc hin bi chng trnh cho mi u
vo c kch thc n. phc tp v thi gian k vng trung bnh (expected time complexity) ca
chng trnh l thi gian trung bnh thc hin ca chng trnh i vi mi u vo kch thc
n. Cc khi nim tng t i vi phc tp v khng gian trong trng hp xu nht v trung
bnh.
Hnh 2.1. M hnh x l tun t RAM
C hai cch o phc tp v thi gian v khng gian da trn m hnh RAM. nh gi theo
tiu chun ng nht chi ph (uniform cost criterion) pht biu rng mi lnh ca RAM i hi
tiu tn mt n v thi gian thc hin v mi thanh ghi tng ng vi mt n v khng
gian (b nh). nh gi theo tiu chun chi ph l ga (logarithmic cost criterion) th cho rng b
nh thc t b gii hn v kh nng lu tr (kch thc). nh gi theo tiu chun ng nht chi
ph l ph hp nu cc gi tr c thao tc bi chng trnh c th lu tr trong mt t my.

2.1.2 M hnh tnh ton song song PRAM
Mt m hnh PRAM gm mt b iu khin, mt b nh ton cc, v mt tp v hn cc b x
l; mi b x l c b nh cc b ring. Mc d cc b x l ang hot ng thc hin cc lnh
ging nhau; nhng mi b x l c mt ch s duy nht v ch s ny c th c s dng
kch hot (enable) hoc dng hot ng (disabled). Ch s ny cng c gn vi v tr b nh m
b x l truy nhp n.
Hnh 2.2. M hnh x l song song PRAM
X l PRAM bt u vi u vo c lu trong b nh ton cc v mt b vi x l c kch
hot. Ti mi bc, mt b x l ang hot ng c th thc hin mt trong cc thao tc: c d
liu t b nh ring cc b hay b nh ton cc, thc hin mt thao tc x l RAM, ghi d liu
vo b nh ring cc b hoc ton cc, hoc kch hot b x l khc. Tt c cc b x l ang
hot ng phi thc hin cng mt lnh, c th trn cc a ch nh khc nhau. X l PRAM kt
thc khi b x l cui cng dng hot ng.
Cc m hnh PRAM khc nhau ch lm th no gii quyt (handle) c cc xung t t
thao tc ghi v c b nh ton cc. Chng hn, khi c nhiu hn mt b x l c hoc ghi vo
cng mt a ch trong b nh. Cc kt qu nghin cu v cc thut ton PRAM da vo mt
trong cc c ch sau sau y:
1. EREW (Exclusive Read Exclusive Write): Khng cho php xung t c v Ghi.
2. CREW (Concurrent Read Exclusive Write): Cho php xung t c v khng cho php
xung t Ghi. Ti cng mt thi im, nhiu b x l c th c n cng mt a ch
trong b nh ton cc nhng khng c qu mt b x l c php ghi.
3. CRCW (Concurrent Read Concurrent Write): Cho php xung t c v cho php xung
t Ghi. Ti cng mt thi im, nhiu b x l c th c hoc ghi cng mt a ch
trong b nh ton cc theo mt trong ba m hnh di y:
- Thng thng (common): ti cng mt thi im, tt c cc b x l phi ghi cng mt
gi tr vo cng mt a ch trong b nh ton cc.
- Ngu nhin (arbitrary): ti cng mt thi im, nu c nhiu b x l ng thi ghi vo
mt a ch trong b nh ton cc, th mt trong s cc b x l c chn ngu nhin
s c ghi gi tr vo nh .
- u tin (priority): ti cng mt thi im, nu c nhiu b x l ng thi ghi vo mt
a ch trong b nh ton cc, th b x l c ch s nh nht s c ghi gi tr vo
nh .
2.1.3 Mt s thut ton PRAM
Khi mt thut ton PRAM c phc tp v thi gian tt hn (thp hn) so vi mt thut ton
RAM c ti u tng ng, th l do trong thut ton PRAM c cc lnh c x l
song song. Do thut ton PRAM bt u vi mt b x l hot ng nn mi thut ton PRAM
lun c hai pha. Trong pha u, mt s lng ln b x l tham gia thc hin thut ton c
kch hot. Trong pha th hai, cc b x l c kch hot thc hin x l thut ton song song.
Vi mt b x l ban u c kch hot, d nhn thy rng ta phi cn n [logP] bc kch
hot P b x l.
Hnh 2.3. Thi gian kch hot cc b x l
kch hot cc b vi x l hot ng t mt b x l, cc thut ton PRAM thc hin mt cu
lnh sau:
Spawn(<tn cc b vi x l>)
d dng hiu v pha th 2 ca thut ton PRAM, ta gi s khi tham chiu (reference) n cc
thanh ghi ton cc nh mt dy cc tham chiu. Ngha l, c mt nh x t dy cc tham chiu
ny n cc thanh ghi ton cc tng ng.
Cu trc iu khin
For all <danh sch cc b vi x l> do <danh sch cc cu lnh> endfor
M t on m c thc hin song song bi cc b x l c th.
Bn cnh cc cu trc iu khin trn, PRAM cng s dng cu trc iu khin quen thuc nh:
if thenelseendif, forendfor, whileendwhile v repeatuntil.
Di y chng ta xem xet mt s thut ton PRAM
a. Thut ton song song Rt gn (Parallel Reduction)
Cy nh phn l mt trong nhng cu trc quan trong nht ca x l song song. Trong nhiu gii
thut trn-xung (top-down), lung d liu i t nt gc n cc nt l ca cy. Chng hn nh
gii thut phn pht (broadcast) th nt gc gi d liu n tt c cc nt l. Gii thut chia tr
(divide and conquer) th nt gc biu din bi ton ban u, cc nt con biu din cc bi ton
con.
Mt s thut ton di i ln (bottom-up), th lung d liu i t cc nt l n nt gc ca cy.
l gii thut rt gn.
Bi ton c pht biu nh sau: cho mt tp n s a
1
, a
2
,, a
n
v mt php ton nh phn kt
hp , rt gn l mt qu trnh tnh a
1
a
2
a
n

Tnh tng song song l mt v d ca php ton rt gn.


Cc b x l trong PRAM thao tc vi d liu c lu tr trong cc thanh ghi ton cc. trin
khai thut ton tnh tng, ta biu din mi nt ca cy nh phn l mt phn t ca mng.
Hnh 2.4. Tnh tng mt mng
Gi s cc s cn tnh tng c lu vo mt mng A, kch thc n. Di y l chng trnh gi
m:
SUM (EREW PRAM)
u vo: Danh sch n>0 phn t c lu trong A[0, ...(n-1)]
u ra: Tng cc phn t c lu trong A[0]
Cc bin ton cc: n, A[0, ...(n-1)]
Begin
Spawn(P
0
, P
1
, , P
[n/2]
)
For all P
i
vi (0i[n/2]) do
For j=0 to [logN]-1 do
If i mod 2
j
=0 and 2*i+2
j
<n then
A[2*i]= A[2*i]+ A[2*i+2
j
]
Endif
Endfor
Endfor
End.
Ta hy phn tch phc tp ca thut ton ny. Th tc Spawn c phc tp log(n/2) v phi
kch hot n/2 b x l dng cho thut ton. Vng lp tun t thc hin logn ln, v mi bc lp
c phc tp thi gian l hng s. V vy, phc tp chung ca thut ton l O(logn).
Hnh di y m t tng bc ca gii thut qua mt v d v tnh tng ca mt mng gm 10
phn t:
b. Thut ton song song Tnh tng tin t (Prefix Sums)
Bi ton Tnh tng tin t nh sau: cho mt tp gm n s a
1
, a
2
,, a
n
v mt php ton nh
phn kt hp , hy tnh cc biu thc:
a
1
a
1
a
2

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

You might also like