You are on page 1of 53

B GIO DC V O TO

TRNG I HC LC HNG
***

ng Nh Ton

Song song ho thut ton tm ng i ngn nht


trn ngun d liu ln dng MPI

Lun vn Thc s Cng ngh thng tin

ng Nai - nm 2011

B GIO DC V O TO
TRNG I HC LC HNG
***
ng Nh Ton

Song song ho thut ton tm ng i ngn nht


trn ngun d liu ln dng MPI
Chuyn ngnh: Cng ngh thng tin
M s: 604805

Lun vn Thc s Cng ngh thng tin


Ngi hng dn khoa hc
PGS.TS Trn Vn Lng

ng Nai - nm 2011

LI CM N
c s nh hng ca thy PGS. TS Trn Vn Lng, em la chn ti
Song song ho thut ton tm kim ng i ngn nht vi MPI.
c s gip v hng dn tn tnh ca thy PGS. TS Trn Vn Lng v mt
s ng nghip, n nay em hon thnh lun vn ca mnh. Mc d c
gng, nhng do thi gian c hn v hn ch ca bn thn nn khng trnh khi
c nhng thiu st. Em rt mong nhn c kin ng gp ca cc Thy C v
cc bn ng nghip lun vn c hon thin hn.
Tc gi

ng Nh Ton

MC LC
Trang
LI CM N .......................................................................................................iii
MC LC ............................................................................................................. iv
Danh mc cc thut ng ....................................................................................... vii
Danh mc cc hnh v, bng biu .......................................................................viii
M U ................................................................................................................ 1
1. t vn ........................................................................................................ 1
2. Mc ch ca lun vn..................................................................................... 1
3. Ni dung ca lun vn ..................................................................................... 1
4. Phng php nghin cu ................................................................................. 2
CHNG 1 - MT S K THUT TM KIM NG I NGN NHT .. 3
1.1. Bi ton tm kim ng i ngn nht ......................................................... 3
1.2. Cc thut ton ............................................................................................... 4
1.2.1. Thut ton Dijkstra ................................................................................. 4
1.2.2. Thut ton A star .................................................................................... 6
1.2.3. Thut ton di truyn ............................................................................... 9
CHNG 2 - LP TRNH SONG SONG VI MPI ......................................... 16
2.1. Tng quan v lp trnh song song vi MPI ................................................ 16
2.1.1. Gii thiu .............................................................................................. 16

2.1.2 Mt s c im ca lp trnh MPI ....................................................... 17


2.2. Lp trnh song song vi MPI...................................................................... 19
2.2.1. Gii thiu .............................................................................................. 19
2.2.2. Mt s vn v hiu nng .................................................................. 21
2.2.2.1 Nng lc tnh ton ........................................................................... 21
2.2.2.2 Cn bng ti ..................................................................................... 23
2.2.2.3 S b tc .......................................................................................... 25
CHNG 3 - MPI TRONG THUT TON DIJKSTRA CHO BI TON TM
KIM NG I NGN NHT ...................................................................... 27
3.1. Yu cu t ra cho bi ton tm kim ng i ngn nht theo gii thut
Dijksta................................................................................................................ 27
3.2. Xy dng hm tm kim ng i ngn nht............................................. 27
3.2.1 Xy dng thut ton Dijkstra tun t cho bi ton ............................... 27
3.2.2 Thc hin song song ho ....................................................................... 28
3.2.3 Thut ton song song............................................................................. 29
3.2.4 La chn hm MPI cho thut ton song song ....................................... 30
3.2.5 Cng thc song song ............................................................................. 35
3.3. Chi ph thi gian ......................................................................................... 38
CHNG 4 - KT QU TH NGHIM .......................................................... 39
4.1. Cc kt qu th nghim .............................................................................. 39
4.1.1. Kt qu th nghim gii thut Dijkstra c in ................................... 39

4.1.2. Kt qu th nghim tm kim bng gii thut Dijkstra song song....... 40


4.2. nh gi kt qu ......................................................................................... 41
KT LUN .......................................................................................................... 44
TI LIU THAM KHO .................................................................................... 45

Danh mc cc thut ng
LIS Language Independent Specifications
MIMD Multiple Instruction Multiple Data
MPI Message Passing Interface
OSI Open Systems Interconnection
PVM Parallel Vitual Machine
TCP Transmission Control Protocol
TTDT Thut ton di truyn

Danh mc cc hnh v, bng biu


Hnh 1.1 K thut quay bnh xe
Hnh 2.1 Kh nng tng tc tnh ton, trng hp l tng
Hnh 2.2 Kh nng tng tc tnh ton, trng hp thc t
Hnh 3.1 S khi thut ton Dijkstra song song
Bng 4.1 Thi gian thc hin thut ton Dijkstra c in
Bng 4.2 Thi gian thc hin thut ton Dijkstra song song
Bng 4.3: Thi gian thc hin thut ton Dijkstra song song vi nhiu tin trnh
Hnh 4.4: So snh kt qu th nghim thut ton Dijksta
Hnh 4.5: So snh kt qu th nghim thut ton Dijksta vi nhiu tin trnh

M U
1. t vn
Tim kim ng i ngn nht l mt bi ton kinh in c nghin cu rt
nhiu v ng dng trong nhng h thng chuyn bit. Rt nhiu nghin cu
ci tin nhng thut ton v ti u thut ton v khng gian tm kim, thi gian
tm kim.
Tuy nhin, vi s bng n thng tin v s pht trin ca cng ngh thng tin,
nhng thut ton tm kim ng i ngn nht kinh in khng th p ng
c thi gian tm kim tt nht trn lng d liu ln.
Bi ton t ra l lm th no gii quyt vn tm kim ng i ngn nht
vi ngun d liu ln v phn tn, p ng c mc tiu rt ngn thi gian tm
kim.
2. Mc ch ca lun vn
Nghin cu v song song ho thut ton Dijkstra cho bi ton tm ng i ngn
nht trn ngun d liu ln v phn tn; t nng cao hiu qu ca vic x l
d liu.
3. Ni dung ca lun vn
Trong lun vn ny gm c 3 ni dung:
- Ni dung 1: Nghin cu v bi ton tm kim ng i ngn nht. nh gi
u im, nhc im ca tng thut ton.

- Ni dung 2: Ci tin thut ton Dijkstra cho bi ton tm kim ng i


ngn nht bng cch song song ha thut ton ti u v thi gian tm kim
trn ngun d liu ln.
- Ni dung 3: Tin hnh th nghim, nh gi thut ton ci tin.
4. Phng php nghin cu
thc hin nhng ni dung nu trn, tc gi s dng mt s phng
php cho tng ni dung nh sau:
- Ni dung 1: s dng phng php phn tch, so snh v nh gi cc thut
ton tm kim ng i ngn nht.
- Ni dung 2: s dng phng php phn tch kh nng song song ha thut
ton Dijkstra.
- Ni dung 3: s dng phng php i snh nh gi kt qu th nghim
ca thut ton ci tin.

