1
ĐẠI HỌC QUỐC GIA HÀ NỘI
Đề tài:
TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG TRONG
AN TOÀN THÔNG TIN
PGS.TS. Trịnh Nhật Tiến
Nguyễn Thùy Linh
Hà Nội, tháng 12 năm 2013
Contents
2
I. Tổng quan về tính toán song song
1.Giới thiệu
! "##$!%#&'()*+, -/"0+12'3$*45
+!6#789:$*86;)<49<=' >4,?!$$'?'1:
$*8!$1@:A*3$*BC8D<EF"3*$>":$*
!"G
,<=' >6142 "0-H?7)I)*)494!+!
J KLI)*)M0,<>NO-8-P74HBC8DQ!
-* :@' R"4,)I)*) 4ST2'!"N?U
62Q!"74HVW4.494>-H.$40@
J KLI)*)X!3$*+!YN6T4,0,
?$?$+R2'3HBC8D@
K LI)*)E0,#>9))I)*)M6X@
Z)A)I)*)X4,<=' >*3$*84[$+!4N
:$*?$?$@\C8D?$?$8='*+]BC8D^-2'>+]49#:
$.4^6_!-!<=' >-H3$*@0'BC8D?$?$
49+RY74!3HBC8D@
*' R:$*0,3!$^--H-* :62'3H6BC8D
$5-H()*-* :#>7 ! 8-H?#>9)Q!!.+R@
Phân biệt xử lý song song với tuần tự:
+$7-* :?$?$)kA-8-$049)*+,+H+[@*
8j6?CA7:$*?$?$)kA- R';':$*
#N='*8"#N R';'!BC8D<"(.6k! ":
$*#>1'N+]"-N)T*:-@@@
5
2. Mục đích của tính toán song song
Việc thực hiện tính toán song song nhằm
<=' >4961428")U.)*61428`0#N,<
=' >W+R-H-* :4I453#3H-* :3m.>3*$
>"?0;pb* ]-#>-BC8D+'+'!$mq?
'1):4^' RQ!-* :4IW49-H
8.-H4,-S' RQ!-* :4!3HBC8D0,2'
84^6+' ()8"'1) $AG
oCA' R)A3HoCA' R:$*+R-H+!
+H$5(-:8f+f#' R.I:$*8#!>-"
#N4Q@
E. Mô hình máy song song
bH7-* :?$?$8-H-* :62'I-H3HBC8D
$)a)BC8D?$?$@mj! 0,3!$='*491<*?R'-*
:6+P-3HBC8D"* -* :+ "! *7cG
+$YP-;4k *-* :06BC8D*)AN-
-'8$+f$)a)2'k+$-H3HBC8DV49$87-* :
?$?$@
F!6$?)k3i#>7Y!*3HBC8Dd! );BC8De"Y!
3HBC8D63H-0+12'8$.#>+c-* :?$?$#*!'@
F!+R#>+c3HQ!*-* :?$"r8 )k#>+c-*
:?$?$X8$.
J KobFdo8f?+'$b'8)8fF!!e4I84!Y8'
obF8-H#,'-* :?$?$01<*3HBC8DW-H
8' 1@' R8 49+R*3HY8'#*!'U
8
)<3>493$*0,49?$?$$*! #Nd0,!+RY8'
! UPQ!3$*e@
4.1. Mô hình lập trình song song
! 0+12'-N]8()+]?$?$!?l3H"w'^">
+]d+f!?e"+' 2N4)dbf??!fL!??e" o$ ?$Y 8'dF!!
L!+!88f8e"w!d 3+e@
Chia sẻ bộ nhớ (Shared Memory)
+$-N]8()+]!?l3H"**6A!?l6!'-H#N
!4m!W'"**6A4%"4^3H@
02'I>#0!"'49?CA4,42'#,+' ()3H
!?l
w9>494f-4>f$#:!.8()+]]#*-yoiY'zY8'8
4!>'"$40#N1>)<4m+{6+' 2Y8'Y!**6A
@w()+]?/4I<I@
8.#0#P+$6142'P
8'Y8'A3H$3HBC8D86+R40"3HBC8D >-Y3H
+' ()R)<8-I8RA#02'3HBC8D_'Y8'
w()+]A3H#0#P62'#O-$;-#,-?$*Q!8()
+]
Luồng, tiến trình (Thread)
.$8()6Q 3T>+]
|R';'4;'RQ!BC8D?$?$8#<P.$+!-H?7>+];
>$3$*6#<PQ 3T>+]"#);6BC8D?$?$#>
c4,<)0*' R$Y>+]#*?CA
9
<?C04$.-[_4,.$*>+]6)kNN6$c
id = create_process(N);
Switch (id) {
Case 0 : … do NhiemVu
$.4HC?/#>9)6$.4H(
Song song dữ liệu (Data Parallel)
5:Q!-N]Y8'?$?$
K N6?$?$()+'6$*!$*+R-H()Y8'@
()Y8'49gU1'+c'3<"-<$5#7
K ()**6A_8-+R1'+cY8'7!'' R-`*6A
$.4H+R)k6_#*!'Q!-H1'+cY8'
K !$*7!'+R_-H)k6_N6$40
K +R*#>+c3H!?l"**6A0=' 2+' ()6$1'+cY
8'N='!3H$A@+R*#>+c3H)k)71'+c
Y8'49)k+!6^.+$-Hy#7z
Hỗn hợp (Hy brid)
K +$-N] 0!! 2'-N]8()+]?$?$#>9)8.
142='!+%+$:$*?$?$8)<(A49#<P:
$*Q!*3HBC8D@0X*>)(4,(A*3HBC8D@
4.2. Thiết kế các chương trình song song
Ko$?$$*;-4md-)8)!+!88f8?-e3H3Rm! -H6
I+]#*4H)k!*N64>*3HBC8D@
J Ko$?$$*3O! dfB)8)!+!88f8?-e8()+])<)k
!I+]Q!!!4>00,?$?$@
$+!+$8()+]?$?$"8()+]6R;)<:4> >'7
k3O<d8$!3!8!e+$7@L<8-$*3HBC8D?7
N6!'">'0-H3HBC8D0<='*8];)<' ,N
11
64>3HBC8D0<TI@+' 2NY!*3HBC8D8-HN
6#N,>'Q!8()+]?$?$@0!#&'(+' 2NQ >'8
_3H!?ld?!+f-f-$+ e$5+' 2N4)d-f??!f)!??e@
bH-N]8()+]?$?$8?CA-H()*#&'();-2-4,
,*<'(?$?$64!UA6$+$7?$
?$@bN]3!$^-*UA"NY"3H3Rm"6"7
0‚‰X#D6( ?78'^>+]74!$-`8N8M†XŠ@6( 0-M
dIU6-(#•'04N8Me0‰X-(#•'"0-X0E‹ŠŠ-(#•'"
0-E0EX‹XE‹-(#•'
<'(#,-+!-(#•'?/4945M#f+f8@b`8;#:$.#f+f8
?/#,-+!$-H8N-(#•'p4[!
Lk8N-(#•'f$4H
<'(#,-+!-(#•'UC49?$?$"f$4HQ!
-(#•'@;'R"<'(:?78N;>Q!-H0--(#•'04H
B*4m@o!'40"6-`-H8N)-(#•'"<'(:?7UQ!*-(
#•'+$8N408-4;'6$$-#,-+!-(#•'49+R-H>
+]@
14
• Œ8$-o$v)*+,NA•w!?+!#f+•"$)a)+P-
-bFŽ?$?$+R3HBC8D4^%!Ft@! "6N
A "74H.$6#,-+!*):-8X•Š"ŽbLq?d+'-(#•'-`
k e+R-Hl‹‹††\6EŠ‹"‰b)q?+R-Hl‡‹††\@
• bHNA#*8•bFŽL•+!#•Q!uf•!-f+$'B)*+,
d!ewLw6E@I+] c))A^-(#•'bFŽ+1!
6?CA?#>9)Y!L•6L•4d6fr$+f‹‹††6
•FttLe@;<-[bFŽ+RL•49+R
-Hc+!3m2'!+4^%!@
15
8'!-#<$
1 L!UFV"FI(k"L ^L$"' hY'U"' h
!Q "Ứng dụng công nghệ tính toán CUDA trong bài toán khôi phục mật
khẩu tệp nén Zip.
2 wR' ()"Giáo trình Kỹ thuất lập trình"()M"\ux$!%R6N
"HM†P-X††‹"X‡‹)
3 v8fqqqq•?f+?q' f‘X†wqFf?#$)q‘X†$!‘X†?$‘X†?$q
‘ŒM‘ut‘tE‘X†-‘E‘tE‘X†bFŽ‘X†+‘E‘tt‘X†L•‘X†‘ŒM‘uu