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
NI ÊN KHÓA 2001-2005
NHN XÉT CA GIÁO VIÊN HNG DN
NHN XÉT CA GIÁO VIÊN PHN BIN
LI CM N
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
LI NÓI U
Nhân lai ngày nay đang chng kin s phát trin mnh m ca ngành
Công ngh Thông tin, mt trong nhng ngành mi nhn ca nhiu quc gia
trên th gii. S phát trin vt bc ca nó là kt qu tt yu ca s phát trin
kèm theo các thit b phn cng cng nh phn mm tin ích.
S phát trin đó đã kéo theo rt nhiu các ngành khác phát trin theo,
trong đó có lnh vc nghiên cu khoa hc. Tuy công ngh ngày càng phát trin,
tc đ x lý ca các thit b cng không ngng tng cao, nhng nhu cu tính
toán ca con ngi vn còn rt ln. Cho đn hin nay vn còn rt nhiu vn đ
mà các nhà khoa hc cùng vi kh nng tính toán ca các máy tính hin nay
vn cha gii quyt đc hay gii quyt đc nhng vi thi gian rt ln.
Các vn đ đó có th là :
• Mô hình hóa và gi lp
• X lý thao tác trên các d liu rt ln
• Các vn đ “grand challenge” (là các vn đ không th gii quyt
trong thi gian hp lý)
Li gii cho nhng vn đ này đã dn đn s ra đi ca các th h siêu
máy tính. Tuy nhiên vic đu t phát trin cho các thit b này gn nh là điu
quá khó kh
n đi vi nhiu ngi, t chc, trng hc…. Chính vì l đó mà
ngày nay ngi ta đang tp trung nghiên cu cách cách s dng các tài nguyên
phân b mt cách hp lý đ tn dng đc kh nng tính toán ca các máy tính
đn. Nhng gii pháp này đc bit đn vi nhiu tên gi khác nhau nh meta-
computing, salable-computing, global- computing, internet computing và gn
nht hin nay là peer to peer computing hay Grid computing.
ây là phng pháp nhm tn dng kh nng ca các máy tính trên toàn
mng thành mt máy tính “o” duy nht, nhm hp nht tài nguyên tính toán
nhiu ni trên th gii đ to ra mt kh nng tính toán khng l, góp phn gii
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
• Tìm hiu các môi trng h tr
• Tìm hiu lp trinh song song và phân tán
• Cài đt mt s thut toán vi kin thc có đc
Ni dung ca lun vn đc chia làm 6 chng :
Chng 1. Gii thiu : Gii thiu tng quan v tính toán li, khái
nim lch s phát trin.
Chng 2. Tính toán song song và phân b : Trình bày v các kin
trúc, mô hình x lý song song và phân b, cách thc xây dng chng trình,
thit k thut toán…
Chng 3. Các môi trng h tr tính toán li : Tìm hiu v các
môi trng đang đc s dng và nghiên cu hin nay trên th gii.
Chng 4. Mô hình lp trình truyn thông đip - MPI : Mô hình c
th đc dùng đ phát trin ng dng MPI.
Chng 5. Th nghim các thut toán lý thuyt đ th : Cách thc
xây dng chng trình , các khái nim lý thuyt, thc nghim thc t …
Chng 6. Tng kt : Nêu các kt qu đã đt đc, mt s vn đ còn
tn ti, đnh hng mc tiêu m rng phát trin đ tài trong tng lai.
Mc lc
Danh sách hình 11
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
3.4. Nhng k thut nâng cao h tr lp trình 75
3.4.1. Các k thut truyn thng 76
3.4.2. Các k thut hng d liu 76
3.4.3. Các k thut suy đoán và ti u 77
3.4.4. Các k thut phân tán 77
3.4.5. Nhp xut hng Grid 78
3.4.6. Các dch v giao tip cp cao 78
3.4.7. Bo mt 80
3.4.8. Dung li 80
3.4.9. Các siêu mô hình và h thng thi gian thc hng Grid 82
3.5. Tóm tt 83
Chng 4. Mô hình lp trình truyn thông đip - MPI 85
4.1. Các khái nim c bn 86
4.2. Cu trúc chng trình MPI 89
4.3. Trao đi thông tin đim-đim 90
4.3.1. Các thông tin ca thông đip 90
4.3.2. Các hình thc truyn thông 91
4.3.3. Giao tip blocking 92
4.3.4. Giao tip non-blocking 96
4.4. Trao đi thông tin tp hp 101
4.4.1. ng b hóa 101
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
Chng 6. Tng kt 136
6.1. Kt lun 136
6.2. Hng phát trin 136
Tài liu tham kho 138
Danh sách hình
Hình 1-1 : 3 tng ca Grid 15
Hình 2-1 : Phân lai h thng máy tính theo Flynn-Johnson 19
Hình 2-2 : Kin trúc SISD 19
Hình 2-3 : Kin trúc SIMD 20
Hình 2-4 : Kin trúc MISD 22
Hình 2-5 : Kin trúc MIMD 23
Hình 2-6 : Mô hình chía s không gian b nh 27
Hình 2-7 : Mô hình truyn thông đip 28
Hình 3-1 : Mô hình NetSolve 56
Hình 3-2 : Các thành phn ca Globus 59
Hình 4-1 : Các tin trình to lp trên mô hình lp trình MPI 86
Hình 4-2 : Cách thc truyn thông ca các process 87
Hình 4-3 : Blocking và non-blocking 88
Hình 4-4 : Group, communicator và rank 88
Hình 4-5 : Cu trúc ca chng trình MPI 89
Hình 4-6 : Giao tip blocking 92
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
Hình 5-3. Thut toán Prim tun t 124
Hình 5-3 : Thut toán Prim song song 125
Hình 5-4: Thut toán Bellman-Ford tun t 130
Hình 5-5 : Thut toán Bellman-Ford song song 132
Trang 13
Chng 1. Gii thiu
1.1. Các khái nim
Trong nhng nm đu thp niên 90, nhiu nhóm nghiên cu đã bt đu
khai thác các ngun tài nguyên tính toán phân tán trên Internet. Các nhà khoa
hc đã tp trung và s dng hàng trm các máy trm đ thc hin các chng
trình song song nh thit k phân t và hin th đ ha máy tính. Trong khi đó
các nhóm nghiên cu khác đã kt hp các siêu máy tính ln li vi nhau thành
mt siêu máy tính o duy nht, ri phân phi các phn ca mt ng dng rt
ln cho các máy tính trên mt mng din rng, ví d nh máy tính gi lp các
ng dng tng tác gia cht lng và cánh qut ca chân vt tàu…Thêm vào đó
phm vi ca các d án nghiên cu này đã nêu ra tim nng thc s ca mng
máy tính, cùng vi c s phn mm và tin hc đ phát trin nó xa hn.
H thng đa b x lý (Multiprocessor Systems - MPs), Cluster, Grids là
các ví d ca kin trúc tính toán phân tán. Trong MPs, các b x lý đc kt
hp cht ch vi nhau, thông qua b nh chia s chung và đng truyn kt ni
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.
Tóm li Grid là mt kin trúc tính toán phân tán cho phép chuyn giao
các tài nguyên lu tr và tính toán nh th là mt dch v trên Internet. ây là
bc phát trin tip theo v c s h tng k thut, cho phép kt ni các máy
tính phân tán, các thit b lu tr, các thit b di đng, các công c, c s d
liu, và các ng dng phn mm, và cung cp cách thc truy cp duy nht đn
cng đng ngi dùng đ cho phép tính toán, trao đi thông tin và cng tác.
Mt s h thng grid hin ti nh là NASA Information Power Grid (IPG);
DoD Distance Computing và NetSolve cho chia s và khai thác phn mm toán
hc; Nimrod cho chia s tài nguyên trên phm vi trng hc; SETI@Home cho
tìm kim trí thông minh ngòai trái đt; hay là APGrid đ kt ni các trung tâm
máy tính vành đai Châu Á Thái Bình Dng trong tng lai gn.
Trang 15
Hình 1-1 : 3 tng ca Grid
Grid là mt c s h tng v phn cng ln phn mm cung cp truy cp
ph thuc, thích hp, rng khp và chi phí thp vào các kh nng tính toán.
Trong mt tng lai không xa, nhng grid này s đc các k s, nhà khoa
hc, khoa hc thc nghim, công ty, t chc, môi trng, giáo dc và đào to,
khách hàng, … s dng rng rãi. Chúng s đc dành riêng cho tính toán theo
yêu cu, tính toán trên thông tin nhy cm, tính toán cng tác, và siêu tính toán,
da trên c s ca khách hàng/nhà cung cp.
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:
• Phát trin phn mm ng dng cho Grid
• Ch ra và truy cp các ngun tài nguyên tính toán thích hp trên môi
trng phân tán
• nh ngha nhng giao tip chun cho phép giao tip gia các khi
Grid vi nhau, nhm đáp ng nhu cu phát trin ng dng.
• Bo
đm các truy cp đc xác nhn và truyn d liu an toàn.
• Cung cp các dch v cho phép theo dõi, qung cáo và kt xut báo
cáo.
• Thit k các nghi thc mng cho vic trao đi và đnh dng thông
đip.
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.
Trang 18
2.2. Nn tng tính toán song song và phân b
Trong phn này chúng ta s xem xét cách t chc logic và vt lý ca các
nn tng song song và phân tán. Cách t chc logic liên quan đn quan đim
ca ngi lp trình (kin trúc x lý song song và phân b) trong khi cách t
chc vt lý liên quan đn cách c cu thc s ca các phn cng bên di.
Trong tính toán song song thì t quan đim ca ngi lp trình gm 2 thành
phn chính quan trng đó là cách thc th hin các tác v song song (cu trúc
điu khin) và nhng phng pháp xác đnh tng tác gia các tác v này (mô
hình giao tip).
2.2.1. Kin trúc x lý song song và phân b
Máy tính song song có th đc chia theo 2 lai chính là : dòng điu
khin (control flow) và dòng d liu (data flow). Máy tính song song dòng điu
khin da ch yu theo các nguyên tc ca máy tính Von Neumann, ngai tr
nhiu dòng điu khin có th thc hin vào bt c thi gian nào. Máy tính song
song dòng d liu , đôi khi đc bit đn là “phi Von Neumann”, thì hoàn toàn
khác bit ch nó không có con tr tr ti các ch th hin hành hay trung tâm
điu khin. đây chúng ta ch tp trung vào các máy tính song song dòng điu
khin.
Nm 1966, M.J.Flynn đã phân chia các h thng máy tính da trên dòng
ch th và dòng điu khin thành 4 loi sau:
• SISD (
Single Instruction stream, a Single Data stream)
• 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)
Single Multiple
Multiple Single
Shared Variables Message Passing
GlobalDistributed
Memory
Communication
DMMP
MIMD
Hình 2-1 : Phân lai h thng máy tính theo Flynn-Johnson
2.2.1.1. SISD
Hình 2-2 : Kin trúc SISD
Kin trúc này tng t vi kin trúc Von Neumann. Mt đn v điu
khin tip nhn mt ch th đn t b nh, sau đó đa vào cho b x lý thc thi
trên mt đn v d liu đc ch ra trong ch th nhn đc, và cui cùng là đa
kt qu nhn đc vào b nh.
2.2.1.2. SIMD
Hu ht các máy tính song song ban đu đu đc thit k theo kin trúc
SIMD. Trong kin trúc này, mt đn v x lý trung tâm s thông dch và qung
bá các tín hiu điu khin thích hp cho các b x lý theo chiu kim đng h.
Tng b x lý s thc thi các ch th mt cách đng thi, và chúng cng có
quyn không tip nhn trên các ch th nào đó. S ph bin ca kin trúc SIMD
là do tính nng ca các ng dng song song ban đu và t yêu cu ca nn kinh
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.
2. Chip SIMD tùy chn hay thng nht (commodity). Mt máy
SIMD có th đc thit k da trên nhng thành phn thng nht
hay là t nhng con chip tùy chn. Trong cách tip cn th nht thì
các thành phn có xu hng r hn do sn xut hàng lot. Tuy nhiên
nhng thành phn mang mc đích chung nh vy có th cha các
yu t không cn thit cho mt thit k c th nào đó. Nhng thành
phn thêm vào có th làm phc tp vic thit k, sn xut và kim
th các máy SIMD và cng có th đem li khim khuyt v tc đ
x lý. Còn các thành phn tùy chn thì nhìn chung h tr tt hn cho
thc thi tuy nhiên nó cng dn đn chi phí cao hn cho vic phát
trin. Khi vic tích hp nhiu b x lý cùng vi b nh d dt trên
mt con chip VLSI đn tr nên kh thi, thì vic kt hp u đim ca
2 cách tip cn trên là hoàn toàn có th.
2.2.1.3. MISD
Mô hình này hu nh không thy nhiu trong các ng dng. Mt trong
nhng lý do là bi vì hu ht các ng dng không th áp dng mt cách d
dàng vào kin trúc MISD, điu này dn đn vic thit k ra mt kin trúc đ
tha mãn cho mt mc đích chung là điu không th. Tuy nhiên có th áp dng
các b x lý song song kiu MISD vào trong mt ng dng c th nào đó.
Trang 22
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
chuyn cao trong vic khai thác nhiu dng thc song song khác nhau, d phân
chia nh hn cho các b x lý đc lp trong môi trng đa ngi dùng (tính
cht này là ng ý quan trng cho tính dung li), ít khó khn trong vic m rng
(scalability). Nhng bên cnh đó kin trúc này cng có khuyt đim là s quá
ti do giao tip gia các b x lý và vic lp trình gp nhiu khó khn.
Hình 2-5 : Kin trúc MIMD
Bên trong kin trúc MIMD, tn ti 3 loi vn đ c bn hay còn đc
gi là cách la chn thit k hin vn là ch đ đang đc tranh cãi trong cng
đng các nhà nghiên cu.
1. MPP – massively or moderately parallel processor. Vic xây
dng mt b x lý song song t mt s lng nh các b x lý
Trang 24
mnh m hay t mt s lng rt ln các b x lý bình thng (mt
“by voi” hay là mt “đàn kin”) thì cách nào s hiu qu hn ?.
Theo lut ca Amdahl thì cách đu tiên thích hp hn cho nhng
phn tun t ca mt tính toán, trong khi cách tip cn th hai s làm
tng tc hn na nhng phn mang tính song song. Không th đa ra
mt câu tr li chung cho câu hi này, s la chn tt nht tùy thuc
vào loi công ngh và ng dng đang đc s dng.
2. MIMD “cht ch” hay “lng lo”. Cách tip cn nào tt hn cho
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
Trang 25
ng lp trình cp cao và b nh o. Ti mt vài thi đim trong quá
kh, vic lp trình bng hp ng và thc hin trao đi gia b nh
chính và b nh ph có th đem li hiu qu cao hn. Tuy nhiên, do
ngày nay các phm mm đã đt đn mc quá phc tp, các trình biên
dch cùng vi h điu hành cng đã quá cp cao đn ni vic ti u
các chng trình bng tay không còn là điu gì quá khó. Tuy nhiên
chúng ta vn cha thi đim x lý song song đáng k, và vic che
giu cu trúc giao tip tng minh gia các máy tính song song ra
khi ngi lp trình s đem li hiu nng thc thi rt đáng k.
2.2.2. T chc vt lý ca các nn tng song song và phân b
Trong phn này chúng ta s ch mô t mt máy tính song song lý tng
là PRAM. ây là mt cách m rng t nhiên ca mô hình tính toán tun t
(Random Access Machine hay là RAM) bao gm p b x lý và mt vùng nh
toàn cc có kích thc không gii hn và đc truy cp t tt cá các b x lý.
Tt c chúng đu có s dng cùng chung mt không gian đa ch. Các b x lý
có th cùng chia s mt đng h chung nhng cng có th thc thi các ch th
khác nhau trên cùng mt chu k. Mô hình này đc bit đn là parallel random
access machine (PRAM). Tùy thuc vào cách thc truy cp b nh, PRAM
đc phân thành 4 loi sau.
1. Toàn quyn đc - Toàn quyn ghi (exclusive-read, exclusive write)
EREW. Trong loi này, truy cp vào vùng nh là toàn quyn. Không
có thao tác đc ghi nào đc cho phép. ây là mô hình PRAM
không chc chn nht, ch h tr truy cp đng thi vào b nh mt
cách ti thiu.
2. ng thi đc – Toàn quyn ghi (concurrent read, exclusive write)
CREW. Cho phép nhiu thao tác đc cùng lúc trên cùng mt vùng
nh, tuy nhiên nhiu thao tác ghi ch thc hin theo tun t.
3. Toàn quyn đc – ng thi ghi (exclusive read, concurrent write)
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.