CHNG 1 - MT S K THUT TM KIM NG I NGN


NHT

1.1. Bi ton tm kim ng i ngn nht


Trong l thuyt th, bi ton ng i ngn nht ngun n l bi ton tm
mt ng i gia hai nh sao cho tng cc trng s ca cc cnh to nn
ng i l nh nht.
nh ngha mt cch hnh thc, cho trc mt th c trng s (ngha l mt
tp nh V, mt tp cnh E, v mt hm trong s c gi tr thc f: E R), cho
trc mt nh v thuc V, tm mt ng i P t v ti mi nh v' thuc V sao
cho:

f ( p) l nh nht trong tt c cc ng ni t v ti v'.


pP

Cc thut ton quan trng nht gii quyt bi ton ny l:


- Thut ton Dijkstra: gii bi ton ngun n nu tt c cc trng s u
khng m. Thut ton ny c th tnh ton tt c cc ng i ngn nht t mt
nh xut pht cho trc s ti mi nh khc m khng lm tng thi gian chy.
- Thut ton Bellman-Ford: gii bi ton ngun n trong trng hp trng
s c th c gi tr m.
- Thut ton tm kim A*: gii bi ton ngun n s dng heuristics tng
tc tm kim.
- Thut ton Floyd-Warshall: gii bi ton ng i ngn nht cho mi cp
nh.

- Thut ton Johnson: gii bi ton ng i ngn nht cho mi cp nh, c


th nhanh hn thut ton Floyd-Warshall trn cc th tha.
L thuyt nhiu (Perturbation theory): tm ng i ngn nht a phng (trong
trng hp xu nht).
1.2. Cc thut ton
1.2.1. Thut ton Dijkstra
Thut ton Dijkstra [2], mang tn ca nh khoa hc my tnh ngi H
Lan Edsger Dijkstra, l mt thut ton gii quyt bi ton ng i ngn
nht ngun n trong mt th c hng khng c cnh mang trng s m.
Bi ton: Cho n th lin thng, c trng s G=(V,E). Tm khong cch
d(u0,v) t mt nh u0 cho trc n mt nh v bt k ca G v tm ng i
ngn nht t u0 n v.
Phng php ca thut ton Dijkstra l: xc nh tun t nh c khong cch
n u0 t nh n ln.
Trc tin, nh c khong cch n a nh nht chnh l a, vi d(u 0,u0)=0. Trong
cc nh v u0, tm nh c khong cch k1 n u0 l nh nht. nh ny phi l
mt trong cc nh k vi u0. Gi s l u1:
d(u0,u1) = k1.
Trong cc nh v u0 v v u1, tm nh c khong cch k2 n u0 l nh nht.
nh ny phi l mt trong cc nh k vi u0 hoc vi u1. Gi s l u2:
d(u0,u2) = k2.

Tip tc nh trn, cho n bao gi tm c khong cch t u 0 n mi nh v


ca G. Nu V={u0, u1, ..., un} th:
0 = d(u0,u0) < d(u0,u1) < d(u0,u2) < ... < d(u0,un).
Thut ton Dijkstra:
Procedure Dijkstra (G=(V,E) l n th lin thng, c trng s vi trng s
dng)
{G c cc nh a=u0, u1, ..., un=z v trng s m(ui,uj), vi
m(ui,uj) =
nu (ui,uj) khng l mt cnh trong G}
for i:= 1 to n
L(ui):=
L(a):= 0
S:= V \ {a}
u:= a
while S
begin
for tt c cc nh v thuc S
if L(u) +m(u,v) < L(v) then L(v) := L(u)+m(u,v)
u:= nh thuc S c nhn L(u) nh nht
{L(u): di ng i ngn nht t a
n u}

S:= S \ {u}
end
End Pro
phc tp ca thut ton Dijkstra: Thut ton dng khng qu n1 bc lp.
Trong mi bc lp, dng khng hn 2(n1) php cng v php so snh sa
i nhn ca cc nh. Ngoi ra, mt nh thuc Sk c nhn nh nht nh khng
qu n1 php so snh. Do thut ton c phc tp O(n2).
1.2.2. Thut ton A star
Thut ton A* [1] c m t ln u vo nm 1968 bi Peter Hart, Nils
Nilsson, v Bertram Raphael. Trong bi bo ca h, thut ton c gi l thut
ton A; khi s dng thut ton ny vi mt nh gi heuristic thch hp s thu
c hot ng ti u, do m c tn A*.
Thut ton ny tm mt ng i t mt nt khi u ti mt nt ch cho trc
(hoc ti mt nt tha mn mt iu kin ch). Thut ton ny s dng mt
"nh gi heuristic" xp loi tng nt theo c lng v tuyn ng tt nht
i qua nt . Thut ton ny duyt cc nt theo th t ca nh gi heuristic
ny. Do , thut ton A* l mt v d ca tm kim theo la chn tt nht (bestfirst search).
Bi ton: Gi s u l mt trng thi t ti (c ng i t trng thi ban u u0
ti u). Xc nh hai hm nh gi sau:
- g(u) l nh gi di ng i ngn nht t u0 ti u (ng i t u0 ti
trng thi u khng phi l trng thi ch c gi l ng i mt phn, phn
bit vi ng i y , l ng i t u0 ti trng thi ch).

- h(u) l nh gi di ng i ngn nht t u ti trng thi ch.


Hm h(u) c gi l chp nhn c (hoc nh gi thp) nu vi mi trng
thi u, h(u) di ng i ngn nht thc t t u ti trng thi ch. Chng
hn trong bi ton tm ng i ngn nht trn bn giao thng, c th xc
nh h(u) l di ng chim bay t u ti ch.
C th s dng k thut tm kim leo i vi hm nh gi h(u). Tt nhin
phng php ny ch cho php tm c ng i tng i tt, cha chc l
ng i ti u.
Ngoi ra, cng c th s dng k thut tm kim tt nht u tin vi hm nh
gi g(u). Phng php ny s tm ra ng i ngn nht, tuy nhin n c th km
hiu qu.
tng hiu qu tm kim, c th s dng hm nh gi mi:
f(u) = g(u) + h(u)
Tc l, f(u) l nh gi di ng i ngn nht qua u t trng thi ban u ti
trng thi kt thc.
Thut ton A* l thut ton s dng k thut tm kim tt nht u tin vi hm
nh gi f(u).
Thut ton A*:
begin
1. Khi to danh sch L ch cha trng thi ban u;
2. loop do
2.1 if L rng then

