Professional Documents
Culture Documents
Dang Nhu Toan
Dang Nhu Toan
Dang Nhu Toan
TRNG I HC LC HNG
***
ng Nh Ton
ng Nai - nm 2011
B GIO DC V O TO
TRNG I HC LC HNG
***
ng Nh Ton
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
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
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.
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).
10
11
F f(xi)
i 1
f ( xi) 4
i 1
12
13
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
16
17
18
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
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.
23
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
26
27
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
30
31
32
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)
34
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)
36
37
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
38
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
40
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
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
43
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.