Chương I
!!"#
!$%&'()*+
!,-./-0122!3
!34()*-01$!
Chương II((5-226#-%%$
$!,-'((5-22$
$$,-071((5-22$
Kết luận!
2
,87980:;<=)89)>)?@9
/892AB@9C79)6DEFG189:;=H79#)89
>I):#HJK
HC-6#1:#=H#:=LC-(BFGM
CEB)1&'B8.K-A#NFGM22
O:#.-)PD0(6:;7<6<=
)O)>6L(
0650B6((-5-22O-Q.)D
E@R:((.1-&CSHE0(AB
2'DTEJK:=02-'OT
U11=V?E0P58?Phương pháp
nghiên cứu khoa học trong tin họcW6(:;$.
,:X!6EFGM22
,:X$((5-22)7-07
I2-'?
,-.:X. =)CP50:;)*)YH
(<:;)0E')7#.Z6#-85.)7
[V)V\&0BVFG-X&(0"4]
]4(>5^='0CH(<MC-PVP
E0
%],B0!-3@$_!
3
R5F`/67
4
a!bW8?c%:X. 52-'?d
"4]]e@4(
a$b%:X. 52-'?fg5
"%hU
ab[)=%)V,.BV=i=
j ")Bj2 ".B"V)V 4)0.2Be. 4)
a3bk.llmmm2V=lnCml.)Vl.)o.)l)V2)V2
abk.ll)=C6ln=CV0l2$ +
a bk.llm.V=)
5
CHƯƠNG I
TNG QUAN V X LÍ SONG SONG
1.1 Gi$i thiê&u Xử lí song song
pD.-Y070(HC-C-A
:;=H#:FG18HL7BFG1(BFG1C
EB=LC-(B)1&'BN)H-01FG1
LPeRV08 <:;07
,16^6506DEQ).-:;@FG122
/-A-01'
Xử lí song song là cách xử lí thông tin bằng việc sử dụng nhiều hơn một bộ
xử lí để thực hiện nhiều hơn một thao tác trên dữ liệu tại một thời điểm.
pG122::;<=.FG1H6DE
A89FGM:28^65.:8^-
qhRjB8^0PO/-.NBFGM6
-)7-=H)D#:FGM61B-=H
6 X 2r =H B - s s DN@9 - 6D E c)=
VVdtH6DE8P0()c;.MdB
:!__B!___BN@P -u:8^15B2L0P
O/DKBCOVV:B8^DC-=q
4-6#FG1LB)1-22O2ACOFG1(
;.6#P0(ZO6DE7:;FG1
6^vPPE.`.-:;Lwe#
AOFG1XBFG1220(:;EC-#
6.<'.
6
1.2 Phân loại kiến trúc máy tính song song
-0122P:;V$?1=JE
Pt)xmu6=J=Ht=xmu-0122=J
EP=L/0(V-07I/-01eRVB
?)YE=JEPPL6CD<
-0122=J=HB8:;C((c.e
RVdB^-Crv8)K)K#-
ys0)&EPz&0*y5.)
6--0122=JEP
R@!{ B|}0>.&-A-01=L)7
=Jys6=JEP3'2
[htV Instruction2)VB Single Data2)Vu
[htV Instruction2)VB Multiple Data2)V2u
[ht.V Instruction2)V2B Single Data2)Vu
[ht.V Instruction2)V2B Multiple Data2)V2u
%&V<892G=MIMD > SIMD > MISD
7
1.2.1 Kiến trúc SISD (đơn dòng lệnh, đơn luồng dữ liệu)
-01'[hyO,%~B6rvPyL
O6y?BO=H8^[h18^
-01PeRV
]^!!8^/()*[h
1.2.2 Kiến trúc SIMD (đơn dòng lệnh, đa luồng dữ liệu)
RH-01[hOX6sEPPEPE
X6sFG1LO=J-&TX6sEP.-2
1EP#D-COFG1L7ZO.`.-)7
-=H-
]^!$8^/()*[h
W7)[hBw'L?((XC2
• SIMD đồng bộ và bất đồng bộ.
8
Đơn vị điều
khiển
Bộ xử lí
số học
Bộ nhớ
Luồng
kết quả
Dòng
lệnh
Luồng
dữ liệu
Đơn vị điều khiển
Phần tử
xử lí 1
Phần tử
xử lí 2
Phần tử
xử lí n
Tín hiệu
điều khiển
)O-0[hBYCOFGMPL0CK-ys
:;C-=L6)'-CO/0HE.
O6=H07E0P=q(FGMO61
-E8O-0(2G=
.7CCDwCO/![hB:;C((%htV Program
Multiple Data),)YCOFGM2•'0OC2/:X
)^TP5;/%h)*1-CP<
Ec€•V•V2VdBYCOFGM2•yLr-1;.
8D-.11--
• Chip SIMD tùy chọn hay thống nhất (commodity)
O-0[hP:;((=L)7H.A
D0YH.Z0?)-(.5<D^
-.F:#)‚X=2FD'07
H.1:650P<-0(A
8(O((PRH.7
6P.<'.6((B2FD6PG--0[h
6UPV'(0(6EAOFGM,J-.
Z0?^^v);AXL07U=q
(.1X6.-)P461;.ECOFGM
Z6#CO#=:=5)7O.e[X)r7B^
6(;.:P/-(.5)7P
1.2.5 Kiến trúc MISD (đa dòng lệnh, đơn luồng dữ liệu)
-01'[hPLE:X)^)7ZO
=H4()*P0:2
• #.--0107-X6sFG1-P5
H-6L)7ZO=H
9
• #.--01-w=H:;0PL
O=>0-COFG17(.
]^!8^/()*[h
8^0:8D0E)-<=O
)HM=Cr6^(-<=8( =O
-=ƒ=6()*[hBE0=q(6(()O
()*PK>O1E8P0
7P =-COFGM22P[h6)O<
=P
10
Đơn vị điều khiển1
Đơn vị điều khiển 2
Đơn vị điều khiển n
Phần tử xử lí 1
Phần tử xử lí 2
Phần tử xử lí n
Dòng lệnh 1
Dòng lệnh 2
Dòng lệnh n
.
.
.
.
.
.
Luồng dữ
liệu
)^)761=6EOCOFGM226#()*[h
O=J=HX6O-01wCOFGMRE.`.
C(:;L)7YX6s=H):#:;0P
2Ot0EuCOFGM-,-X6s=H((.P
-.`.C(-=EO5.=H/-=Jy
s0=-‚EPQC:;)0EZ6#=H,1
6^650-<V()*[hP:;FV:O
AAD.O6.<'.6#E:=q6)
Y?P:;5.)^)7C
1.2.4 Kiến trúc MIMD (đa luồng lệnh, đa luồng dữ liệu)
-01[hJ:;?COFG1BvCOFG1PL
Hw)7)7-w=H)7/*T2A
-A[hCO#)76P)05.6CO#
7:;)H-COFG1
11
]^!$8^/()*[h
T:;7-Cr-=.65.7{_B8^
[h&0>)r7-.C(M=2L006^
10P0P/()*[h6Cr@5=:;
H:P/-CO6FGM:;2FD?t=0
).)V22)2uB6^()-:;H6J.-)P==J6
P:;.-)PZ6#2L/-COFGM,-
-01[h:; =)D-<=22
6DE/:;.&)>Y)C^(AtV=•
)2V•).)V 2u„P/--01[hC
w@0P0P)6-E='<2
2-B=ƒ.&KX-COFGMO5.)8
)::=Zt1D0M)?1=
vuB1@)6r)Ot2C0uR:C7'(
)*0U0(P2L-=(.H-COFGM
665.)^Q.E@
W7)()*[hBw''6DEXC0J:;
?-L?((6q/E:;)>)
Ow-7<
• MPP – Massively Or Moderately Parallel Processor
12
Đơn vị điều khiển1
Đơn vị điều khiển 2
Đơn vị điều khiển n
Phần tử xử lí 1
Phần tử xử lí 2
Phần tử xử lí n
Dòng lệnh 1
Dòng lệnh 2
Dòng lệnh n
.
.
.
.
.
.
Luồng dữ liệu 1
Luồng dữ liệu 2
Luồng dữ liệu 2
eF&0=LOCOFGM22YO2A:;K-COFGM
'•0YO2A:;)D#-COFGMC^:tOcC0
6d0Oc(du^-2•X…
V5/j=^-71;.XH.
L/O1-B)-(.5<2•@A
XHH.12248P:)O&)
&K0B2LL?ADZ0O6'8
6<=:;2G=
• MIMD “chặt chẽ” hay “lỏng lẻo”.
,-(.5AX 61-@BCS-
2G=COFGM:; ((QC)7E-0105.
;./H-0 )'C^::;(A6#Cr-
A'c dt:iV)V0ju6H:X-
2•:; (A6#CSA.EQC6-
A 5..&-…,-(.5<8:;C((
' /--0)'tVm) of workstations0 NOW)01
-2V)B>:;2G=)O)>)H@&00
76qJE6DErJw'S.-0A @
/H()*E'(Cs.<B A
.EB6H1'<=/R†‡ :;:
^PCrO2A:;#-7<O -(.5
)(;.-2V)HCOFGM8 8):
'TE06EXCO.:X. .& -BQC1
;.O2L)05.)D#(=H CO
• Truyền thông điệp tường minh hay chia sẻ bộ nhớ ảo.
?2•AXB.`.:=Zy)D-'8
.2•:;)0EH-COFGM0.`.?5.)^rO
D.O)Y:;XBZ6#-8.(LO:;
13
.-2CrA.E…,&K06EXC:XL6#
&:;K)H0/H8
H5.)^D.6CO#'O6P)-<B
65.)^CS;.H6L)HCO#16CO
#.PV'X07B=00-
.E>'(<-.<'.B-)^C7=sZ6#
EU>-D.(v6A:-:X)^CS
08JE^-07*6q:r
PFGM22-PB66VDD)*(.:
H--0122)K:5.)^2•V'
@L)D-P
1.3 Các thành phần chính của máy tính song song
1.3.2 Bộ nh$
WO#O)H.)?D/()*
-016::;.&D.:2
]^!%&D.ACO#
14
Bộ xử lí
Bộ nhớ mức 1
Bộ nhớ mức 2
Bộ nhớ mức n
WO#<!CO#<D:IQ6#COFG1
CO#CO4<CO#@=^=:;@=
J-6AO=
8^CO#A6#-01)05.q722:;
C(=:#7?%ˆjt%)Vˆ=jV22VuCwCO
#ˆj6#8#/#P2‚%COFG1WO#
=ZP:)H=H6X(.H-COFG1B
.`.-COFG1)05.=H6'OO-=sCO,O2A
-P-COFG1P?O2A=H
• T?w,ˆt,))VˆV=uECOFG1P?
wYO8#
• T?O0EiˆtiF26VˆV=uvCOFG1?:;1
F-O8#6v8#y:;?CrOCOFG1
• "w,‡t,))V‡)VuECOFG1P
6ZO8#rZOP
• "O0Ei‡tiF26V‡)VuvCOFG1y:;
6O8#6v8#y:;CrOCOFG1
hƒ5D0)Siˆ6i‡H):;.)7/,ˆ6
,‡),‡HQ12
• "w:7t%))0,‡uvCOFG1:;I
6#O<:7BCO#<:7D2•:;
0E6O8#):#,-<:7P‰
QOVIF-s
• "wt,,‡uD-COFG1:;
.`.6O8#(*ZO-)s
15
4OCOFG12•:;?PL6=H
• "wL=tj)C)0,‡uO2ACOFG1A
=H6O8#:yOCOFG1:;.`.)
):;.0.y)-F-sCOFG1:;?
• "wq7tˆ=,‡uCOFG1:;?P
=Hq7
• "w(;.t,C,‡uD--)s-
COFG1Aw7O8#2•:;(;.'
O-)s6-)s02•:;68#
O2A8^CO#-0)05.q722
%ˆj
! 8^)05.CO#wCO~jt~€)V)0
jV22u/CO#2‚D-COFG16X(
0P'5.)P)05.#CO#2‚
)05.6CO#:6#D-COFG1
$ 8^)05.CO#8wCOR~j/CO#
2‚)8^0BCO#:;.&-6:;
O2A8#O5.WO#2‚:;.&-D
-COFG1:;?-8#s.:X6-
8#0;.'CO#tu-
COFG1
4()*CO#y:)H,†jt,V•†0V)0
j)VF)VuCO#1:;.&-60P-
6Z:)HtVuBD-6Z0')8s
y
16
3 WO#-01)CO#-01v*O
-01CO#s.:X82‚6#HCOFG1
-B-COFG17'6#8<)0E
8.
1.3.2 Mạng liên kết các thành phần của máy tính song song.
)(-()*22B6DE)?D)
((F-s2L7(H-COFG16#R
'D^'7(7(‰67(O
- '7(‰'-./OA-0
1BCOFG16CO#:;7(O-As
- '7(O'-./A-01
)-7(H-COFG16CO#P0
:;D^
&0O2A8^'7(‰H-COFG1/-0
122
1. Mạng liên kết tuyến tính
)'7(0(1-COFG1:;7(6#6
:;2I.F(.V<L@=)YCOFG176AZB
-COFG1J'-ECOFG1):#62hH
.)0EO2ACOFG172L)0E8=HH-COFG
1Cs5'DHCOFG16A
]^! '7(0(1/COFG1
2. Mạng liên kết vòng
17
P
0
P
1
P
n-1
'7(6JP:;<:'0(1CS
-ACOFG16AL)H-COFG1PV
OEQE076)0E8H-COFG1Q
C-COFG1rF6qCs)ƒ
]^!+'7(6J/COFG1
3. Mạng liên kết xáo trộn
"2GRCOFG1%
_
B%
!
BNB%
6#RU0Y/$)'
7(F-)OB:7(OEYCOFG1%
(CO
FG1%
Š
:;F-s:2
−+
=
N1i2
i2
j
1Ni2N
12Ni0
−≤≤
−≤≤
]^!‹'7(F-)Oy6#RŒ‹
]^!‹8O'F-)OOEy6#RŒ‹B
)-7(F-)8:;CP=ƒCSU76-7(
):;CP=ƒCS'•hƒD0)SCOFG1%
_
6
%
R•!
L7(6#1BCOFG1:;7(6#COFG1$=tR•
!u
3.2. Mạng liên kết lư$i hai chiều
18
P
0
P
1
P
n-1
P
0
P
1
P
2
P
3
P
4
P
5
P
6
P
7
với
với
)'7(:#EB-COFG1:;2I.F(.
O)5EBvCOFG1:;7(6#CA-E)7B
=:#B)-B.485HCOFG1rC7,
C(P/':#E:#E8(A6J6
:#E(A6J
tu:#8(A6JtCu:#(A6J
]^!{'7(:#E
5. Mạng liên kết siêu khối
'7(27A=EwRŒ$
=
COFG1BvCOFG17
(6#=COFG1-)'8:'7(27A
=Ž!E:;F&0=LCS-(A'7(27A=
EO-^<B'7(RCOFG1:;?'27
As.&B-COFG1:;I>s.&-)sY_(R•!B
6COFG1:;?-E/(->/y
-OCt<-OU0Y/$u
19
]^!!_'7(27AE
6. Mạng liên kết hình sao
)'7(^2BvCOFG12•:X<6#O-
6s/16#O2AL7'7(^2•CO
FG1B>vCOFG1O-6s/1WOFG1%
:;7
(6#COFG1%
Š
(Š5:;YCS-01<B6#$
≤
≤
20
]^!!!'7(^26#$3COFG1
1.4 Kiến trúc cụm máy tính
):#&0B5Hc-01@dtHigh- Performance
Computing•]%,u::;=ZPyH-0122
Q-016`X6#-)s7#)8R:6#2L.-
)P/8.<QCH(CO
)6(@/COFG16C@8'>0
O-=()*/--01@e
--01@:;')CS-(A--0)'
tWorkstation f‡u6#^5Hc-01dt,.V)
,2V)u:;2G=P8='-010
21
P
1234
P
3214
P
2314
P
2134
P
1324
P
3124
P
4231
P
3241
P
2341
P
2431
P
4321
P
3421
P
2413
P
4213
P
1243
P
1423
P
2143
P
4123
P
3412
P
4312
P
1342
P
1432
P
3142
P
4132
,-0)'t‡)2,2V)•‡,uO--0)'
:;(A6#8O'AO,--01)
O‡,)0E8O)<)0E8.
C()0E8=L)7(A6)0E88(A
8^(A=L)7<,%t)22,)%)u
6#O506)0E8.:;C8^8
(A=L)7<~h%t~2V)h)%)uB6#<
0O506)0E8.:;C]0)D
E.Ev);61-22)7‡,7CP:
%[,]
‡,)DE:P
o 4‰51-)7--01Pr)OYO
AK(-A)D#TE0P1
E=‚6'/A]APyw
O-01QE-01`.A'6#
RH-01A'[V)VUP`.:;
]AUPCwH-0107=
-
o (Cs.<=ZPF&0=LO-01:
--01-&6--0)'0:;C-)O
)>)7s):6#-D.eE07IO
-01yO^6OC.17
:;.1C
o ,-COFG1#P=ƒ=1;.6A:
*>2•)AT&0:P/-0
126#HA22-671
/A
22
Kiến trúc bó IBM 1600 của Trung tâm Tính toán hiệu năng cao (Đại
hYc Bách Khoa Hà Nô&i):
• =V1-.V)V2 Bv=Vw‹,%~%mV)3Ž!
Cˆ[,!+"]‘/[W’V Wi,,$B!$‹Wi,,
BC@8+$"W.2’$"WˆjBC@8CO#!$
"W.2’ F "W]hhR@L1-O$3_
"}.tr)OA+ ‹"}.2l! =Vu
• !=V1.E,. _%mV)3Ž 3C!$"]‘’
V!Wi,,$B‹Wi,,BC@8!$‹"W.2’!
"WˆjBC@8 3"W.2’ F "W]hhBhehˆ†
• !=VEP.<],[VpV_ "]‘B!"W
ˆjB3_"W]hhBhehˆj
• ,- =V :; ( A 6# 8 ]% t]
%V)€)Vmfm@uBC@8$"W.2
6"VV)V
• ]A:)H[Wh33__6ip%+__(A6#
[W! __8 6#C@8$"W.2
• ,-=V'0]T]j[p.7C$
Kiến trúc bó IBM 1350 của trung tâm tính toán hiệu năng cao:
• ‹=V1-Bv=Vw$.[VpVh,)V$
"]‘B$"WˆjB!F "W]hhBhehˆ†@L1
-/‹=V!$"x.2
• $=V.6:)HBv=Vw$.[VpVh
,)V$"]‘B"WˆjB3F+$"W]hh
• !=V6)J1Cw.[VpVh,)V
$"]‘B"WˆjB$F "W]hh
23
• R@L:)H(Cs:)H=Zip%3__6#!_F+
"W]hh,[$_W.2!4ˆ.B=ZA2‚“V
"%}F6$_
• ,-=V'0]T]ˆV=iV).)2VF_6:;(
A6#8'"VV)V
CHƯƠNG II
24
THIẾT KẾ THUẬT TOÁN SONG SONG TRÊN
TINH THẦN CÁC PHƯƠNG PHÁP SÁNG TẠO
2.1 Các giai đoạn thiết kế thuật toán song song
,C-(.5)((5-22OC
-B
- 2-5-LBC(HD)*
LP5=@22L7/D-
.)AFG1
- ((5-22#
- ((5-22YH5-22>
:;F&0=L
)((=Z2G=:#(.5^U:C
w-'2
! %&)>t%)u,H1-6=HH
-6K"'0/0(P^(@L
226:O5.6#()*-01
$ )0E8t,u"'0S(5.2L
.A;.LH--66F-s5-6D
)*)0E81;.
1;.tjV)u1/'0--
H07@6.1LR((BH
-6P(;.'--6#XP@@
6.1L
3 ”F't uv-62•:;OCOFG1S
A2L5=@/-COFG16P
25
.1)0E8”F'P:;F-s‰t20uQ
)'0t)VuCS5-&CSt=•
Cu
2.2 Các nguyên lí thiết kế thuật toán song song
5-22:;s‰O5.-()^Q-
-6PLw6P)=H6#P(
;.ZOC-T&0U1X =-071
2-'&02•FVF`-071)((P
2.2.1 Nguyên lí chia để trị
P)s8O)HC. 8=D
P0(6DET&0U/071.&KWS
-K86-.O5.:XABP
0(wY6DPKB@@A
Ví dụ :W-1ja!nbB((5-22O
.<'.†tnu6#†tnuCOFGM5-:A:
G=6.&=H2•5-6#O.<'.
†tnu6#†tnlnuCOFGM
Ž %&-.G/6nln’v<n
.G
kŒn6rŒnln’ rkŒnŒ$
k
R!j
!
j
$
NNj
n
R$j
nŽ!
NNj
$n
rŒnln
NNNNNNNNNNN
Ž %&vOCOFGMŒ•nlnCOFGM
Ž O)7vCOFGM†tnuBD6W
i
:;W
!
B
W
$
BNBW
nln
2G=5-)!1
26