{thng bo tht bi; stop};


2.2 Loi trng thi u u danh sch L;
2.3 if u l trng thi ch then
{thng bo thnh cng; stop}
2.4 for mi trng thi v k u do
{g(v) g(u) + k(u,v);
f(v) g(v) + h(v);
t v vo danh sch L;}
2.5 Sp xp L theo th t tng dn ca hm f sao cho
trng thi c gi tr ca hm f nh nht
u danh sch;
end;
phc tp ca thut ton A*: phc tp thi gian ca A* ph thuc vo
nh gi heuristic. Trong trng hp xu nht, s nt c m rng theo hm
m ca di li gii, nhng n s l hm a thc khi hm heuristic htha mn
iu kin sau:
|h(x) h*(x)| O(log h*(x))
Trong h * l heuristic ti u, ngha l hm cho kt qu l chi ph chnh xc
i t x ti ch. Ni cch khc, sai s ca h khng nn tng nhanh
hn lgarit ca "heuristic hon ho" h * - hm tr v khong cch thc t x ti
ch.

Vn s dng b nh ca A* cn rc ri hn phc tp thi gian. Trong


trng hp xu nht, A* phi ghi nh s lng nt tng theo hm m.
1.2.3. Thut ton di truyn
Thut ton di truyn (TTDT) l thut ton bt chc s chn lc t nhin v di
truyn. Trong t nhin, cc c th khe, c kh nng thch nghi tt vi mi
trng s c ti sinh v nhn bn cc th h sau. Mi c th c cu trc gien
c trng cho phm cht ca c th . Trong qu trnh sinh sn, cc c th con
c th tha hng cc phm cht ca c cha v m, cu trc gien ca n mang
mt phn cu trc gien ca cha v m. Ngoi ra, trong qu trnh tin ha, c th
xy ra hin tng t bin, cu trc gien ca c th con c th cha cc gien m
c cha v m u khng c.
Trong TTDT, mi c th c m ha bi mt cu trc d liu m t cu trc
gien ca c th , ta s gi n l nhim sc th (chroniosome). Mi nhim sc
th c to thnh t cc n v c gi l gien. Chng hn, trong cc TTDT
c in, cc nhim sc th l cc chui nh phn, tc l mi c th c biu
din bi mt chui nh phn.
TTDT s lm vic trn cc qun th gm nhiu c th. Mt qun th ng vi mt
giai on pht trin s c gi l mt th h. T th h ban u c to ra,
TTDT bt chc chn lc t nhin v di truyn bin i cc th h. TTDT s
dng cc ton t c bn sau y bin i cc th h:
- Ton t ti sinh (reproduction) (cn c gi l ton t chn lc
(selection)): Cc c th tt c chn lc a vo th h sau. S la chn ny
c thc hin da vo thch nghi vi mi trng ca mi c th. Ta s gi
hm ng mi c th vi thch nghi ca n l hm thch nghi (fitness function).

10

- Ton t lai ghp (crossover): Hai c th cha v m trao i cc gien to


ra hai c th con.
- Ton t t bin (mutation): Mt c th thay i mt s gien to thnh
c th mi.
Tt c cc ton t trn khi thc hin u mang tnh ngu nhin. Cu trc c bn
ca TTDT l nh sau:
procedure Genetic_Algorithm;
begin
t 0;
Khi to th h ban u P(t);
nh gi P(t) (theo hm thch nghi);
repeat
t t + 1;
Sinh ra th h mi P(t) t P(t-1) bi
Chn lc
Lai ghp
t bin;
nh gi P(t);
until iu kin kt thc c tha mn;
end;

11

Trong th tc trn, iu kin kt thc vng lp c th l mt s th h ln no


, hoc thch nghi ca cc c th tt nht trong cc th h k tip nhau khc
nhau khng ng k. Khi thut ton dng, c th tt nht trong th h cui cng
c chn lm nghim cn tm.
Xt chi tit hn ton t chn lc v cc ton t di truyn (lai ghp, t bin)
trong cc TTDT c in:
Chn lc:
Vic chn lc cc c th t mt qun th da trn thch nghi ca mi c th.
Cc c th c thch nghi cao c nhiu kh nng c chn. Cn nhn mnh
rng, hm thch nghi ch cn l mt hm thc dng, n c th khng tuyn tnh,
khng lin tc, khng kh vi. Qu trnh chn lc c thc hin theo k thut
quay bnh xe.
Gi s th h hin thi P(t) gm c n c th {x1,..,xn}. S n c gi l c ca
qun th. Vi mi c th xi, tnh thch nghi ca n f(xi). Tnh tng cc
thch nghi ca tt c cc c th trong qun th:
n

F f(xi)
i 1

Mi ln chn lc, thc hin hai bc sau:


- Sinh ra mt s thc ngu nhin q trong khong (0, F);
- xk l c th c chn, nu k l s nh nht sao cho
k

f ( xi) 4
i 1

12

Vic chn lc theo hai bc trn c th minh ha nh sau: C mt bnh xe c


chia thnh n phn, mi phn ng vi thch nghi ca mt c th (hnh 1). Mt
mi tn ch vo bnh xe. Quay bnh xe, khi bnh xe dng, mi tn ch vo phn
no, c th ng vi phn c chn.

Hnh 1.1: K thut quay bnh xe


R rng l vi cch chn ny, cc c th c th c thch nghi cng cao cng
c kh nng c chn. Cc c th c thch nghi cao c th c mt hay nhiu
bn sao, cc c th c thch nghi thp c th khng c mt th h sau (n b
cht i).
Lai ghp:
Trn c th c chn lc, tn hnh ton t lai ghp. u tin cn a ra xc
sut lai ghp pc. xc sut ny cho hy vng c pc.n c th c lai ghp (n l c
ca qun th).
Vi mi c th ta thc hin hai bc sau:
- Sinh ra s thc ngu nhin r trong on [0, 1];
- Nu r < pc th c th c chn lai ghp
T cc c th c chn lai ghp, ngi ta cp i chng mt cch ngu
nhin. Trong trng hp cc nhim sc th l cc chui nh phn c di c
nh m, ta c th thc hin lai ghp nh sau: Vi mi cp, sinh ra mt s nguyn

13

ngu nhin p trn on [0, m -1], p l v tr im ghp. Cp gm hai nhim sc


