TRNG I HC KHOA HC T NHIÊN
KHOA CÔNG NGH THÔNG TIN
B MÔN CÔNG NGH PHN MM HUNH BÁ THANH TÙNG - 0112079
TRN VIT CNG - 0112339 NGHIÊN CU TÍNH TOÁN LI VÀ
TH NGHIM MT S THUT TOÁN
LÝ THUYT TH
KHÓA LUN C NHÂN TIN HC
GIÁO VIÊN HNG DN
TS. TRN AN TH
Th.S NGUYN THANH SN
NHN XÉT CA GIÁO VIÊN PHN BIN
Chúng em xin bày t lòng bit n chân thành nht đn thy Trn an
Th và thy Nguyn Thanh Sn, hai thy đã tn tâm hng dn, giúp đ chúng
em trong sut thi gian thc hin lun vn này.
Chúng con xin gi tt c lòng bit n sâu sc và s kính trng đn ông
bà, cha m, cùng toàn th gia đình, nhng ngi đã nuôi dy chúng con trng
thành đn ngày hôm nay.
Chúng em cng xin chân thành cám n quý Thy cô trong Khoa Công
ngh thông tin, trng i hc Khoa hc T nhiên Tp.H Chí Minh đã tn tình
ging dy, hng dn, giúp đ và to điu kin cho chúng em thc hin tt
lun vn này.
Xin chân thành cám n s giúp đ, đng viên và ch bo rt nhit tình
ca các anh ch và tt c các bn, nhng ngi đã giúp chúng tôi có đ ngh lc
và ý chí đ hoàn thành lun vn này.
Mc dù đã c gng ht sc, song chc chn lun vn không khi nhng
thiu sót. Chúng em rt mong nhn đc s thông cm và ch bo tn tình ca
quý Thy Cô và các bn.
TP.HCM, 7/2005
Nhóm sinh viên thc hin
Hunh Bá Thanh Tùng - Trn Vit Cng
quyt các vn đ khó khn trong khoa hc và công ngh. Ngày nay nó đang
càng đc s h tr mnh hn ca các thit b phn cng, bng thông…
Grid Computing có kh nng chia s, chn la, và thu gom mt s lng
ln nhng tài nguyên khác nhau bao gm nhng siêu máy tính, các h thng
lu tr, cùng vi nhng ngun d liu, các thit b đt bit… Nhng tài nguyên
này đc phân b các vùng đa lý khác nhau và thuc v các t chc khác
nhau.
Nhn thy đc nhu cu phát trin y, nhóm chúng em đã quyt đnh
chn thc hin đ tài “Nghiên cu tính toán li và thc nghim trên mt
s thut toán lý thuyt đ th”
Mc tiêu ca đ tài đ ra là tìm hiu v tính toán li, và qua đó tn
dng các kin thc có đc đ có th cài đt mt s thut toán lý thuyt đ th,
nhm có th gii quyt các vn đ tìm đng đi khi s đnh tng đi ln…
Các ni dung chính:
• Nghiên cu tính toán li
Chng 1. Gii thiu 13
1.1. Các khái nim 13
1.2. Nhng thách thc đi vi tính toán li 16
Chng 2. Tính toán song song và phân b 17
2.1. Khái nim 17
2.2. Nn tng tính toán song song và phân b 18
2.2.1. Kin trúc x lý song song và phân b 18
2.2.2. T chc vt lý ca các nn tng song song và phân b 25
2.3. Mt s mô hình lp trình song song thông dng 26
2.3.1. Mô hình chia s không gian b nh 26
2.3.2. Mô hình truyn thông đip 27
2.4. Cách thc xây dng mt chng trình song song và phân b 29
2.4.1. Các thut ng cn bn 29
2.4.2. Thit k thut toán song song 31
2.4.3. Mt s phng pháp ti u 43
2.4.4. Các mô hình thut toán song song 48
Chng 3. Các môi trng h tr tính toán li 52
3.1. Gii thiu 52
3.2. Các vn đ khi lp trình lui 53
3.2.1. Tính mang chuyn, tính kh thi và kh nng thích ng 53
3.2.2. Kh nng phát hin tài nguyên 54
3.2.3. Hiu nng 54
3.2.4. Dung li 55
3.2.5. Bo mt 55
3.2.6. Các siêu mô hình 55
3.3. Tng quát v các môi trng h tr 56
3.3.1. Mt s môi trng Grid 56
3.3.2. Nhng mô hình lp trình và công c h tr 59
3.3.3. Môi trng cài đt 64
4.4.2. Di di d liu trong nhóm 101
4.4.3. Tính toán gp 105
4.5. Các kiu d liu 109
4.5.1. Nhng kiu d liu đã đc đnh ngha 109
4.5.2. Các kiu d liu b sung 110
4.5.3. Pack và UnPack 113
Chng 5. Th nghim các thut toán lý thuyt đ th 114
5.1. Các khái nim c bn 114
5.2. Dijkstra 115
5.2.1. Tun t 115
5.2.2. Song song 119
5.2.3. Thc nghim chng trình 120
5.3. Prim 122
5.3.1. Tun t 122
5.3.2. Song song 124
5.3.3. Thc nghim chng trình 126
5.4. Bellman – Ford 128
5.4.1. Tun t 128
5.4.2. Song song 130
5.4.3. Thc nghim chng trình 132
5.5. ánh giá chung 134
Hình 4-7 : Th t các x lý 95
Hình 4-8 : Cách thc x lý tin trình 95
Hình 4-9 : Giao tip non-blocking 96
Hình 4-10 : Broadcast d liu 102
Hình 4-11 : Ví d hàm Scatter 103
Hình 4-12 : Hàm MPI_Gather 103
Hình 4-13 : Hàm MPI_Allgather 104
Hình 4-14 : Hàm MPI_Alltoall 104
Hình 4-15 : Hàm MPI_Reduce 105
Hình 4-16 : S dng 8 x lý đ tính giá tr tuyt đi 107
Hình 4-17 Hàm Mpi-Allreduce 108
Hình 4-18 : Hàm MPI_Reduce_scatter 108
Hình 4-19 : Hàm MPI_Scan 109
Hình 4-20 : MPI_Type_contiguous 110
Trang 12
Hình 4-21 : MPI_Type_vetor 111
Hình 4-22 : MPI_Type_indexed 112
Hình 4-23 : MPI_Type_struct 112
Hình 5-1. Thut toán Dijkstra tun t 118
Hình 5-2 : Thut toán Dijkstra song song 119
rt cao. Ví d nh là PVPs (Parallel Vector Processors), chúng hu nh rt
thích hp cho tính toán hiu nng cao, nh là các ng dng song song da vào
trao đi thông đip tc đ cao gia các tin trình song song.
Trang 14
Trong khi đó Cluster li là các máy tính đn hay đa b x lý đc kt
hp tng đi vi nhau thông qua đng mng, vì th nó chm hn t 1 đn 2
ln so vi kt ni MP. Ví d nh cluster Beowulf chy Linux, hay TCF
(Technical Compute Farm) ca Sun chy h điu hành Solaris/TM, chúng đc
s dng cho các tính toán s lng ln, phân phi các tác v tính toán (thng
là không song song) cho các b x lý, ri thu thp li các kt qu tính toán vào
kt qu toàn cc. Các tính toán này có th là vic hin th hàng ngàn khung
hình đ làm phim hay là gi lp vic kim tra và thit k đ xây dng th h
tip theo ca chip VLSI, hay nh trong công ngh sinh hc, đó là vic ct lp
hàng trm ngàn chui gen.
Trong khi MPs và Cluster ch là các h thng đn, thng là trong mt
domain đn. Grid đin toán bao gm các cluster ca mng các MPs hay/và
cluster, nm trên nhiu domain khác nhau, phân b nhiu phòng ban, xí
nghip hay thm chí là trên mng Internet. V bn cht, nhng grid có mt đ
phc tp cao hn, đc bit là tng trung gian, trong vic thc thi, qun lý, và
s dng các tài nguyên tính toán phân tán, và tng ng dng là vic thit k,
phát trin, chy các phn mm đ trin khai grid mt cách hiu qu.
Ngày nay chúng ta đang thy nhng n lc đu tiên nhm khai thác mt
cách có h thng các ngun tài nguyên tính toán li trên mng Internet.
Nhng d án này đc gi là peer-to-peer computing, nh SETI@home,
Distributed.Net và Folderol, cho phép ngi dùng Internet ti v các d liu
khoa hc, chy trên các máy cá nhân theo chu trình x lý chia s, và gi li kt
qu cho c s d liu trung tâm. Gn đây có mt d án mt trng đi hc,
đc gi là Compute Power Market, đc xây dng nên nhm phát trin các k
thut phn mm cho phép to lp nhng Grid, mà đó bt c ai cng có th
mua hay bán kh nng kh nng tính toán ging nh cách mà ngi ta s dng
đin hin nay.
Trang 16
1.2. Nhng thách thc đi vi tính toán li
Hu ht các k thut phc tp bên di dành cho Grid hin nay đang
đc tip tc phát trin. Các môi trng Grid mu tn ti ging nh các d án
Globus và Legion. án EcoGrid thì đang nghiên cu cách thc qun lý tài
nguyên, và các khi xây dng nh vy đang tn ti trong trình qun lý tài
nguyên mang tính thng mi ca phn mm Sun Grid Engine.
Din đàn Grid (GGF – Global Grid Forum), đc thành lp vào nm
1998, đã tp hp đc hàng trm các nhà khoa hc đ cùng nhau nghiên cu và
tho lun v mt kin trúc Grid chung. Trong đó vn còn tn ti mt s thách
thc sau:
Trang 17
Chng 2. Tính toán song song và phân b
2.1. Khái nim
Ngày nay trong khi công ngh ngày mt phát trin thì nhu cu v tc đ
tính toán ca các h thng máy tính cng ngày mt tng cao. Các lnh vc đòi
hi tính tóan hiu nng cao nh là mô hình s và gi lp các vn đ ca khoa
hc và công ngh.
Ngoài ra nó còn nhm gii quyt các lai vn đ cn tc đ x lý cao
nh:
• Mô hình hóa và gi lp
Mô hình các mu DNA
Mô hình hóa chuyn đng ca các phi hành gia
…
• X lý/Thao tác trên các d liu rt ln
X lý nh và tín hiu
Khai thác d liu và c s d liu
Xác đnh đa chn
…
• Các vn đ “grand challenge” (là nhng vn đ không th gii quyt
trong thi gian “hp lý”, nh cn 100, 1000,…nm đ có đáp án)
Mô hình khí hu
S chuyn đng ca cht lng
B gene con ngi
Mô hình cht bán dn
…
Xut phát t nhu cu đó đã dn đn s cn thit phi có nhng h thng
song song và phân b nhm tn dng ti đa kh nng thc thi ca các b x lý,
và đ gii quyt các vn đ nan gii trên.
• SIMD (
Single Instruction stream, Multiple Data streams)
• MISD (
Multiple Instruction streams, a Single Data stream)
• MIMD (
Multiple Instruction streams, Multiple Data streams)
Phân theo mc đ hay đc s dng:
MIMD > SIMD > MISD
Trang 19
Instruction Stream(s)
SISD
(Uniprocessors)
SIMD
(Array Processors)
MISD
GMSV GMMP
DMSV
Data Stream(s)
Trang 20
t. Theo quan đim ca ngi dùng thì các ng dng s dng kin trúc SIMD
thì d dàng đc lp trình hn và tn dng hiu qu hn các thit b phn cng.
Hình 2-3 : Kin trúc SIMD
Bên trong SIMD, tn ti hai la chn thit k c bn sau:
1. SIMD đng b và bt đng b. Trong mt máy SIMD, tng b x
lý có th thc thi hay b qua các ch th đc qung bá da vào trng
thái cc b ca nó hay nhng điu kin ph thuc vào d liu. Tuy
nhiên điu này có th dn đn x lý mt vài tính toán điu kin
không hiu qu. Mt cách gii quyt kh thi là s dng phiên bn bt
đng b ca S1IMD, đc bit đn là SPMD (Single Program
Multiple Data), trong đó tng b x lý s chy mt bn sao ca
Trang 21
chng trình chung. im thun li ca SPMD là trong lúc tính toán
biu thc điu kin “if-then-else”, tng b x lý s ch thc hin
nhánh thích hp mà không mt thi gian cho các chi phí tính toán
khác.
Hình 2-4 : Kin trúc MISD
Trong hình trên là ví d v mt b x lý song song vi kin trúc MISD.
Mt dòng d liu đn đi vào mt máy tính gm 5 b x lý. Nhiu phép bin
đi đc thc hin trên tng đn v d liu trc khi nó đc chuyn sang mt
(hay nhiu) b x lý khác. Các đn v d liu k tip có th đi qua các phép
bin đi khác do điu kin đc lp d liu ca các dòng ch th hay do các th
điu khin đc bit đc truyn cùng vi d liu. Chính vì vy mà cách t chc
theo kin trúc MISD có th đc xem nh là mt h thng ng lnh cp đ cao
và phc tp vi nhiu đng dn và trong đó tng giai đan có th đc lp
trình riêng bit.
2.2.1.4. MIMD
c tiên đoán bi các doanh nghip vào thp niên 90, mô hình MIMD
gn đây đã tr nên khá ph bin. Lý do cho s thay đi này là vì tính uyn
chuyn cao ca kin trúc MIMD và bi kh nng tn dng đc nhng u
đim ca các b vi x lý đc sn xut hàng lat (commodity
microprocessors), vì th tránh đc nhng vòng phát trin dài dòng và qua đó
có th đc phát trin cùng vi s ci thin ca các b x lý. Các máy tính
MIMD đc áp dng rt hiu qu cho các ng dng song song mà vn đ ca
nó đc phân rã t trung bình cho đn tt (medium- to coarse-grain parallel
applications).u đim ca các máy tính MIMD bao gm kh nng uyn
Trang 23
vic tính toán hiu nng cao, bng cách s dng đa b x lý đc
thit k đc bit trên nhiu máy tính hay là tp hp ca nhng máy
trm bình thng đc kt ni vi nhau bi các h thng mng “tin
nghi” (nh là Ethernet hay ATM) và nhng tng tác nào s đc
kt ni vi nhau bng h thng phn mm đc bit và các h thng
tp tin phân tán? Cách tip cn th hai đôi khi đc bit đn là mng
ca các máy trm (network of workstations hay là NOW) hay là tính
toán cluster, đã đc s dng rng rãi trong nhng nm gn đây. Tuy
nhiên vn còn nhiu vn đ m còn tn ti nhm phát huy ti đa kh
nng ca nhng kin trúc có nn tng là mng. Thit b phn cng,
h thng phn mm, và nhng khía cnh ng dng ca NOW đang
đc đu t tìm hiu bi mt s lng ln các nhóm ngiên cu. Mt
cách tip cn trung gian là kt hp các cluster nhng b x lý thông
qua môi trng mng. iu này v c bn là mt phng pháp phân
nhánh, đc bit thích hp khi có mt s truy cp rt ln đn d liu
cc b.
3. Truyn thông đip tng minh hay chia s b nh o. Lai nào
s tt hn, cho phép ngi dùng ch ra tt c các loi thông đip s
đc truyn gia các b x lý hay là cho phép h lp trình mt cp
đ tru tng cao hn, cùng vi các thông đip cn thit t đng
đc phát sinh bi h thng phn mm? Câu hi này v c bn là
tng t vi câu đc hi trong nhng ngày đu ca nhng ngôn
ERCW. Cho phép nhiu thao tác ghi cùng lúc trên cùng mt vùng
nh, tuy nhiên nhiu thao tác đc ch thc hin theo tun t.