th
a = (a1 , ... , ap , ap+1 , ... , am)
a = (b1 , ... , bp , bp+1 , ... , bm)
c thay bi hai con l:
a' = (a1 , ... , ap , bp+1 , ... , bm)
b' = (b1 , ... , bp , ap+1 , ... , am)
t bin:
Thc hin ton t t bin trn cc c th c c sau qu trnh lai ghp. t
bin l thay i trng thi mt s gien no trong nhim sc th. Mi gien chu
t bin vi xc sut pm. Xc sut t bin pm do ta xc nh v l xc sut thp.
Sau y l ton t t bin trn cc nhim sc th chui nh phn.
Vi mi v tr i trong nhim sc th:
a = (a1 , ... , ai , ... , am)
Sinh ra mt s thc nghim ngu nhin pi trong [0,1]. Qua t bin a c bin
thnh a nh sau:
a' = (a'1 , ... , a'i , ... , a'm)
Trong :
a'i = ai
1 - ai

nu pi pm
nu pi < pm

14

Sau qu trnh chn lc, lai ghp, t bin, mt th h mi c sinh ra. Cng
vic cn li ca thut ton di truyn by gi ch l lp li cc bc trn.
Thut ton di truyn khc vi cc thut ton ti u khc cc im sau:
- TTDT ch s dng hm thch nghi hng dn s tm kim, hm thch
nghi ch cn l hm thc dng. Ngoi ra, n khng i hi khng gian tm kim
phi c cu trc no c.
- TTDT lm vic trn cc nhim sc th l m ca cc c th cn tm.
- TTDT tm kim t mt qun th gm nhiu c th.
- Cc ton t trong TTDT u mang tnh ngu nhin.
gii quyt mt vn bng TTDT, cn thc hin cc bc sau y:
- Trc ht cn m ha cc i tng cn tm bi mt cu trc d liu no
.
- Thit k hm thch nghi. Trong cc bi ton ti u, hm thch nghi c xc
nh da vo hm mc tiu.
- Trn c s cu trc ca nhim sc th, thit k cc ton t di truyn (lai
ghp, t bin) cho ph hp vi cc vn cn gii quyt.
- Xc nh c ca qun th v khi to qun th ban u.
- Xc nh xc sut lai ghp pc v xc sut t bin. Xc sut t bin cn l
xc sut thp. Ngi ta (Goldberg, 1989) khuyn rng nn chn xc sut lai ghp
l 0,6 v xc sut t bin l 0,03. Tuy nhin cn qua th nghim tm ra cc
xc sut thch hp cho vn cn gii quyt.

15

Ni chung thut ng TTDT l ch TTDT c in, khi m cu trc ca cc


nhim sc th l cc chui nh phn vi cc ton t di truyn c m t
trn. Song trong nhiu vn thc t, thun tin hn, c th biu din nhim sc
th bi cc cu trc khc, chng hn vect thc, mng hai chiu, cy... Tng
ng vi cu trc ca nhim sc th, c th c nhiu cch xc nh cc ton t di
truyn. Qu trnh sinh ra th h mi P(t) t th h c P(t - 1) cng c nhiu cch
chn la. Ngi ta gi chung cc thut ton ny l thut ton tin ha
(evolutionary algorithms) hoc chng trnh tin ha (evolution program).

16

CHNG 2 - LP TRNH SONG SONG VI MPI


2.1. Tng quan v lp trnh song song vi MPI
2.1.1. Gii thiu
Message Passing Interface MPI l mt chun mi c s dng rng ri nht.
N khng phi l mt ngn ng lp trnh mi, thay vo n l mt th vin
ca chng trnh con m c th c gi t chng trnh C v Fortran 77.
MPI c pht trin bi mt din n m quc t, bao gm cc i din t
ngnh cng nghip, cc hc vin v phng th nghim ca chnh ph. N
nhanh chng c chp nhn rng ri bi c thit k cn thn cho php hiu
sut ti a trn mt lot cc h thng, v n da trn truyn thng ip, mt
trong nhng m hnh mnh m nht v c s dng rng ri cho lp trnh cc
h thng song song.
Nhng n lc cho MPI bt u vo ma h nm 1991, khi mt nhm nh cc
nh nghin cu bt u tho lun ti mt ni ho lnh trn ni c.
Ni dung li c tho lun ti hi tho tiu chun cho truyn thng ip
trong mt mi trng b nh phn tn (Standards for Message Passing in a
Distributed Memory environment) t chc vo ngy 29 30 thng 4 nm 1992
ti Williamsburg, Virginia. Ti hi tho ny, cc tnh nng c bn cn thit cho
mt MPI chun c tho lun, m mt nhm cng tc c thnh lp
tip tc qu trnh tiu chun ho. Jack Dongarra, Rolf Hempel Hempel, Tony
Hey v David W.Walker a ra mt bn d tho s b c bit n nh MPI-1
trong thng 11 nm 1992.

17

Trong thng 11 nm 1992, mt cuc hp ca nhm cng tc MPI c t


chc ti Minneapolis, m ti hi tho quyt nh t cc qu trnh tiu chun
ho trn mt c s chnh thc hn. Nhm cng tc MPI gp nhau 6 tun mt
ln trong sut 9 thng u ca nm 1993. Bn d tho chun MPI c trnh
by ti hi ngh Siu my tnh nm 93 trong thng 11 nm 1993.
Sau mt thi gian nhn nhng kin ng gp t cng ng, mt s kt qu
c thay i trong MPI, phin bn 1.0 ca MPI c pht hnh vo thng 6
nm 1994. Thng qua nhng cuc gp g v th in t, cc nh nghin cu
tho lun vi nhau thnh lp din n MPI, trong tt c cc thnh vin ca
cng ng in ton hiu sut cao u c th ng k lm thnh vin ca din
n.
MPI thu ht s tham gia khong 80 ngi t 40 t chc, ch yu l M v
Chu u. Hu ht cc nh cung cp chnh ca my tnh u c tham gia vo
MPI cng vi cc nh nghin cu t cc trng i hc, phng th nghim ca
chnh ph v ngnh cng nghip.
2.1.2 Mt s c im ca lp trnh MPI
MPI l mt giao thc truyn thng c lp vi ngn ng dng lp trnh my
tnh song song. MPI h tr c giao tip im im v giao tip tp th. Mc
tiu ca MPI l hiu sut, kh nng m rng v kh nng di dng cao.
MPI thng xuyn chy trn cc my tnh chia s b nh.
Mc d MPI thuc v lp th 5 v lp cao hn ca m hnh OSI, nhng nhng
trin khai c th bao gm hu ht cc lp, vi socket v TCP (Transmission
Control Protocol) c dng trong tn vn chuyn.

18

Hu ht cc trin khai MPI bao gm mt thit lp nh tuyn ring c th c


gi trc tip t C, C++, Fortran hay bt k ngn ng no c giao din vi cc
th vin, bao gm C#, Java hoc Python. Nhng u im ucar MPI vt qua
nhng th vin truyn thng ip c l tnh di ng (MPI c th c trin khai
cho hu ht cc kin trc b nh phn tn) v tc (MPI thc hin nguyn tc
ti u ho cho phn c m n chy).
MPI s dng LIS (Language Independent Specifications) gi v rng buc
ngn ng. Phin bn u tin c pht hnh ch nh rng buc ANSI C v
Fortran 77 cng vi LIS. Nm 2008, chun MPI-1.3 cha khong 128 chc
nng, y cng l pht hnh cui cng ca seri MPI-1 trong nm 2008.
Phin bn MPI-2.2 bao gm nhng tnh nng ni nh l I/O song song, qun l
tin trnh ng v iu hnh b nh t xa. LIS ca MPI-2 thit lp hn 500 hm
v cung cp rng buc ngn ng cho ANSI C, ANSI C++ v ANSI Fortran
(Fortran 90). Kh nng tng tc i tng cng c thm vo cho php lp
trnh truyn thng ip bng ngn ng hn hp d dng hn.
MPI cung cp m hnh lin kt o, ng b ho v chc nng lin lc gia mt
tp hp cc tin trnh ( c nh x ti cc nt/my ch/my tnh c th) trong
mt ngn ng c lp, vi c php ngn ng c trng (rng buc), cng vi
mt vi tnh nng ngn ng c trng. Nhng chng trnh MPI lun lun lm
vic vi cc tin trnh, nhng nhng lp trnh vin thng xem cc tin trnh nh
l nhng b vi x l. Thng thng, t hiu sut ti a, mi CPU (hoc 1
nhn trong mt my tnh a nhn) s c giao ch mt tin trnh duy nht.
Nhng chc nng th vin MPI bao gm (khng gii hn) nhng hot ng
nhn/gi loi im im, la chn gia m hnh x l logic Cartesian hoc m

19

hnh x l logic th tng ng, trao i d liu gia nhng cp tin trnh, kt
hp cc kt qu tng phn ca tnh ton (thu thp v gim cc hot ng), ng
b ho cc nt cng nh thu thp thng tin lin quan mng nh s lng ca
tin trnh trong phin tnh ton, nhn dang b vi x l hin ti m b vi x l
c nh x, nhng tin trnh ln cn truy cp trong mt m hnh lin kt logic.
2.2. Lp trnh song song vi MPI
2.2.1. Gii thiu
Giao thc truyn thng ip MPI l mt th vin cc hm v macro c th c
gi t cc chng trnh s dng ngn ng C, Fortran, v C++. Nh tn gi ca
n MPI c xy dng nhm s dng trong cc chng trnh khai thc h
thng cc b x l bng cch truyn thng ip.
* Mc tiu thit k ca MPI bao gm:
- Thit k mt giao din lp trnh ng dng. Mc d MPI gn y c s
dng nh mt chng trnh dch v mt th vin thi gian chy, nhng thit k
ca MPI ch yu phn nh nhu cu nhn thc ca nhng ngi lp trnh ng
dng.
- Cho php truyn thng mt cch hiu qu: trnh vic sao chp d liu t b
nh sang b nh v cho php gi chng (overlap) gia cc tnh ton v truyn
thng v offload truyn thng ng x l khi c th.
- Cho php thc thi trn mt mi trng khng ng nht.
- C th c gn kt d dng vo trong cc chng trnh ngn ng C v
Fortran.

20

- Cung cp mt giao thc truyn thng tin cy: ngi dng khng cn phi lo
lng ti tht bi trong truyn thng. Cc tht bi ny c x l bi cc h thng
truyn thng c s pha sau.
- nh ngha mt giao thc khng qu khc bit so vi cc mi trng song
song hin ti nh PVM (Parallel Vitual Machine), NX, Express... v cung cp
cc m rng cho php linh hot cao hn.
- nh ngha mt giao thc c th c thc thi trn cc mi trng
(flatform) ca nhiu nh cung cp m khng cn thay i no ng k trong
truyn thng c s v phn mm h thng.
- Ng ngha ca giao thc l c lp vi ngn ng.
- Giao thc c thit k cho php s dng lung mt cch an ton.
* Cc tnh nng ch yu ca MPI [4]
- Mt lng ln cc hm truyn thng im im (phong ph hn rt nhiu
so vi cc mi trng lp trnh song song khc).
- Mt lng ln cc th tc truyn thng chn lc, c s dng giao tip
gia mt nhm cc b x l trong h thng.
- Mt ng cnh truyn thng h tr cho vic thit k cc th vin phn mm
song song.
- C kh nng xc nh cc topology truyn thng.
- C kh nng nh ngha cc kiu d liu mi m t cc thng bo da
trn cc d liu khng lin tc.
* Cc tin trnh

21

Mt chng trnh MPI bao gm cc b x l c lp, thc thi cc m lnh ring


ca chng trong mt m hnh MIMD (Multiple Instruction Multiple Data). Cc
tp lnh c thc thi bi cc b x l khng nht thit phi ging nhau, vic
truyn thng gia cc b x l c thc hin thng qua vic gi cc hm truyn
thng ca MPI.
MPI khng nh r kiu thc thi cho mi b x l. B x l A c th chy tun
t, hoc c th thc thi dng a lung vi cc lung c kch hot ng thi.
iu ny thc hin c do tnh cht lung an ton (thread-safe) ca MPI bng
cch trnh s dng cc trng thi tuyt i.
* ng dng MPI
Mt ng dng MPI c th c thc thi nh l mt tp cc nhim v truyn
thng ng thi. Mt chng trnh bao gm cc on m ca ngi lp trnh
c lin kt vi cc hm th vin c cung cp bi phn mm MPI. Mi
nhim v c ch nh mt th hng (rank) duy nht trong khong 1-> n-1 vi
cc ng dng c n nhim v. Cc hng ny c s dng xc nh cc nhim
v MPI khc nhau trong vic gi v nhn tin cng nh thc hin cc thao tc
truyn thng ni chung. Nhim v MPI c th chy trn cng b x l hoc cc
b x l khc nhau mt cch ng thi. Li ch ca cc rank l lm cho thao tc
phi hp c lp vi v tr vt l ca cc thnh phn.
2.2.2. Mt s vn v hiu nng
2.2.2.1 Nng lc tnh ton
Vic song song ha mt chng trnh nhm lm cho chng trnh chy nhanh
hn, tuy nhin chng trnh s chy nhanh hn bao nhiu ln? nh lut
Amdahls [3] cho php ta xc nh iu ny. Gi s xt v kha cnh thi gian

22

chy chng trnh, mt phn p ca chng trnh c th song song ha v phn 1p cn li buc phi chy tun t. Trong trng hp l tng, nu thc thi
chng trnh s dng n b x l, thi gian chy chng trnh s l 1-p + p/n ca
thi gian chy chng trnh mt cch tun t. y l h qu trc tip ca nh
lut Amdahl p dng cho trng hp thc thi l tng.
V d: nu 80% chng trnh c th c song song ha, v ta c 4 b x l,
thi gian chy song song s l: 1 - 0.8 + 0.8/4 = 0.4 tc l bng 40% thi gian
chy tun t.

Hnh 2.1: kh nng tng tc tnh ton, trng hp l tng


i vi chng trnh trn, thi gian chy song song s khng th no nh hn
20% thi gian chy tun t cho d ta s dng s lng v cng ln cc b x l.
Trn thc t, khi chy mt chng trnh song song, thng xut hin cc chi ph
truyn thng v vic phn cng cng vic khng cn bng gia cc b x l. Do
thi gian chy chng trnh s l:

23

Hinh 2.2: Kh nng tng tc tnh ton, trng hp thc t.


Do vy tng tc ca chng trnh ta cn:
- Tng t l (thnh phn) c song song ha ca chng trnh.
- Phn cng cng vic mt cch cng bng cho cc b x l.
- Gim ti mc ti thiu thi gian truyn thng.
2.2.2.2 Cn bng ti
Gi s rng nu d liu c phn tn trn cc b nh a phng ca cc b x
l trong h thng nhiu my tnh, khi khi lng cng vic ca cc b x l
cn phi c phn phi hp l trong sut qu trnh tnh ton. Trong nhiu
trng hp, gi s ny l ng, tuy nhin trong thc t iu ny khng phi lc
no cng thc hin c. Gii php c a ra y l cn bng ti ng
nhm mc ch lm thay i s phn phi khi lng cng vic gia cc b x
l trong qu trnh thc hin tnh ton.

24

Thng thng sau khi phn phi khi lng cng vic cho cc b x l, qu
trnh cn bng ti ng thc hin bn bc c bn sau:
- Gim st hiu nng ca cc b x l.
- Trao i thng tin trng thi gia cc b x l.
- Tnh ton v ra quyt nh phn phi li khi lng cng vic.
- Thc hin vic chuyn i d liu thc s.
thc hin c iu ny, rt nhiu thut ton c xut. Ngi ta phn
lp cc thut ton ny theo cc chin lc: tp trung, phn tn hon ton (fully
distributed) v phn tn mt na (semi distributed).
a) Cc thut ton cn bng ti tp trung
Cc thut ton ny thng a ra quyt nh c tnh cht tng th trong vic
phn phi li khi lng cng vic cho cc b x l. Mt vi thut ton trong
lp ny s dng thng tin h thng c tnh ton cc lu trng thi cc my
tnh ring l. Thng tin ny s gip thut ton phn phi cng vic mt cch d
dng. Tuy nhin, khi lng thng tin tng theo t l thun vi s lng cc b
x l, do n i hi khi lng ln b nh trn mt b x l lu thng tin
trng thi. V vy thut ton thuc lp ny khng c tip cn mt cch rng
ri.
b) Cc thut ton cn bng ti phn tn hon ton
Trong cc thut ton dng ny, mi b x l c mt bn sao v thng tin trng
thi ca h thng. Cc b x l trao i thng tin trng thi vi nhau v s dng
cc thng tin ny lm thay i mt cch cc b vic phn chia cng vic. Tuy

25

nhin cc b x l ch c thng tin trng thi cc b nn vic cn bng ti khng


tt bng cc thut ton cn bng ti tp trung.
c) Cc thut ton cn bng ti phn tn mt na
Cc thut ton thuc lp ny chia cc b x l thnh tng min. Trong mi min
s dng thut ton cn bng ti tp trung phn phi cng vic cho cc b x
l thuc min .
2.2.2.3 S b tc
Cc tin trnh x l b ri vo tnh trng b tc nu mi tin trnh nm gi ti
nguyn m mt vi tin trnh khc ang yu cu x l. L do tim n ca s
b tc l do nhiu tin trnh cng s dng ngun ti nguyn chung m khng c
s kim sot tt.
i vi cc h thng a my tnh, mt trong nhng s b tc ph bin nht l b
tc vng m (buffer deadlock) xy ra khi mt tin trnh i mt thng ip m
thng ip ny c th khng bao gi nhn c do vng m y.
Bn iu kin sau l nguyn nhn gy ra b tc:
1. S loi tr ln nhau: mi tin trnh c s c quyn trong vic s dng
ti nguyn ca n.
2. Khng c s u tin: Mi tin trnh khng bao gi gii phng ti nguyn
m n ang chim gi cho ti tn khi khng cn s dng chng na.
3. S ch i ti nguyn: mi tin trnh ang chim gi ti nguyn trong
khi li ch i cc tin trnh khc gii phng chng.
4. S ch i gia cc tin trnh: tin trnh ch i ti nguyn m tin trnh
k tip ang chim gi m ti nguyn khng c gii phng.

26

* Mt s gii php khc phc s b tc


- D tm s b tc khi chng xy ra v c gng khi phc li.
- S dng cc thng tin yu cu ti nguyn ca cc tin trnh iu khin s
phn phi khi tip tc phn phi cc ti nguyn khng l nguyn nhn cc
tin trnh ri vo b tc.
- Ngn cm khng xy ra iu kin th 4 trong cc iu kin trn.

27

CHNG 3 - MPI TRONG THUT TON DIJKSTRA CHO BI TON


TM KIM NG I NGN NHT
3.1. Yu cu t ra cho bi ton tm kim ng i ngn nht theo gii
thut Dijksta
Thut ton Dijkstra c th tnh ton tt c cc ng i ngn nht t mt nh
xut pht cho trc s ti mi nh khc m khng lm tng thi gian chy.
phc tp ca thut ton ny l O(n2).
Yu cu t ra y l vi s nh ln, mi nh c s cnh k ln, chi ph
tm ng i ngn nht tng ng vi thut ton ny l khng nh.
p ng yu cu trn vi chi ph thp nht, cn ci tin thut ton Dijkstra c
in p ng yu cu v thi gian.
Trong lun vn ny, tc gi xut hng gii quyt bng cch song song ho
thut ton Dijkstra s dng m hnh truyn thng ip MPI.
3.2. Xy dng hm tm kim ng i ngn nht
Phng php song song ho c xut trong lun vn l phng php chia
tp nh ngun. Vi phng php ny, mi b x l s chy thut ton Dijkstra
tun t cho tp con cc nh ngun.
xy dng thut ton Dijkstra song song, trc ht cn xy dng thut ton
Dijkstra tun t ph hp vi yu cu t ra.
3.2.1 Xy dng thut ton Dijkstra tun t cho bi ton
Procedure Seq Dijkstra (V,E,w,s)
Begin

28

VT:= {s};
For all v (V-VT) do
If tn ti cnh (s, v) t l[v] := w(s, v);
else t L[v] := ;
while VT V do
Begin
Tm mt cnh u m L[u] := min{L[u]|v (V VT)};
VT := VT {u};
For all v (V VT) do
L[v] := min{L[v], L[u] + w(u, v)};
End
Endwhile
End
End Pro
3.2.2 Thc hin song song ho
- Gi s, bi ton c n nh, thut ton s dng p b x l.
- Tp nh V c chia thnh p tp con, mi tp con c n/p nh v gn cho 1
b x l.
- B x l Pi qun l tp nh con Vi v tnh ton khong cch L[v] cho cc
nh v Vi
- B x l Pi lu phn Li ca mng L, tng ng vi tp con Vi

29

3.2.3 Thut ton song song


Procedure Parallel Dijkstra (V,E,w,s)
Begin
VT:= {s};
For all v (V-VT) do
If tn ti cnh (s, v) t L[v] := w(s, v);
else t L[v] := ;
Chia tp nh V thnh p tp con v gn cho mi tin trnh
while VT V do
Begin
Ti mi tin trnh, tm mt cnh u m Li[u] :=
min{Li[u]|v (V VT)};
Kt hp cc gi tr min{Li-min | i = 0..p-1} t tt c cc
tin trnh v phn phi tr li tt c cc tin trnh
nh du nh thc hin
Cp nht gi tr min trn mi tin trnh
End
Tng hp kt qu t cc tin trnh
Endwhile
End
End Pro

30

3.2.4 La chn hm MPI cho thut ton song song


Mt chng trnh MPI bao gm nhiu chng trnh tun t c trao i d liu
vi nhau thng qua vic gi cc hm trong th vin. Cc hm ny thuc bn lp
c bn:
1. Khi to, qun l v kt thc trao i.
2. Trao i gia hai tin trnh.
3. Trao i gia mt nhm cc tin trnh.
4. To cc nh dng d liu bt k.
Lp u tin l cc hm c gi khi u qu trnh trao i, xc nh s
lng b x l c s dng, to mt nhm con cc b x l, xc nh b x l
no ang chy chng trnh hin ti.
- MPI_Init(): khi to qu trnh song song.
- MPI_Finalize(): kt thc qu trnh song song.
- MPI_Comm_rank(): xc nh tn tin trnh.
- MPI_Comm_size(): xc nh tng s tin trnh chy song song.
Lp th hai l cc hm, c gi trao i d liu im - n - im, vi cc
kiu gi v nhn d liu khc nhau gia hai b x l.
- MPI_Send(): gi d liu n mt tin trnh.
- MPI_Recv(): nhn d liu t mt tin trnh.
Lp th ba l cc hm cho php thc hin trao i song song gia mt nhm cc
b x l. Cc hm c bn:

31

- MPI_Bcast(): gi d liu t mt tin trnh i tt c cc tin trnh.


- MPI_Reduce(): gi d liu t nhiu tin trnh v mt tin trnh
- MPI_Barrier(): dng ng b hot ng gia cc my
- MPI_Gather(): nhn d liu t nhiu tin trnh.
- MPI_Scatter(): gi d liu n nhiu tin trnh
Lp cui cng l cc hm cung cp to ra cc cu trc d liu phc tp ring
ca ngi dng. Cc hm c bn:
- MPI_Type_struct(): to ra kiu d liu MPI ring ca ngi dng
- MPI_Type_commit(): han thnh qu trnh nh ngha kiu d liu MPI
Trong lun vn ny, thc hin trao i song song gia mt nhm cc b x l
cn s dng cc hm lp th 3.
* Hm Reduce
Hm Reduce nhn kt qu t cc tin trnh v gi kt qu n tin trnh
c ch nh.
- C php: int MPI_ Reduce(void *sendbuf, void *recvbuf, int count,
MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)

32

Hnh 3.1: phng thc hot ng ca hm Reduce


* Hm All Reduce
Hm All Reduce tng t nh hm Reduce, nhng khng c Root v tt c cc
tin trnh u nhn c kt qu.
* Hm Broadcast
Hm Boadcast cho php mt tin trnh gi d liu n tt c cc tin trnh khc.
- C php: int MPI_Bcast(void *buf, int count, MPI_Datatype datatype, int
root, MPI_Comm comm)

Hnh 3.2: phng thc hot ng ca hm Broadcast

33

* Hm Scatter
Hm Scatter chia nh d liu ca mt tin trnh v phn phi cc phn d liu
c chia ln cc tin trnh khc.
- C php: int MPI_Scatter(void *sendbuf, int sendcount, MPI_Datatype
sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root,
MPI_Comm comm)

Hnh 3.3: phng thc hot ng ca hm Scatter


* Hm Gather
Mt tin trnh c ch nh s nhn kt qu t cc tin trnh khc khi s dng
hm Gather.
- C php: int MPI_Gather(void *sendbuf, int sendcount, MPI_Datatype
sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root,
MPI_Comm comm)

34

Hnh 3.4: phng thc hot ng ca hm Gather


* Hm Gather to All
Tng t nh hm Gather, nhng tt c cc tin trnh u nhn c kt qu nh
nhau.
- C php: int MPI_Allgather(void *sendbuf, int sendcount, MPI_Datatype
sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm
comm)

Hnh 3.5: phng thc hot ng ca hm Gather to - All


* Hm All to all

35

Hm All to All cho php tt c cc tin trnh phn chia d liu, sau gi
tng phn d liu n cc tin trnh khc.
- C php: int MPI_All_to_all(void *sendbuf, int sendcount, MPI_Datatype
sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm
comm)

Hnh 3.6: phng thc hot ng ca hm All to All


Cn c vo c im ca cc hm lp 3, lun vn s dng:
- Hm Reduce khi kt hp cc gi tr min;
- Hm Broadcast phn phi kt qu n cc tin trnh sau khi kt hp;
- Hm Gather tp hp cc kt qu sau khi duyt ht tt c cc nh;
3.2.5 Cng thc song song
- Ti bc kt np nh s vo tp VT
- B x l Pi tnh Li(v) = min{ Li(v), Li(u) + w(v,r) }, v Vi \VT
- Sau , Pi tnh Li-min = min{ Li(v) | v Vi \VT)

36

- S dng mu lin lc All-to-One Reduction a min{Li-min | i = 0..p-1}


v P0
- Gi s gi tr nh nht t c ti nh u, P0 broadcast u n cc b x l
khc, b x l qun l u s nh du u l khng xt n na.

37

* S khi thut ton Dijkstra song song

Begin

Nu
v (V-VT)

True

Nu tn ti
(s,v)

True

L[v] :=
w(s, v)

False
L[v] :=

False
Cp nht gi tr min
trn mi tin trnh

While VT V

True

Tm u c trng s
nh nht m
v (V VT)

nh du nh
thc hin

Kt hp
Li-min,
phn
phi tr
li cc
tin
trnh

False
Tng hp
kt qu t
cc tin
trnh

End

Hnh 3.1: S khi thut ton Dijkstra song song

38

3.3. Chi ph thi gian


- Mi b x l lu n/p phn t ca mng L
- Thi gian tnh min v cp nht gi tr ca di bng O(n/p)
- Thi gian lin lc gia p b x l O(log p)
- Tng thi gian O(n2/p) + O(n log p)
- Tng chi ph O(n2) + O(np log p)
- thut ton l ti u chi ph p = O(n / log n)

39

CHNG 4 - KT QU TH NGHIM

4.1. Cc kt qu th nghim
4.1.1. Kt qu th nghim gii thut Dijkstra c in
* Phn cng
- 1 my tnh Pentium IV 2.2GHz, RAM 512MB ci t h iu hnh
CentOS.
* Th nghim
- Ci t thut ton Dijkstra c in vi s lng nh tng dn, trng s gia
cc cnh c chn ngu nhin.
- Kt qu chy th nghim:
Bng 4.1: Thi gian thc hin thut ton Dijkstra c in
S nh
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
5500
6000
6500

Thi gian tun t (s)


0
0.004466
0.010011
0.023075
0.03786
0.061357
0.09546
0.134992
0.176472
0.230217
0.292116
0.362056
0.426997
0.503063

40

4.1.2. Kt qu th nghim tm kim bng gii thut Dijkstra song song


* Phn cng
- H thng bao gm 2 my tnh Pentium IV 2.2GHz, RAM 512MB ci t
h iu hnh CentOS.
- H thng c ci t MPI.
* Th nghim
- Ci t thut ton Dijkstra song song vi s lng nh tng dn, trng s
gia cc cnh c chn ngu nhin.
- S tin trnh th nghim l 2, tng ng vi mi b x l l 1 tin trnh.
- Kt qu chy th nghim:
Bng 4.2: Thi gian thc hin thut ton Dijkstra song song vi 2 tin trnh
S nh
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
5500
6000
6500

Thi gian song song


(2 tin trnh)
0
0.006841
0.013739
0.027807
0.048473
0.07326
0.103994
0.141089
0.181721
0.233742
0.282327
0.348231
0.409863
0.485421

- Thay i s tin trnh, chy thut ton cho kt qu tng ng nh sau:

41

Bng 4.3: Thi gian thc hin thut ton Dijkstra song song vi nhiu tin trnh
S nh
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
5500
6000
6500

Thi gian song song


3 tin trnh 4 tin trnh
0
0
0.045354
0.088688
0.108983
0.232677
0.175406
0.403382
0.264301
0.635685
0.294662
0.769664
0.334142
1.011743
0.410569
1.313697
0.476818
1.628063
0.604493
2.019241
0.656572
2.417935
0.799673
2.867876
0.858593
3.318057
0.983601
3.981472

4.2. nh gi kt qu
- Kt qu th nghim cho thy rng tc thc hin thut ton Disktra song
song trn h thng th nghim nhanh hn tc thc hin thut ton Dijkstra
trn mt my n.

42

0.6
0.5
0.4
0.3
0.2
0.1

6000

5000

4000

3000

2000

1000

Thi gian
song song
Thi gian
tun t

Hnh 4.4: So snh kt qu th nghim thut ton Dijksta


- Thut ton Dijksta c in cho thi gian x l ban u nhanh hn, nhng t
l thi gian x l cng tng khi thc hin vi s nh cng ln, thi gian thc
hin ln hn.
- Thut ton Dijkstra song song cho thi gian x l ban u lu hn, nhng
t l thi gian x l n nh khi thc hin vi s nh cng ln, thi gian thc
hin thp hn.
- Khi tng s tin trnh x l ln 3, vi s nh thp, s tin trnh cao s x l
nhiu thi gian hn do thi gian truyn thng tng. Nhng vi s nh cng tng,

43

thi gian x l vn c t l n nh. iu ny cho thy thut ton vn cha ti u


c thi gian cho chi ph truyn thng.
- Tng s tin trnh ln 4, thi gian x l nhiu hn, s nh cng th thi
gian x l cng tng. c bit khi s nh tng ln cao th thi gian x l cng
nhiu. Do trng hp ny khng ti u cho thut ton.
- S tin trnh tng, nhng s b x l khng tng, nn cha nh gi c
hiu sut ca thut ton.

4.5
4
3.5
3
2.5
2
1.5
1
0.5
0

2 Tin trnh

6000

5000

4000

3000

2000

1000

3 Tin trnh
4 tin trnh

Hnh 4.5: So snh kt qu th nghim thut ton Dijksta vi nhiu tin trnh

44

KT LUN

Lp trnh song song hin nay khng cn l cng vic ca mt b phn ca cng
ng cc nh khoa hc, nghin cu, hoc trong nn cng nghip m n tr
thnh xu hng pht trin trong thi i ngy nay. Vic tn dng sc mnh ca
h thng my tnh vi phng php lp trnh song song em li li ch hn nhiu
so vi vic u t mt siu my tnh vi kh nng x l cao, nhng hn ch vi
phng php x l tun t c in.
Song song ho thut ton Dijkstra cho bi ton tm ng i ngn nht vi MPI
cho kt qu tt hn so vi thc hin thut ton Dijkstra c in, iu ny chng
minh c lp trnh song song c th gip cc nh nghin cu, khoa hc hoc
nn cng nghip tn dng c ti a sc mnh ca h thng, ng thi gim
chi ph u t hp l.
Lun vn gii quyt c yu cu t ra ban u cho ti. Tuy nhin, vic
kim sot ti nguyn b nh ca h thng vn cha c gii quyt trong lun
vn ny. y l mt thch thc khng nh cho cc nh lp trnh song song
gii quyt vn ti u v chi ph thc hin ln chi ph b nh.

TI LIU THAM KHO


Ting Vit
[1] inh Mnh Tng, Gio trnh tr tu nhn to, Khoa CNTT i hc Quc
gia H Ni
[2] Gio trnh L thuyt th, Khoa CNTT i hc Hu
Ting Anh
[3] G. Amdahl. Validity of the single processor approach to achieving large scale
computing capabilities. Proc. AFIPS Conf., 30:483{485, Apr. 18-20 1967}.
[4] G.A.Geist, J.A.Kolh, P.M.Papadopoulos, PVM and MPI: a comparison of
features, Applied Mathematical Sciences subprogram of the Office of Energy
Reaseach, US Department of Energy. May 30 1996.

You might also like