liệu M I M D 1.2.2 Cách ph ân loại dựa trên s ự tương tác giữ a các BXL Một trong những khía cạnh quan trọng cun các máy tính song song là vơ ché trao đổi t hông tin giữa các BXĨ., lĩa
Trang 1DAI HỌC Q U O C GIA H À NỘI
K H O A ( ÔNC, N G H Ệ
NGUYỄN VIỆT ANH
XỬ LÝ SONG SONG TRÊN PVM
VÀ ỨNG DỰNG TRONG BÀI TOÁN BẢO MẬT THÔNG TIN
Trang 2DANH MỤC CÁC TỪ VIẾT TẮT
D A N H M Ụ C B Ả N G B I Ể U H Ì N H V Ẽ .
M ớ Đ Â U 5
C h ư ơ n g 1 T ổ n g q u a n v ề x ử lý s o n g s o n g 7
1 1 M á y t í n h s o n g s o n g .1
1.2 P h â n l o ạ i m á y t í n h s o n g s o n g £
1.2.1 P h â n l o ạ i d ự a t r ê n c ơ c h ế đ i ề u k h i ể n c l m n g 8
a ) H ộ t h ố n g đ a x ử l ý m ộ t d ò n g l ệ n h n h i ề u d ò n g d ữ 8 b ) H ệ t h ố n g đ a x ử lý n h i ề u d ò n g l ệ n h n h i ề u d ò n g d ữ l i ệ u .9
1 2 2 C á c h p h â n l o ạ i d ự a t r ê n s ự t ư ơ n g t á c g i ữ a c á c B X L 9
a ) C h i a s è b ộ n h ớ c h u n g .JQ b ) T r u y ề n t h ô n g đ i ệ p .J J 1 3 M ô h ì n h l ậ p t r ì n h s o n g s o n g .I I 1.3.1 M ô h ì n h n h i ệ m v ụ - k c n l i l i ê n l ạ c 12
a ) T ố c đ ộ ' ! í b ) T í n h đ ộ c l ậ p á n h x ạ I c ) T í n h m o d u l e d ) T í n h x á c đ ị n h 14
1 3 2 M ô h ì n h c h i a SC b ộ n h ớ c h u n g 1 4 1.4 H i ệ u n ă n g c ù a x ử lý s o n g s o n g 7 <5 1.4.1 D ị n h l u ậ t A m d a h l ' s I 1 4 2 C â n b à n g t à i ^
a ) C á c t h u ậ t t o á n c â n b ằ n g tài t ậ p t r u n g ](•’
b ) C á c t h u ậ t t o á n c â n b à n g tài p h â n t á n h o à n l o à n 16
c ) C á c t h u ậ t t o á n c â n b à n g tài p h â n t á n m ộ t n ử a 17
d ) S ự b ế t ắ c ( D e a d l o c k ) I ý C h ư ơ n g 2 S o n g s o n g h o á t h u ậ t t o á n t ự ]<) 2.1 C á c c h i ê n l ư ợ c p h á t t r i ê n ứ n g d ụ n g s o n g s o n g Ị ọ 2 1 1 S o n g s o n g h o á t ự đ ộ n g ỊỌ 2 1 2 X â y d ự n g c á c t h ư v i ệ n s o n g s o n g Ị ọ 2 1.3 K ế t h ừ a c á c t h à n h p h ầ n c h í n h 2 0 2 2 C á c b ư ớ c c ơ b à n s o n g s o n g h o á t l n i ậ t t o á n t u ầ n t ự 2 2 1 P h â n r ã 21
a ) K ỹ t h u ậ t p h â n r ã t h e o m i ề n 21
b ) K ỹ t h u ậ t p h â n r ã c h ứ c n ă n g 2 2 c ) T i ê u c h u â n đ á n l i g i á g i a i đ o ạ n p h â n r ã 2 3 2 2 2 T r u y ề n t h ô n g 2 1 a ) T r u y ề n t h ô n g c ụ c b ộ 2 <5 b ) T r u y ề n t h ô n g t o à n c ụ c .2C c ) 1 r u y ề n t h ô n g đ ộ n g v à k h ô n g c ó c ấ u t r ú c 2 7 d ) T r u y ề n t h ô n g k h ô n g d ồ n g b ọ 2 7 e ) T i ê u c h u ẩ n đ á n h g i a t h i ế t k ế t r u y ề n t h ô n g l ó 2 2 3 T ồ n g h ợ p 2 9 a ) T ă n g k í c h t h ư ớ c n h i ệ m v ụ 3 Q b ) B à o đ ả m t í n h m ề m d e o 21
c ) G i ả m c h i p h í x â y d ự n g p h ầ n m ề m ' ' 31
d ) T i ê u c h u ẩ n đ á n h g i á g i a i đ o a n t ổ n g h ợ p ỳ) 2.2.4 Ánh xạ „
>s r * ' 1 - i I 1
2.3 Các chicn lược thict k é
2 3 1 S o n g s o n g h o á k ế í q u á .Y I
2 3 2 S o n g s o n g h o n d ạ i d i ệ n g
Trang 4Viêt tăt T i ê n g Viêt T i c ng A n h
P VM M á y ảo s o n g song Parallel Virtual M ac hi ne
TI D Định da nh nhiệm vụ Ta sk Identifier
Trang 5B à n g 1 M ố i q u a n h ệ g i ữ a t i ế n t r ì n h v à n h i ệ m v ụ 41
B á n g 2 C ấ u t r ú c c l u r ơ n g t r i n h 41
B à n g 3 S o s á n h m ộ t s ố t í n h n ă n g g i ữ a P V M v à MPI 4 5 H ì n h 1-1 H ệ t h ố n g m ộ t d ò n g l ệ n h n h i ề u d ò n g d ữ l i ệ u ( S I M D ) 9
H ỉ n h 1-2 H ệ t h ố n g n h i ề u d ò n g l ệ n h n h i ề u d ò n g d ữ l i ệ u ( M I M D ) 9
H ì n h 1-3 M á y t í n h s o n g s o n g c h i a s ẻ b ộ n h ớ c h u n g 10
H ì n h 1-4 M á y t í n h s o n g s o n g c ó b ộ n h ớ p h â n t á n 11
H ì n h 1-5 S ự p h ụ t h u ộ c t h ờ i g i a n v à o s ố l ư ợ n g B X L c ù a đ ị n h l u ậ t A m d a h l 15
H ì n h 1 - 6 B X L P|( k ế t k h ố i đ ể g ử i X c h o Pj vì v ù n g đ ệ m c ủ a Pj đ ầ y 18
H ì n h 2-1 S o n g s o n g h o á t ự đ ộ n g 19
I í ì n h 2 - 2 X â y d ự n g c á c t l n r v i ệ n s o n g s o n g 2 0
H ì n h 2 - 3 S ử d ụ n g lại c á c t h à n h p h ầ n c h í n h 2 0
H ì n h 2 - 4 M ỗ i n h i ệ m v ụ đ ả m n h ậ n c ô n g v i ệ c tại đ i ể m l ư ớ i v à t r u y ề n t h ô n g v ớ i 4 lân c ậ n c ù a n ó 2 6
H ì n h 2 - 5 M ỗ i t i ế n t r ì n h x ử lý m ộ t p h ầ n v i ệ c c ù a k ế t q u à 3 7
H ì n h 2 - 6 C á c t i ế n t r ì n h t h ự c h i ệ n s o n g s o n g t ừ n g c ô n g v i ệ c t h à n h p h ầ n 3 8
H ì n h 2 - 7 C ấ u t r ú c c ủ a T I D 4 7
H i n h 3-1 S ơ đ ồ k h ố i t h u ậ t t o á n t ạ o k h o á h ệ R S A 5 4
H ì n h 3 - 2 M ỗ i t i ế n t r ì n h “ đ à m đ ư ơ n g ” m ộ t n h i ệ m v ụ 5 6 ] l ì n h 3 - 3 N h i ề u t i ế n t r ì n h đ à m n h ậ n n h i ề u n h i ệ m v ụ 5 6
H ì n h 3 - 4 M ố i t i ế n t r ì n h d á m n h ậ n c h u y ê n b i ệ t k i ể m t r a m ộ t s ố n g u y ê n t ố 5 7
H ì n h 3 - 5 K ế t q u à tliir n g h i ệ m c h i ế n l ư ợ c v ớ i s ố l ư ợ n g c á c B X L k h á c n h a u 5 9
H ì n h 3 - 6 G i a o d i ệ n c h í n h c ù a c h ư ơ n g t r ì n h 6 7
H ì n h 3 - 7 T ạ o k h o á v ớ i 11 = 1 2 3 4 6 7
H ì n h 3 - 8 T ệ p till d ù n g đ ể m ã h o á 6 9
H ì n h 3 - 9 T ệ p till đ ã đ ư ợ c m ã h o á v ớ i c ặ p k h o á ( e , n ) 6 0
DANH MỤC BẢNG BIÉƯ HÌNH VẼ
Trang 6M Ở Đ À U
S ự phát triển khoa học kỹ thuật t hườ ng d ượ c thách thức bởi lớp bài toán lớn cần phải giải q uyết trong mọi lĩnh v ực của đời s ổng xã hội n h ư d ự bá o thời tiết, khai phá dữ liệu, xử lý ảnh, trí tuệ nhân tạo an toàn dữ liệu, t ự đ ộ n g hoá V V Lớp các bài toán này vừa đòi hỏi đáp ứ ng thời gian thực v ừ a yêu cầu x ử lý trên khối lượng
dữ liệu k h ô n g lô Việc giải quyết lớp các bài toán này t h ư ờ n g đòi hỏi phải sử dụng các bộ x ử lý có hiệu n ăng cao
M á y tính s ong song ra đời để đáp ứn g đòi hỏi đó và x ử lý s o n g so ng ra đời dựatrên các m á y tính loại này Th e o [14], [17] x ử lý song s o n g là thao tác x ử lý thôngtin đ ồng thời trên các phần tử dữ liệu thuộc một hay nhiều tiến trình để giải quyếtmột vấn đề nào đó Máy tính song s ong đơn giản là một tập hợp các B X L (thường
là cùng kiểu) cỏ mối liên hệ với nhau theo một cách thức nhất định có khả n ăng xử
lý song song
X ử lý song song phát triển với mục đích làm tăng khà n ăn g tính toán của máy tính bă ng cách kết hợp nhiều bộ x ử lý tham gia vào quá trình tính toán thay vì sử dụng các máy tính chuyên dụng đắt tiền
C á c xu h ư ớ n g VC ứn g dụng, kiến trúc má y tính và m ạ n g cho thấy rằng trong
t ương lai c ơ chế s on g song sẽ được sir dụng kh ông chỉ t rong các sicii má y tính mà ngay ca trong các trạm làm việc, má y tính cá nhân và m ạ n g má y tính Khi đó các
c h ươ ng trình phải tận d ụn g được không n hữ ng các B X L trcn c ùn g mộ t máy tính mà còn cả các B X L khác có thể sử d ụn g đ ượ c trcn mạng D o p hầ n lớn các giải thuật hiện nay là các giải thuật tuần tự nên cần có n hữ ng giải thuật và c ấu trúc dữ liệu mới cho ph é p nhiều thao tác dược thực hiện đ ồn g thời Bởi vậy khả n ăn g chạy dồng thời đa n g trờ thành một trong nh ữn g đòi hỏi cơ bản của các p hầ n mềm
X ử lý s ong s o n g ngày càng thể hiện rõ sức mạ nh c ủa m ìn h trong việc giải quyết nhiều lớp bài toán và trong các ứ ng dụng cụ thể C á c bài toán về an toàn dữ liệu c ũng là một trong các ứng d ụn g đó
Nhir chung ía bict an toàn và bào mật dữ liệu đã được quan tâm từ rốt sớm
Gần (tây với sự phát triển cùa mạ ng toàn cầu Internet, ván (lồ an toàn và bả o mật (lữ liệu được đặt ra c àng cấp bách hơn và nhu cầu ứng d ụn g x ử lý s on g s on g trong lĩnh
Trang 7vực này do c ũ n g vậy c ũ ng tăng lên.
Tr ong k h u ôn khổ luận văn “ X ử lý s ong s ong trên P V M và ứng dụng trong bài toán bả o mật t h ôn g tin” chúng tôi nghiên cứu, áp d ụ n g xử lý s ong s ong làm tăng hiệu quà thuật toán mã hoá công khai RSA - một trong thuật toán mà hoá phổ biến.Luận văn dược trình bày trong ba chương:
C h ư ơ n g 1: T ổ n g quan về x ử lý song song: trình bà y t ồng quan các khái niệm, các mô hình m á y tính, m ô hình lập trình, vấn đề hiệu n ăn g c ủa x ử lý so ng song Các vân đề đượ c trình bà y trong c hươn g này là nền tảng c ho các nghiê n c ứ u của chúng tôi trong suốt q u á trình thực hiện đề tài
C h ư ơ n g 2: So n g song hoá thuật toán tuần tự: trình b à y các b ướ c cơ bản dể song so ng hoá thuật toán tuần tự, từ nh ữn g các bướ c cơ bản nà y tập trung nghicn cứu một số b ư ớ c quan trọng, nghicn cứu một số chiến lược thiết kế son g s ong phổ biến cùng với môi t rường lập trinh song song Parallel Virtual M a c h i n e ( P VM ) để tiến hành thử n gh iệ m bài toán T h ô n g qua thử nghiệm, c ũng n h ư một số nghicn cứu của các nhà k ho a học khác, chún g tôi mạnh dạn đề xuất s ự phân lớp các bài toán dựa trcn tập dữ liệu kết quà dể sử dụng chiến lược thiết kể phù hợp
C h ư ơ n g 3: Bài toán hảo mật t hông tin: C h ú n g tôi đề cập đến bài toán bảo mật thông tin và tập trung và o bài toán m ã lioá c ôn g khai RSA Tr o ng bài toán mã hoá RSA c h ún g c h ú n g tôi áp dụ ng x ử lý song s ong giải thuật tìm số nguyên tố - là một bước quan trọng trong giải thuật RSA C h ú n g tôi tiến hành thử n ghi ệm cài đặt áp dụng các chiến lược thiết kế đã trình bày trong c h ư ơ n g 2 T ừ kết quả thừ nghiệm, tiến hành so sánh và chọn một giải pháp so ng s ong hoá tói ưu nhất để xây dựng
c h ương trình mã hoá tệp văn bản
Phân kết luận, tóm tắt các vấn đề dã trinh bà y trong các c h ư ơ n g cũng như kết quả đạt được Ngoà i ra phần két luận cũng chỉ ra m ột số vấn đề c h ưa được giải quyêt thâu đáo tron g q uá trình thực hiện đc tài và h ư ớ n g ngh iê n cứu trong t ươ ng lai của c h ún g tôi
6
Trang 81.1 Máy tính song song
T ố c độ của chiếc máy tính nhanh nhất dã t ăng theo h à m m ũ kể từ năm 1945 cho đen nay với tỷ lệ (rung bình là 10 lần trong 5 năm S ự t ăng tr ư ởn g này SC vẫn tiếp diễn, do đã có sự thay đổi quan trọng trong kiến trúc má y tính là sự thay đổi từ kiến trúc tuần tự san g kiến trúc s on g song n hà m duy trì đ ư ợ c tốc độ tăng này
T ố c độ của m á y tính phụ thuộc vào thời gian cần thiết để thực hiện m ột thao tác c ơ bản và số i ượng các thao tác c ơ bản có thể đ ư ợ c thực hiện đ ồ n g thời Rõ ràng
là thời gian thực hiện một thao tác c ơ bản sẽ bị giới hạn bởi chu kỳ đ ồ n g hồ của BXL, nghĩa là thời gian để thực hiện thao tác nguyc n tổ nhất T u y nhiên thời gian cùa một chu ki đ ồ n g hồ đang giảm đi rất chậm v à d ư ờ n g n h ư sắp tiếp cận tới giới hạn vật lý Do vậy k h ô n g thể dựa trên n h ữ n g B X L n ha nh hơn để làm t ăng tốc độ tính toán
N h a m vượt qu a n h ữn g giới hạn này các nhà thiết kế đã sử d ụ ng khả n ăng tính toán song song trong một con chip, c hẳng hạn tiến hành tính toán đ ồn g thời trên cả
64 bit trong thao tác nhân hai số Tu y nhiên một kết qu ả t rong lý thuyết về dộ phức tạp VLSI (Very Large Scale Inlergration) [14],[24] ch o thấy r àn g chiến lược này đòi hỏi chi phí rất cao Kct quả này được phát hiểu n hư sau: Với các tính toán truyền dẫn (là các lính toán trong dó bất kì đầu ra nào c ũn g phụ t h u ộc và o tất cả đầu vào) thì thời gian T dể một chip có diện tích A giải quyết m ộ t bài toán phải thoả mãn điều kiện [AxT2J > f(N) (Í'(N) là một hà m phụ t huộc vào kích t hư ớ c vấn đề, và N là kích thướ c của vấn dề)
T ừ kết quả trên có thổ thấy việc xây d ự n g các thành phàn ( C o m po ne n t ) ricng
rẽ chạy nhanh hơn k h ôn ẹ n hữ ng là nít khó khăn mà việc thực hiện diều (ló cũng
k h ôn g kinh tế Th a y vào đó việc sử d ụng d ồn g thời nhiều t hành p h ầ n có tốc độ
c hậm hơn có the SC rẻ hơn
N h ữ n g nh à thiết kế máy tính cỏ thổ sử d ụn g nhiều kỹ thuật khá c nhau để vượt qua giới hạn này và làm tàng tốc độ m ột máy tính đơn n h ư c ơ chế pipeline, hay sir
d ụn g nhiều đơn vị tỉnh toán (Multi function units) Một xu h ư ớ n g nữa là các nhà thiết kế sử d ụng nhiều máy lính mà mỗi máy t rong số c h ú n g có BXL, bộ n hớ ricng
Trang 9rẽ và được kêt nôi theo một logic nào đó Cách tiếp cận n à y ng à y c àn g trở ncn dễ thực hiện hơn hời các kỹ thuật VLSI cho phép làm giảm số l ượng thành phần cần thiết cho một má y tính Do giá cùa một má y tính tỷ lệ với sổ t hành phần mà nó có ncn khả năng tích hợp cho phép tăng số lượng B X L có trên mộ t má y tính với cùng giá như cu Kê t quà là số lượng B X L trên mộ t má y tính ngày c àng tăng lên.
Sô lượng B X L trên một máy tính đa n g tiếp tục tăng và hiện tại trong mộ t số môi trường tỷ lệ tăng đang là hai lần trong một h oặ c hai năm D o đó các ứng dụng
có thể được sử d ụ n g trên các má y tính có số lượng B X L ngày c àng tăng trong vòng đời cua chúng Bởi vậy khả nă ng m ở rộng (scalability) ( khả n ă n g p hầ n m ề m tận
d ụ ng được nhiều nhất các B X L có thể sử dụng) trờ thành m ột t huộc tính quan trọng cho phép c hu y ển đổi v à bảo vệ chi phí đầu tư cho ứ ng dụng
1.2 Phân loại máy tính song song
Th e o Flynn [14] phân loại kiến trúc má y tính d ự a v ào hai khái niệm dòng lệnh (instruction s tream) và dòng dữ liệu (data stream) Một d ò n g lệnh là một chuỗi các lệnh được thực hiện hởi một má y tính Một d òn g d ữ liệu là chuỗi d ữ liệu được x ử lý bời một d ò ng lệnh Dựa trcn hai ticu chí này, máy tính đ ư ợ c phâ n loại d ựa trên cơ chê điều khiển chung Ngoài ra một số cách phân loại má y tính khác d ựa trcn sự
tư ơ ng tác giữa các BX L, kiêu và sô lượng các B X L và việc thực hiện xử lý là đồng
bộ hay k hô ng đ ồ n g bộ [4],
1.2.1 Phân loại (lựa trên cơ ch ế diều khiển chung
Phân lớn các m á y tính song song t h ườ n g có m ột cơ chế điều khiển c h ung song vân đề đặt ra ở dây là các hoạt d ộng của máy lính dược điều khiển ở m ứ c độ nào
X c m việc điêu khiên theo hai khái cạnh khác nhau, một khía cạnh, c ơ chế điều khiển c h ung chỉ đ ượ c sử d ụn g để nạp c h ươ n g trình và d ữ liệu v à o các B X L còn sau
đó các B X L hoạt đ ộ n g độc lập Khía cạnh khác, c ơ chế điều khiển đ ượ c sử d ụn g để
h ư ớ n g dẫn cho các B X L các công việc phái làm tại mỗi bước G i ữ a hai khía cạnh này là n h ữn g c ơ chế điều khiển trung gian Hai loại c ơ chế điều khiển phổ biến nhất
!à
a) H ệ tliổng đa x ử lý m ột (lòng lệnh nhiều dòng (lữ liệu
Các m á y tính vé c- tơ thuộc và o loại này, Mỗi má y tính vé c- t ơ có thể thực hiện
8
Trang 10một dòng lệnh, tuy nhiên nỏ có nhiều B X L số học khá c n h a u mà mỗi B X L này có khả năng nạp và x ử lý dữ liệu ricng của nó Bởi vậy trong hất kỳ thời điểm nào một thao tác luôn ờ c ù n g trạng thái thực thi trên nhiều đơn vị x ử lý mà mỗi trong sổ chúng có the xử lý d ữ liệu riêng rẽ Một ví dụ là chiếc m á y C M - 200
IIìiili 1-1 llộ ( hống một dòng lệnh nhiều (lòng d ữ liệu (SI1MD)
b) Hệ tliông đa x ử lý nhiêu (lòng lệnh nhiều dòng dí7' liệu
Phần lớn các máy tính da xử lý hiện nay đều th uộc và o loại này Tr on g các máy tính loại này nhiêu dò ng lệnh có thể dược thực hiện c ù n g mội lúc và mỗi dòng lệnh có thê xử lý clữ liệu ricng biệt Các máy tính M I M D ban đầu có rất ít tương lác giữa các C P U s o ng hiện nay phần lớn các máy tính đều đ ư ợ c thiết kế cho phép tương tác giữa các C P U được thực hiện một cách hiệu quả Có thể liệt kc một số máy tính M I M D n h ư Symmetry, TC2000, n C ƯB E 2, Pa ra g on X P/ S và Connection Mac hi ne C M- 5
Hình 1-2 Hộ t hống nhiều (lòng lộnli nhiều dòng ch! liệu ( M I M D )
1.2.2 Cách ph ân loại dựa trên s ự tương tác giữ a các BXL
Một trong những khía cạnh quan trọng cun các máy tính song song là vơ ché
trao đổi t hông tin giữa các BXĨ., lĩai kiến trúc phổ biến là kiến trúc chia xẻ bộ nhớ (shared m e mo ry ) và kiên true truyền t hông điệp ( me ssa ge passing)
Trang 11a) Chìa s ẻ bộ nhỏ' chung
Sử dụ ng một bộ n hớ chia sẻ toàn cục (global shar ed m e mo ry ) mà tất cà các
B X L đều có thể truy nhập đến Một B X L có thể trao đổi với một B X L khác bằngcách ghi vào bộ n h ớ toàn cục và B XL thứ hai sẽ đ ọc tại c ù n g vị trí đó trong bộ nhớ.Điêu này cho p hé p giải quyết vắn đề trao đổi t hông tin g iữa các B XL, tuy nhiên lạidẫn đến vấn đề về việc truy nhập dồng thời các vị trí khá c nhau trong bộ nhớ bởinhiêu BXL Có 2 cách tiếp cận chù yếu để x ử lý vấn đề truy n hậ p bộ n h ớ l à s ử dụng
hệ thống c huyển m ạ c h (switching systems) hoặc các B X L truy nhập bộ n h ớ thông qua bus hệ thống
Đối với các hộ t hống truy nhập bộ n h ớ t h ôn g q ua b us chung, việc thiết ké
t ương dối đ a n giản, s ong nếu có nhiều B X L thì bus c ó thể t rở thành nút cổ chai khi
có nhiều B X L c ù n g truy nhập bộ nhở Bởi vậy số l ượng B X L trong các hệ thống nay thườ ng t ươ ng dôi nhỏ và cao nhất là vào k ho ản g vài c hục B X L
N h ă m tránh các nut cổ chai khi truy nhập bộ nhớ, các nhà thiết kế sử dụng hộ
t hông chuyển mạ ch để cung cấp nhiều d ườ ng truy n hậ p vào bộ n h ớ toàn cục Trong
n hữ ng hộ t hống này các B XL dược nối vào bộ n h ở t hông q ua một hoặc nhiều lớpchuyên mạch M ặc dù cung cáp băng thông lớn hơn các hệ t h ố ng sử dụ ng bus songkhi có nhiều truy nhập đến bộ nhớ cùng sử dụ ng m ộ t c h uyển mạ ch thì tốc độ truynhập cũng sẽ giám đi rắt nhiều M ột khó khăn nữa của việc s ử dụ ng hệ thốngchuyên mạ ch là thời gian truy nhập bộ nhớ sẽ cao v à k h ô n g đ ồn g bộ Tuy nhiênviệc sử dụ ng kiến trúc này khiến cho việc thiết kế giải thuật trở nên đơn giản và ởmức cao hơn bởi hệ t h ống được x ử lý như là tất cả các B X L đều đượ c nối trực tiếp với nhau
10
Trang 12N gư ợc lại với với các máy tính chia xẻ bộ n h ớ c h u n g là các máy tính song song có bộ n h ớ p hâ n tán trong đó k hông tồn tại bộ n h ớ chia sẻ chun g m à mỗi B XL
có bộ nh ớ cục bộ riêng của chúng Với kiến trúc n h ư vậy việc m ở rộng các máy tính
có bộ n h ớ phân tán trở nên đơn giản hơn rất nhiều Kết q uả là các nhà thiết kế có thể dưa ra các hệ t hố ng có tới hàng nghìn B X L m à k h ô n g phải thay đổi nhiều trong cấu trúc thiết kế T r o n g các máy tính song song có hộ n h ớ p hâ n tán các B X L liên lạc với nhau băng các t h ô ng điệp (message) qua m ột m ạ n g liên kết (interconnection network) gồ m các liên kết truyền thông trực tiếp giữa m ộ t số cặp BXL Một trong
nh ững lựa chọn quan trọng trong thiết kế lúc đó sẽ là các cặp B X L nào đượ c nối với nhau Tốc độ licn lạc là tối ưu khi các B XL được nối trực tiếp với nhau tuy nhiên điều này th ườ n g là không khả thi do số lượng các liên kết là qu á lớn đẫn đến việc tăng giá thành c ủa hệ thống Cách thứ hai đưực s ử d ụ n g là các B X L liên lạc thông qua một bus chia sẻ, điều này thường dẫn đến độ trễ cao khi số lượng BXL lớn do vấn đồ tranh chap bus
Hình 1-4 Má y tính song song cỏ hộ nhó phân tán
1.3 Mô hình lập trình song song
Việc dưa ra một mỏ hỉnh máy tính chung cho việc lập trình giúp cho việc thiết
kế giải thuật trờ nên dơn giàn hơn Lập trình tuần tự đã c ó m ô hình truyền thống là
m ô hình V o n N e u m a n Lập trình song song dưa t hê m n h ữ n g k h ó khăn mới vào mô hình lập trình tuần tự Nếu c h ươ ng trình được thực hiện ở m ứ c thấp nhất thì k hông
n h ữn g số lệnh thực hiện là rắt lớn mà nó còn phải quàn lý trực liếp quá trình thực
Trang 13hiện song s on g của hà ng ngàn B X L và kết hợp h à n g triệu t ươ n g tác liên BXL Bời vậy khả n ăng trừu t ượng và tính module là các đ ặc tính rất quan trọng trong lập trình song song.
Vậy m ứ c độ trừu tượ ng nào sẽ phù hợp với m ô hình lập trình s on g song Rõ ràng là mô hỉnh này cần cho phép đánh giá cụ thể v ề k h ả n ă n g th ực hiện đ ồng thời
c ũng n hư tính cục bộ để cho phép phát triển các c h ư ơ n g trình có khả n ăng m ở rộng
và có tính module M ô hình đó cũng cần phải đơn g iản và phù h ợp với mô hình kiến trúc của máy tính song song
Dưới đây c h ủng tôi trình bày hai mô hình đá p ứ n g đ ượ c các yêu cầu nêu trên
là nhiệm vụ - k ênh liên lạc (Task - channel) và m ô hình chia sẻ bộ n hớ chung
1.3.1 M ô hình nhiệm vụ - kênlí liên lạc
Mô hình nhiệm vụ/kênh licn lạc [15] có thế đ ư ợ c lỏm tắt n h ư sau:
❖ Một công việc tính toán song song hao g ồ m m ộ t hoặ c nhiều nhiệm vụ Các nhiệm vụ có thể được thực hiện đ ồ n g thời, s ố l ượng nhiệm vụ có the thay đổi trong thời gian thực thi c h ư ơ n g trình
❖ Mồi nhiệm vụ là một c hư ơn g trình tuần tự và có b ộ n h ớ cục bộ (có the coi đó là một má y V o n N e u m a n ào) M ộ t tập các c ổ ng và o và c ổng ra (ĩnpor ts and oulports) được định n ghĩa n h ư giao diện của nó với môi trường
❖ M ộ t nhiệm vụ có thẻ thực hiện 4 thao tác c ơ bản ngoại trừ việc dọc và ghi vào bộ n hớ cục hộ, dó là: gửi thông điệp tới các c ổn g ra, nhận thông điệp từ các c ổng vào, tạo ra nhiệm vụ mới và kết thúc viêc thực thi
c h ư ơ n g trình
❖ T h a o tác gửi dữ liệu là khôn g đồng b ộ (nó d ư ợ c hoàn thành ngay lập tức) Th a o tác nhận d ữ liệu là đồng bộ theo nghĩa là nó khiến cho việc thực thi của nhiệm vụ phải d ừn g lại cho đến khi nhận đ ượ c thông diệp
❖ C ác cặp c ổng v ào /c ổn g ra cố thể đ ượ c nối bởi m ộ t hà n g thông điệp dược gọi là một kcnh licn lạc C ác kcnh liên lạc có the đ ư ợ c lạo ra lioặe xoa di
12
Trang 14•> Các nhi ệm vụ được ánh xạ vào các B X L vật lý theo nhiều cơ chế khác nhau, c ơ chế ánh xạ đượ c sử d ụn g k h ô n g làm ả nh h ư ở n g tới n g ữ nghĩa của c h ư ơ n g trình Có thể có nhiều nhiệ m vụ đượ c ánh xạ lên một B X LĐặc điểm của m ô hình nhiệm vụ - kênh liên lạc
a) Tốc độ
Các khái niệm trừu tượng về lập trình tuần tự trong m ô hỉnh n hư khái niệm thù tục và cấu trúc d ữ liệu là hiệu quả bởi c hú ng có thể đ ư ợ c ánh xạ trực tiếp và đơn giàn lên chiếc m á y tính V o n N eu m an Các khái ni ệm về n h i ệ m vụ và kênh liên lạc cũng có thể đ ư ợ c ánh xạ trực tiếp lên mô hình má y tính s on g song Một nhiệm vụ đại diện cho m ộ t đoạn mã được thực hiện tuần tự trên m ột BXL N ế u hai nhiệm vụ licn lạc với nhau qua một kcnh chung được ánh xạ lcn các B X L khác nhau thỉ kênh liên lạc giữa c h ú n g đ ư ợ c thể hiện n hư truyền t hông liên B XL, nếu c h ún g được ánh
xạ lẻn cùng một B X L thì một cơ chế hiệu quả hơn có thể đ ư ợ c sử dụng
vụ khác có thể đ a n g thực hiện c ông việc tính toán
c) Tính m odule
Khi thiêt kê m ộ t c h ư ơn g trình có tính module, nhiều thành phần của c hươn g trinh có thể được p há t triển như các mod ul e độc lập và sau đó đưc kết hợp lại để tạo thành c h ư ơn g trình Các module có thể được thay đổi mà k h ô n g cần thay đổi các thành phần khác C ác dặc tính của c h ư ơn g trình có thể đ ư ợ c xác định lừ các đặc tả
về các m od ul e và các m ã lệnh nổi các module Việc áp đ ụ n g có hiệu quả các thiết
kế mo du le sẽ giúp giảm bớt độ phức tạp cùa c h ư ơn g trinh c ũ n g n h ư c ho phép tái sử dụng các đoạn mà
Trang 15Khái niệm m ội nhiệm vụ trong mô hình n hi ệ m v ụ / k ê n h liên lạc phù hợp một cách tự nhiên với m ột module trong quá trình thiết kế M ột n h i ệ m v ụ ở đây bao gồm
cả dừ liệu và mã lệnh thao tác trên dữ liệu này, các c ổ n g m à nó gửi và nhận thông điệp tạo nên giao diện của nó Bởi vậy các ưu điể m của thiết kế mo d ul e có thể được
áp dụng trực tiếp trong m ô hình nhiệm vụ/kênh liên lạc
Gi ưa mô hình n h i ệ m vụ/kênh liên l ạ c và c á c thuật n g ữ lập trinh hướng đối tượng c ũng có nhiêu điểm giống nhau Các nhiệm vụ c ũ n g g i ố n g n h ư các đổi tượng bao bọc dữ liệu và mã của nhiệm vụ thao tác trên d ữ liệu đó Sự khác biệt giữa chúng là mô hình nhi ệm vụ/kênh licn lạc cung cấp khả n ăng t hực hiện đ ồn g thời sử dụng các kênh liên lạc c hứ k hôn g phải các p h ư ơ n g thức để thực hiện các tương tác
và k hô ng hỗ trợ khả n ă ng thừa kế
d) Tính x á c định
Một giải thuật hay một c h ương trình được coi là xác định nếu n h ư sự thực thi với một d ữ liệu và o riêng biệt luôn đưa ra một két q uả duy nhất N ếu giải thuật là khong xác đinh thì các lân thực thi khác nhau của c h ư ơ n g trình sẽ đưa ra nh ữn g kết quà khác nhau M ặ c dù tính kh ông xác định đôi khi là h ữu ích và đượ c hồ trợ việc
hỗ trợ tính xác định của c h ư ơn g trình trên mô hình lập trình s o n g s ong giúp cho việc viet c h ư ơn g trình trở ncn dê dàng hơn nhiêu Một c h ư ơ n g trình xác định sẽ (lỗ hiểu
và dễ kiểm tra tính đ ún g đắn hơn,
Tr ong m ô hình nhiệm vụ/kcnh liên lạc mỗi kênh có m ộ t nhiệ m vụ gửi và một nhiệm vụ nhận, nhiệ m vụ ycu cầu dữ liệu phải n g ừ n g thực thi cho đến khi có thông diệp tới giúp cho việc đảm bảo tính xác định của c h ư ơ n g trình
rỗ ràng quá trình truyền dữ liệu giữa nhiệm vụ gửi và nhiệm vụ nhận dữ liệu Tính
chất này giúp c ho việc phát triền c hươn g trình dơn gián hơn T uy nhicn khi dó việc hiểu và đảm hào lính cục hộ trờ nôn khó khăn và c ũ n g d ư ợ c c hú ý nhiều nhắt trong
14
Trang 16phần lớn các kiến trúc chia xẻ hộ n hớ chung Việc viết các c h ư ơ n g trinh xác định cũng trờ nên khó khăn.
1.4 Hiệu năng cùa xử lý song song
Tr on g p hấ n này c h ú n g tôi trinh bày một số vấn đề liên q ua n đến hiệu năng cùa
xử lý s ong s o ng b ao gồm: k h ỉ năng tăng tốc độ lính toán, việc cân bằng tài (Load balancing) và sự bế tắc (Deadlock)
1.4.1 Định lu ật A m dah l's
Tr on g nhiều ứ n g d ụn g thực tế đòi hòi thời gian thực, v ấ n đề cần giải quyết có kích thước cố định, do đó khối lượng công việc phải làm c ũ n g tlurờng xác định được trước Định luật (lo Amdahl [91 phát biểu (1967) nh àm đánh giá hiệu năng cùa
VICC tinh toán c ho các bai toán thuộc dạng này
Khi tăng số l ượng B X L trong hệ (hống máy song song, khói lượng công việc
đ ư ạ c phân phối c h o nhiều B XL thực hiện Mụ c tiêu chính là tìm được kết quả cùabài nhanh nhắt có thể hay nói một cách khác là g iả m đến m ứ c tối đa thời gian tính toán
Định luật A m d a h l : Gọi f là phần nhỏ của (hao tác tính toán trong quá trình tính toán phải thực hiện m ộ t cách tuần tụ 0 < f < 1 T ốc độ tối đa s có thể đạt được bằng cách Sừ dụ ng má y tính s ong song với p B XL dượ c c ho bởi c ô n g thức:
s < —— —?— ——
/ + 0 ~ / ) / ?Thời gian cho phần việc xử lý s ong song của ứ ng d ụn g sẽ giảm dần đến 0 khi
ta tăng sổ lượng B XL Thời gian cho phần việc x ử lý tuần t ự luôn là hàng số
llìnli 1-5 S ụ phụ thuộc thời ginn v à n số lirợng 11X1, của định luật Amdahl
Trang 171.4.2 Cân bằng tái
Ciià s ử răng nếu dữ liệu được phân tán trên các bộ n h ớ địa p h ư ơ n g của các
B XL trong hệ t h ống nhiều máy tính, khi đó khối lượng c ô n g việc của các B X L cần phải đượ c phân phôi hợp lý trong suôt quá trình tính toán T r o n g nhiều trường hợp giả sử này là đúng, tuy nhiên trong thực tế điều k hông phải lúc nào cũng thực hiện được Giải pháp dược đưa ra ở đây là cân bằng tải đ ộ ng n h ằ m m ụ c đích làm thay đổi sự phân phối khối lượng công việc giữa các B X L trong q uá trình thực hiện tính toán
ỉ hô ng t h ư ờ n g sau khi phân phối khối lượng c ông việc c ho mồi B XL, quá trình cân bàng tải đ ộn g thực hiện bốn bướ c c ơ bản dưới đây: G i á m sát hiệu năng của mỗi BXL, trao dôi t hôn g tin trạng thái giữa các B XL, tính toán và ra quyết định phân phối lại khối l ượ ng công việc và cuối c ùng là thực hiện viêc c h uy ển đổi d ữ liệu thực
De thực hiện điều này rất nhiều thuật toán để thực hiện cân bàng tải độn g dược
đê xuât í heo kêt quà Znati ct al [14] phân lớp các thuật toán này theo chiến lược tập trung, phân tán hoàn toàn (Fully distributed) và p hâ n tán một nửa (Scmi - distributed)
a) Các th u ật toán cân bằng tải tập trung
N h ằ m đưa ra quyết định có tính chất tổng thể trong việ c phân phối lại khối lượng c ôn g việc cần thực hiện cho các RXL M ột vài thuật toán trong lớp này sử
d ụng t hông tin hệ t hông có tính toàn cục đổ lưu trạng thái c ủa các máy ricng biệt trong hệ thống T h ô n g tin này sẽ cho phép thuật toán p hâ n phối công việc cho các
B X L một cách dễ dàng Tu y nhiên khối lượng t hông tin t ă ng theo tỷ lệ thuận với số lượng các B X L , do đó đòi hỏi khối lượng lớn hộ n h ớ trên m ộ t B X L để lưu t hông tin trạng thái Vỉ vậy các thuật toán thuộc lớp này k h ô n g đ ư ợ c tiếp cận m ột cách rộng
h) Cúc thuật toán cân bằng tải phân tản hoàn toàn
Trong chiên lược này, môi B X L có một bàn sao về t hô n g tin trạng thái của hệ thông Các B X L trao đổi thông tin trạng thái với nhau và s ử d ụ n g các t hông tin này
dể làm thay đổi m ột cách cục bộ việc phân chia công việc T u y nhicn các B X L chỉ
có thông tin trạng thái cục hộ ncn việc cân hẩng tải k h ô ng tốt b ằ n g các thuật toán
16
Trang 18cân b ăng tải tập trung.
c) Cúc thuật toán cân bằng tải phân tán m ột nửa
Các thuật toán thuộc lớp này chia các B XL thành từn g miền T r o n g mỗi miền
sử dụng thuật toán cân bằng tải tập trung để phân phối c ô n g việc cho các B XL
Đổi với các hệ t hống da máy tính, một trong các sự bế tắc p hổ biến là bế lắc
vù ng đệm (Buff er deadloc k) - xảy ra khi mộ t tiến trinh đợi m ộ t t hông điệp mà thông điệp nà y có thể k h ô ng b ao giờ nhận được do v ù n g đệm hệ t h ố n g dã đày
X em xét hệ t hống đa máy tính với các B X L x ử lý k h ô n g đ ồ n g bộ B X L Pj gửi
t hông diệp cho B X L khác Pj không kết khối cho tới khi có thao tác đọc t hông điệp
đó Mặt khác khi B X L Pj gửi t hông điệp cho B X L Pj, nội d u n g của t hòng điệp được lưu trong v ùn g độp của hộ thống cho đến khi B X L Pj nhận và đọc t hông điệp Giả
sử rang trong c ù n g một thời điểm có nhiều B X L c ùng gửi t h ô ng điệp đến B X L Pj và điều này sẽ làm c ho v ù n g đệm bị đầy Việc gửi các t h ông điệp tiếp theo chỉ thực hiện đượ c khi B X L Pj đọc một hay nhiều thông điệp
Giả sử B X L p k là m ột t rong các B X L có khả n ă n g gửi t hông điệp đến B X L Pj
N e u B X L Pj cố g ắ n g đọc t hông điệp do B X L p k gửi đến, n ó sẽ bị kết khối cho đến khi nội du ng t hô n g điệp có trong vùn g đệm R õ ràng B X L p k bị kết khối cho đến khi B XL Pj loại b ỏ một hay nhiều thông điệp từ vù ng đ ệ m, v à n h ư vậy B X L Pị và p krơi vào sự bế tác
ỊTRUW5TÀM ĨHG-:; ĨIN ' :L" ■
Trang 19Hình 1-6 B X L p k kết khối để gùi X cho Pj vì vùng đ ệ m của Pj đầy.
Pj không thể để nhận được X Pj và p k roi v à o s ự bế (ắc
The o kết quà nghiên cứu cùa C offma n và Denning, bốn điều kiện dưới đây là nguyên nhân gây ra sự bể tác
1 Sự loại trừ lẫn nhau: Mỗi tiến trình có sự độc qu yề n trong việc sử dụng tài nguyên cùa nó
2 K h ô n g có sự ưu tiên: Mỗi tiếp trinh k h ô n g ba o gi ờ giải phó ng tài nguycn m à tiến trình đó đang c hiếm giữ cho đến tận khi không còn sử
Trang 20Chương 2 Song song hoá thuật toán tự
2.1 Cac chiên lược phát triển ứng dụng song song
Một câu hỏi đ ượ c đặt ra khi phát triển ứn g d ụ ng song s on g là sự lựa chọn giữa việc ch uy ên đôi từ mộ t ứng đ ụng tuần tự đã có sẵn hay là xây d ự n g mộ t ứng dụng
song s on g từ ban đầu í rong khuôn khổ luận văn, c h ú n g tôi chỉ tập trung vào việc
phát triển ứn g d ụng song song dựa trên ứng dụng tuần tự [15] đã có sẵn
Có ba chiên lược thô ng dụng phổ biến để tạo ra ứ ng d ụ ng s ong song là song song hoá tự động, sử dụ ng các thư viện song song và lưu lại các thành phần chính của c h ươ n g trinh tuân tự Sau đây c húng tôi trình bà y khái quát về các chiến lược này
2 L ĩ Song song hoó tự động
M ụ c đích của chiến lược này là giúp dỡ người lập trình th ực hiện các nhiệm
vụ một cách s o n g song Bộ hiên dịch có thể chấp nhậ n các đoạn mã lệnh và thực hiện song s ong hoá c húng một cách hiệu quà mà k h ô n g cần người lập trình bỏ công sưc I uy nhiên, dicii nay là rất khó trờ thành hiện thực vì khó xây d ựng c ông nghệ cho b ộ biên dịch
Hình 2-1 S ong song hoá (ụ động
2.1.2 X ây (ỉiptg các th ư viện song song
Y t ươ n g cua p h ư ơ n g pháp này là xây các đ oạ n mã lệnh s o n g s ong được sử
d un g lại nhiều lần trong một số ứng dụng thành các thư viện để có thể d ù n g nó xây
d ựn g ưng d ụ n g kh ác một cách dễ dàng I hư viện nà y có thổ đ ư ợ c hình thành theo hai cách, các h thứ n hất bao gói (Encapsulate) các cấu trúc điều khiển của các lớp dối t ượng trong ứ ng đụng, cách thứ hai tiến hà nh cài đặt s o n g s on g một số thuật toán cốt lõi cùa các thủ tục
Trang 21mã nguồn cùa ứng d ụn g tuần tự dã có sẵn.
Hình 2-3 S ử clụnỊỊ lại các thành phần chính
2.2 Các bước cơ bản song song hoá thuật toán tuân tự
Phân lớn các bài toán lập trình đều có nhiều giải pháp để thực hiện song song Mộ t trong các giải pháp đó là s on g s ong ho á các giải thuật tuần tự Phư ơ ng
ph á p thiêl kê này n h ă m dưa ra m ộ t cách tiếp cận cho phé p xét đến các vấ n đề độc lập với máy tính nh ư mức độ song song trong n h ữ n g giai đoạn đầu của thiết kế và
đ ư a n hữn g quyết định liên quan đến loại máy tính cụ thể và o giai đoạn sau Tr ong
p h ư ơ n g phá p này quá trình thiết kế đ ượ c chia thành 4 giai đoạn: Phân chia (Partitioning), truyên thông (Co mmu ni ca ti on ), tổng hợp ( Ag gl ome ra ti on) và cuối
cù ng là ánh xạ (Mapping), ỉ rong 2 giai đoạn dầu m ứ c độ s ong s ong c ũng n hư khả năng m ở r ộng (Scalability) của bài toán đ ượ c chú ý nhiều hơn n h ằ m tìm ra các giải thuật có các đặc tính này I rong các giai đoạn 3 và 4, các tính chắt khác n hư tính
Trang 22cục bộ và các ticu chuẩn có liên quan đến tốc độ sẽ được ch ú ý.
2.2.1 Phân rã
T r on g giai đoạn này những tính toán cần thực hiện c ũ n g n h ư các dữ liệu cần thao tác d ượ c phân rã thành các nhiệm vụ nhó hơn Các vấ n đề liên quan đến n hư số lượng B X L trên máy tính được bỏ qua để tập trung vào việc tổ c hức lại quá trình tính toán n hằ m đạt được m ứ c độ song song cao nhất
! rong giai đoạn này cần tập trung vào việc dưa ra n hiều nhiệm vụ nhỏ nhằm dạt được m ức phân rã mịn (Fine grained deco mpos it io n) c ủa vấn đề C ũ n g n hư việc
đô các hạt cát mịn là dê hơn việc đổ một đố ng gạch, một cách phân rã mịn cho phép đạt được một giải thuật song song ờ mức độ cao nhất
Một cách phiìn rã tốt cilia vấn (lề thảnh các phần nhỏ ba o g ồm cà công việc linh toan và dù liệu mà nó thao tác Khi thực hiện phâ n rã, các lập trình vicn thường tập t rung v à o d ừ liệu c ua vân đc, xác địn h m ộ t cácli phân rã d ữ liệu phù hợp và cuôi cùng là dưa ra các tính toán tương ứng với d ữ liệu phâ n rã Kỹ thuật phân rã
n hư vậy d ượ c gọi là phân rã tlieo miền ( Do ma i n de compos ition) MỘI cách liếp cận khác là phân rã c ông việc tính toán cần dược thực hiện trước hết và sau đó mới xem
\ c ( (lên d ư liệu (lược thao tác Kỹ thuật này dược gợi là phân rã theo chức năng (Functional decompos ition) Dáy là hai kỹ thuật bổ sung cho nhau và có thể dược áp
d ụn g trong các phân khao nhau cua hài toán hoặc cho c ùng m ột hài toán để dạt được các giải thuật s ong song khác nhau
I rong giai đoạn (lâu cùa thiêt kế cần tnính việc nhân bản c ôn g việc tính toán
và dữ liêu, nghĩa là cân dưa ra các nhiệm vụ IIIÍÌ cà c ôn g việc tính toán c ũng như dừ liệu dêu dộc lập với nhau
Vân đè kích c ỡ phân rã (Granularity) sc đ ượ c xét đến t rong các giai đoạn sau khi mà việc nhân bàn tính toán và dữ liệu cho phép giảm hớt chi phí truyền thông
a) Kỹ th u ật phân rã theo miền
Khi p hâ n rã bài toán băng kỹ thuật phân rã theo miền, t rước tiên xót việc phân
rã d ữ liệu cùa bài toán Nc n phân chia dữ liệu thành các p hầ n n hỏ có kích c ỡ b ẳne* cnhau nêu có thê dược I iêp dó c ông việc tính toán c ũn g d ư ợ c phân rã chu yếu là gán mồi phán việc tính (oán với (lũ liệu mà nó than tác Các h phân rã này Ihường
Trang 23dan den một tập các nhi ệm vụ mà mỗi trong số c hú ng ha o gồm d ữ liệu và các thao tóc trốn d ữ liệu dó Một số công việc tính toán có thể đòi hỏi d ữ liệu từ nhiều nhiệm
vụ khác và do vậy phải có sự trao đổi (lữ liệu giữa các nhiệm vụ v ấ n đề này dược xét đihi trong giai đoạn sau cùa quá trinh thiết kế
Dữ liệu (hrợc phân rã có thẻ là d ữ liệu vào cùa c h ư ơ n g trình, kết quà tính toan của e hirang trinh, hoặc các giá trị tính toán trung gian trong c h ư ơ n g trình Có thê có nhiêu cách phân rã khác nhau dựa trên các cấu trúc d ữ liệu khác nhau Một trong n h ữ n g nguyên tắc cần chú ý là tập trung vào các cấu trúc d ữ liệu lớn nhất hoặc các cấu trúc d ữ liệu thườ ng đượ c truy nhập nhất C ác giai đoạn khác nhau cùa qua trinh tính toán có thổ Ihao tác trên các cấu trúc d ữ liệu k h ác nhau hoặc đòi hỏi các cách phân rã khá c nhau cùa c ùng một cấu trúc d ữ liệu T r o n g trường hợp này, các giai đoạn linh toán sẽ dược xét độc lập và cuối c ùng tổn g h ợ p các cách phân rã
và giải thuật song son g d ượ c phát triển cho các giai đoạn khác nhau
b) K ỹ thuật phân rũ chừc năng
Môi cách phàn rã theo chức năng thổ hiên một cách n g h ĩ khác về cùng mộí v;m (Ic I rong Cỉích licp cận này (lầu licn công việc lính (oán cần thực hiện sẽ (lược xét <!èn c h ư k h ô n g phải là (lữ liệu d ư ợ c t ha o tác hời n h ữ n g tính (Oil 11 đỏ Khi tin
p h â n c h i a c ò n g v i ệ c t ính t o á n t h à n h n h ữ n g n h i ệ m VỊI đ ộ c l ập n h a u thì c ô n g v i ệ c liếp theo là xác (lịnh dữ liệu mà mỗi nhiệm vụ sử dụng Nốu n h ữ n g d ữ liệu này là dộc lập thi việc phân rã dượ c hoàn thành Ncu c hú ng giao nhau quá nhiều cần xét đến
cơ ché truyền t h òng giữa các nhiệm vụ đẻ tránh nhân hàn d ữ liệu Dây c ũng là dấu hiệu cho thây vice sir d ụn g kỹ thuật phân rã Ihco miền có thể phù hợp hơn
Mặc dù kỹ thuật phân rã thc.0 miền là nền tàng cùa phần lớn các giải thuật song s ong n h ư n g nên chủ ý đốn kỹ thuật phân rã theo c h ức n ă ng bởi chúng cho một cách nhìn khác với bài toán Chỉ ricng lý do này c ũn g c ho thấy việc xem xét kỹ thuật phan ra nảy la cân thiết khi phát triển giải thuật s ong song Hơn nữa việc tập trung vào c ô n g việc tính toán cần thực hiện có thẻ làm b ộc lộ ra cấu trúc của bài toán và khả n ăn g tối ưu hoá mà đôi khi khó có thể thấy đ ư ợ c nếu chỉ x em xét đen
d ữ liệu
Kỹ thuật phân rã theo chức năng cũng đóng vai trò quan trọng trong việc cấu
true lại c h ư ơ n g trình Một cách phân rà tlico chức năng phân chia k h ôn g chỉ công
22
Trang 24việc tính toán cân thực hiện mà cà đoạn mã c h ư ơ n g trình thực hiện c ông việc tính toán dó và do vậy làm giảm bới mứ c độ phức tạp trong thiết kế tổng thể Ví dụ như việc xây dựn g mô hình má y tính cho một hệ (hống p hứ c tạp có thể đ ượ c thực hiện
n h ư một tập các m ô hình đơn giàn kết nối với nhau qu a các giao diện
c) Tiêu ch nân ilúnh giá ỊỊÌai đoạn pit ân rũ
Sau khi phan rã bill toán cân đưa ra một sô tiêu c hnân đê đánh giá xem việc phân rã như vậy có lối ưu hay không Sau dây là một số tiêu c huẩn để đánh giá:
❖ Liệu số lượng nhiệm vụ dược tạo ra theo cách phân rã có ít hơn số lượng
B X L trong hộ thống má y tính hay kh ôn g? Nế u câu trà lời là không thì giải thuật có thổ có mức linh hoạt thấp trong các giai đoạn thiết kế sau dó
*•’ ( <r chế phân rã dưa ra có tránh d ượ c việc tính toán và lưu trữ thừa
k hô ng ? Nêu câu trà lơi la không thì cách pliân rã có thể k hô ng phù hợp với hài toán khi dữ liệu rất lớn
V L i ẹ u cac nlnọm vụ có kích thước Xcìp xỉ n h a u k h ô n g ? K h i các nhiệm vụ
có kích (hước chênh lệch quá lớn thỉ việc phân chia ch o các BXI lượng
c ôn g việc xấp xí nhau có thể là khó khăn
C ơ chê phân rã có tạo ra sô lượng nhiệm vụ tỷ lệ với kích c ỡ hài toán không? Trong một cách phân rã lý tường khi kích thước bải toán tăng sẽ làm tăng số nhiệm
vụ chư khon g phcii lci kích thươc Ciici môi nhiộm vụ Ncu câu trả lời là kh ôn g thi giíìi thuật song song dược dưa ra có thể k hông giíìi q uyết đ ượ c hài toán với kích c ỡ lớn hơn mặc dù có thêm BXL
2.2.2 Truyền thông
Các nhiệm vụ dược sinh ra trong giai đoạn phân rã là n hằ m được thực hiện
s on g song nlnrng nói c hu ng kh ông thổ được thực hiện một cách độc lập Việc tính toán trong một nhiệm vụ đôi khi cần dán dữ liêu của mộ t n h iệ m vụ khác Khi đó cần
có sự trao đôi d ữ liệu giữa các nhiệm vụ để qu á trình tính toán đ ượ c tiếp lục thực hicn Vice dim ra các dòng thông tin này (lược xác định trong giai đoan truvền ílióng
c ù a q u á trình thicí kế
ĩ r o n g mô hình lập trình được đưíi ra nhiệm vụ/kcnh liên lạc, nhu cầu ỉruyỏn
Trang 25H'.'Mg giũa hai nhiộm vụ dirợc mô hull, hoá n h ư mội kênh Men lạc nói giữa |u,i
n h iệ m vụ trên d ó ,„01 n h i ệ m vụ có (hè gửi <19 liệu và n h i ệ m v ụ kia c ó thè nliặn d ữI.CII đo BAi vậy c ơ ché truyền thông cho một piái Ihuậi có thổ đ ư ợ c xác định trong liỊiị giai đ o ; , < i i ; , i ,lon„ (làu lủ (lịnh nghĩa nhữn g kênh nối (Irực liếp hoặc gián tiếp) giữa nhi ệm vụ cần d ữ liệu và nhiệm VỊ1 sờ hữu dft liệu đó Tiếp đó xác định cácII,ông diệp dược gứi và nhận Ircn các kênh này v í dụ n hư t rong các ngôn n gữ songsong vẽ d ừ liệu chi cần (Un ra các thao tác song s o n g về d ữ liệu c ũn g n h u c o cháphân lán d ữ liại Tuy nhiên việc xét đến các nh iệ m vụ và kênh truyền thông chophép l ậ p (rình v i ê n l ư ự n g hoá d ư ợ c các vấn dề về lính cục bộ c ũ n g n h ư chi phí truyền tlìônp
\ iệc đưa ra một kênh truyền thông là quá trình s uy n g h ĩ và tính toán lýthuyi"t CÒn việc gửi các lhôns điêp liôn quan đến các chi phí cụ thể Bởi vậy cần tranh lạo ra các kcnli và các thao tác truyền thông kh ôn g cần thiết Tố c độ cùa giảith" f c 0ng cỏ íhl- dư<TC ,ổi ưu hoá hàng cách phân tán t hao lác truyền (hông giữa nhiều nhiệm vụ vả lố chức các thao tác truyền th ông nhầ m đạt đ ượ c mứ c độ song
s on g c ao n h ấ t
Việc xác (lịnh chi phí truyền (hông cho giai Ihuậl song s on g sứ dụng kỹ thuật
p M n rn ‘hc° miỏn cỏ íllẻ »•' k,lỏ khăn Kỹ thuật này t rư ác hết phân rã cẩu trúc (lữ lieu Ill,inh cac tạp rời nhau va liên kêt các phần này với c ôn g việc tính (oán (ương ứng ( ong việc thiết ké này có thể In đơn giàn (uy nhiên có các tính toán đòi hỏi dừ liỌu tù nhiều nhiệm vụ khác nhau nôn cần phải trao đổi d ữ liệu giữa các nhiệm vụ tưorng ứng Bài vậy việc lố chức quá trinh truyền thông một cách có hiệu quà có the
là rât khó và thậm chí một cách phân rã (1(711 giàn c ũn g cỏ (hổ đẫn đến một cấu trúc truyền th ôn g p hức tạp
N g ư ợc lại c ơ chế truyền thông trong các giải thuật song s ong đạt dược bảng
kỹ thuật phàn rã theo clurc năng t hường rõ ràng và lư ơ ng ứ ng với đ òn g d ữ liệu trao dôi giữa các n hi ệm vụ Mộ t số cách phân loại các kiểu truyền th ôn g p hổ hiến: cục bộ/toàn cục có cấu trúc /không có cấu trúc, tĩnh/động và đ ồng bộ/ kh ôn g đ ồng hộ:
1 T r ong truyền thông cục hộ mồi nhiệm vụ chi liên lạc với một tập nhòcác nhiệm vụ khác còn truycn thông toàn cục (lòi hòi mỗi nhiệm vụ liên lạc với nhiêu nhièm vu kliik'
Trang 262 I rong truyền thông có cáu trúc mỗi nhiệm vụ và các nhiệm vụ lân cận
nó tạo thành một cấu trúc cụ thể như một cây hay một lưới còn một
m ạ n g truyền thông không có cấu trúc có thể là một dồ thị tuỳ ý
3 'I rong truyền thông tĩnh các đối tác truyền t hô ng là k hô ng thay đổi theo thời gian còn với cấu trúc truyền thông động các đối tác có thổ đ ượ c xác định trong thời gian chạy dựa trên dữ liệu cần tính toán và thay đổi theo thời eian
I rong truyên thông đông bộ thì việc thực hiện của nhi ệm vụ gửi và nhiệm vụ nhận dữ liệu đ ượ c kết hợp với nhau còn trong truyền t hô n g kh ôn g đ ồng bộ thì nhiệm vụ càn d ữ liệu có thể nhận được dữ liệu m à k hô ng cần s ự kết hợp của nhiệm
vụ gửi
n) Truyền thông cục bộ
Câu trúc íniycn thông cục bộ là câu (rúc liên lạc mà mỗi thao tác chỉ đòi hỏi
dư liệu tư một tập nho các nhiệm vụ khác Khi dó có thể định nghĩa rõ ràng các kênh truyền th ông nối giữa nhiệm vụ tính toán và các nhiệm vụ giữ (lữ liệu, dua ra các thao tác gửi và nhận tương ứng giữa các nhiệm vụ cần và lưu trữ d ữ liệu
Dê minh hoạ cho khái niệm này, ta sẽ trình bày cấu trúc truyền thông cùa một giải thuật số có tên gợi là p h ư ơ n g pháp sai phân hữu hạn Jacobi 117] T r o n g lớp các
ph ương pháp sò nay, các giá trị tại các đỉnh của một lưới nhiều chiều d ượ c cập nhật liên tục bằng cách thay giá trị tại một đỉnh hảng hà m của mộ t số giá trị ờ các (lỉnh lân cận Ví dụ xét việc cập nhật giá trị mộ t phần lừ Xi,j trong một lưới hai chiều X:
- 4 X ' > X ' ' l + X ' l + K U + K U
Việc cập nhật này được lặp di lặp lại dẻ tính chuồi các giá trị x ' i j , X \ ị
T rong đó ký hiệu X ‘jj biẻu diễn giá trị cùa điểm Xjj tại thời điểm t Gi à sử rằng ờ dây kỹ thuật phân rã theo miền được sử dụng để tạo ra các nhiệm vụ nhỏ cập nhật lừng điểm trên lưới hai chiều Khi dó một nhiệm vụ tính giá trị tại điểm Xj.j phải tính chuôi X 1 ij, X 2j j , Việc tính toán này đòi hòi giá trị của bốn chuỗi lân cận
Trang 27Y 0 Y 1 Y 2
5 ij+l 9 y M,j+l •••
là n hữ ng giá trị dược tính bởi 4 nhiệm vụ x ử lý 4 điểm lưới X j.jj, X.Hj, Xi.,.1
và Xj ,, 1 nghĩa là bốn lân cận cùa nó trên lưới Đe truyền các giá trị này, các kênh nối giữa n hi ệm vụ yêu cầu giữ liệu và nhiệm vụ lưu trữ dữ liệu được xây dựng C ơ chế xây d ự n g này tạo ra cấu trúc kcnli n hư hình dưới
□
□ ; □ ( 6 ) □ ) , □ )
Moi nhiệm vụ sẽ thực thi theo logic sau:
b) Truyền f/tfliig toàn cục
Một thao tác truyền thông toàn cục là một thao lác truyền th ô ng co sự tham gia cua nhiêu nhiệm vụ Khi một thao (ác như vậy d ư ợ c thực hiện việc xác định các cặp nhiệm vụ giri và nhận d ữ liệu đôi khi lò chưa dù bởi một cách tiếp cận như vậy dân đên l ượng dữ liệu gửi và nhận là quá lớn và giới hạn khả nă n g thực hiện song song I lay xct vân dê lliực hiện một lliao tác rút í>ọn s o n g song như việc tính N số
Trang 28việc nôi N nhiệm vụ thành một m à ng một chiều.
c) Truyền thông động và không có cấu trúc
Tát cả các ví dụ đ ượ c dưa ra ờ phàn trước đều là các truyền thông tĩnh và có càu trúc, trong dó cơ chế licn lạc giữa các n hiệ m vụ th ườ n g có dạng hình cây hoặc
d ạng lưới và k hô ng thay dổi theo thời gian Tuy nhiên trong thực tế cơ chế licn lạc
có thể phức tạp hơn rát nhiều Một ví dụ đượ c đưa ra là p h ư ơ n g pháp phần tử hữu hạn trong tính toán kỹ thuật trong đỏ lưới tính toán đượ c xây d ự n g dựa trên một vật thể kỳ dị Khi đó cấu trúc truyền thông tại mỗi điểm trên lưới là k hông chuẩn và
p hụ thuộc vào dữ liệu c ũng n h ư có thể thay dổi theo thời gian nếu lưới bị thay đổi
t h e o t h ờ i g i a n
C ơ ch ế t r u yề n t h ô n g k h ô n g cấu trúc có thổ k h ô n g g â y ra n h ữ n g k h ó khăn
t rong nhữn g giai đoạn (lầu cùa thiết kế bời có thể dề mỗi n hiệ m vu xử lý một điểm
và xây dưng kênh truyền thông theo mỗi cạnh của dồ thị phụ thuộc chì liệu ( De pende nc y graph) Tuy nhiên cơ chc truyền t hông k h ô n g cầu trúc thường gây ra khó khăn trong các giai (loạn tổng hợp và ánh xạ Mơn nữa đổ tạo ra các nhiệm vụ
có kích tlurớc xấp xỉ nhau và giảm thiểu chi phí truyền t hô n g licn nhiệm vụ có the đòi hỏi nhữ ng giải thuật phức tạp Ncu cơ chế truyền t hông là đ ộn g thỉ có thể sẽ phải sử dụng các giải tluiật này thường xuycn trong c h ư ơ n g trinh và khi đó chi phí thực hiện nó sẽ cao hơn lọi ích thu dược
(ỉ) Truyền thông không đồng bộ
Tr ong truyền t hông đồ ng bộ liến trinh gửi d ữ liệu và tiến trình nhận dữ liệu luôn biết được khi nào càn đến các thao tác licn lạc và việc gửi d ữ liệu giữa hai bcn được xác định rõ ràng Tr ong truyền t hông k hông đ ồ ng bộ tiến trinh gửi khô ng thế xác định được khi nà o thì tiến trình nhận cần dữ liệu và bởi vậy tiến trình nhận phải trực tiếp yêu câu d ừ liệu từ tiến trình gửi
Tinh h u ố ng này (hường xảy ra khi việc lính toán có d ạ n g m ột tập các nhiệm
vụ truy nhập định kỳ đổ ghi hoặc đọc dữ liệu từ một cấu trúc d ữ liệu chia sẻ Giả sử
r ăng cấu trúc d ữ liệu này quá lớn hoặc bị truy nhập quá nhiều nên không thể dược
xử lý bời chỉ mọt nhiệ m vụ riêng lè Bời vậy cẩn có cơ chế phân tán cấu trúc d ữ liệu trcn và hỗ trợ dọc ghi k h ô n g đồng bộ Có thổ (lưa ra các cơ chế thực hiện sau:
1 Càu trúc d ữ liệu (lược phân tán trong các nhiệm vụ tính loán, Mồi nhiệm
Trang 29vụ thực hiện các tính toán và tự đưa ra yê u cầu về d ữ liệu đến các nhiệm
vụ khac Nó cũng tự động ngăt theo chu kỳ việc tính toán của mình đểkiêm tra (Polling) các yêu cầu từ các nhiệm vụ khác
2 Cầu trúc (lữ liệu dược hao bọc hởi một tập thứ hai là các nhiệm vụ xử lýyêu cầu d ọ c ghi
3 Tr ên một má y tính hỗ trợ mò hình lập trình chia sẻ bộ n h ớ c hung các nhiệm vụ tính toán có thể truy nhập đến d ữ liệu chia sẻ m à không cần đên m ộ t c ơ chê dan xêp đặc biệt nào T u y nhiên cần chú ý để các thao tác đọc ghi được thực hiện theo trình tự h ợp lý
Môi chiên lược được dưa ra trên đây có n h ữ n g ưu n h ư ợ c điểm khác nhau vàkhả năng thực hiện của môi cách tiếp cận c ũn g phụ thuộc và o m á y tính cụ thể.Chiến lược thứ nhất có thể đưa dến n hữ ng c h ư ơ n g trình rối rám và không có cấutrue bơi việc kiêm tra phai đ ượ c dưa vào trong loàn hộ đoạn mã của c h ư ơn g trình
Ch iê n lược thứ hai có câu trúc hơn bởi việc đọc ghi và o cấu trúc chia sẻ đ ượ c thựchiện hởi một tập các nhiệm vụ riêng biệt Tuy nhiên chiến lược nà y k hô ng khai thác
d ư ợ c tính cục bộ cùa thông tin bời theo chiến lược này khôn g có d ữ liệu cục hộ tất
cả các thao tác đọc ghi đều đòi hỏi phải có thao tác truyền thông H ơ n nữa việcchuyển giữa nh iệ m vụ tính toán và nhiệm vụ x ử lý d ữ liệu có thể đòi hỏi chi phí caotrên một số má y tính
e) Tiêu chuẩn đánh giá thiết k ể truyền tlìông
Có the sir d ụn g một số ticu chuẩn sau đẻ dánli giá các cấu trúc truyền (hông việc xem xét các tiêu chuẩn này cũng cho phép đánh giá khi n à o giải thuật vi plĩạm các nguyên tắc đó và tại sao:
❖ Sô lương thao tác truyền thông của các nhiệm vụ có xáp xỉ nhau hay không? MỘI c ơ chế truyền thông kh ôn g cân bằng ch o thấy một cầu trúc khó có khả n ăng m ở rộng Khi đó cần kiểm tra lại thiết kế để tỉm xem
liệu có khả năng phân phối các thao tác truyền thông một cách cân bằng
hơn không Ví dụ khi mộ t cấu trúc d ữ liệu đ ượ c truy nhậ p t h ườ n g xuyên
hãy tính đến việc nhân hàn cầu trúc (hr liệu (tó
❖ Số lượng nhiệm vụ mà mồi nhiệm vụ cần liên lạc có lớn hay không?
28
Trang 30Nếu mộ t nhiệm vụ cần liên lạc với rất nhiều nhiệm vụ khác cần xem xétkhả năng tlụrc hiện các thao tác truyền thông toàn cục như ván dồ tính tổng.
❖ Các thao tác truyền thông có thể đ ượ c thực hiện đ ồn g thời hay không?
N ê u câu trà lời là k hô ng thỉ giải thuật có thổ là k h ô n g hiệu quả và không
có khá năng m ờ rộng Có thể sử dụng chiến thuật chia để trị để tìm ra khả nă ng llụrc hiện song song
Việc tính toán của các nhiệm vụ khác có thể được thực hiện đ ồng thời hay
k hông? Nêu cau tra lời la không thì việc thực hiện giải thuật có thẻ là không hiệuqua và cần tìm cách sắp thử tự lại các thao tác truyền thông và tính toán hoặc xem xét lại dặc tà cùa vấn dề
2.2.3 Tổng hợp
Sau hai giai đoạn đầu bài toán dược phân rã thành m ột tập các nhiệm vụ cũngnhư câu trúc truyền thông cần thiết dể cung cắp d ữ liệu mà các nhiệm vụ này cân(lên ỉ uy nhiên giải thuật song song vần trừu l ượng hời nó chưa đ ượ c chuyên biệthoá để có thổ đ ượ c thực hiện một cách hiệu quả trên một lớp các má y tính songsong cụ thè Nêu n hư sổ lượng nhiệm vụ tạo ra lớn hơn n hiều số lượng B X L trongmáy t í n h va việc thực hiện các nhiệm vụ nhỏ là k h ô n g hiệu quả (hì giải thuật dưa ra
có thê là khô ng phù hợp
í rong giai đoạn thư 3 này quá trình thiết kế giải thuật s ong song dược chuyển
từ giai đoạn trừu Urạng sang cụ thỏ Các c a ché phân rã và truyền thông được xemxét lại dê giãi thuật dược lliực hiện một cách hiệu quà trcn một lớp các má y tỉnhsong song cụ thổ Dặc biệt trong giai đoạn này tính hiệu qủa cùa việc kết hợp một sốnhiệm vụ nho thành số ít các nhiệm vụ lớn hơn c ũn g n h ư khả n ăng nhân bản d ữ liệu
và tính toán đ ư ợ c xct đến
Nếu n h ư số lượng các nhiệm vụ đưa ra sau giai đoạn tổng hợp vần còn lớn hơn
sô l ượng B X L thì giải thuật đưa ra vẫn còn t ương đối trừu t ư ợ n g bởi vấn đề ánh xạ các nhiệm vụ vào các BXL vẫn c hưa dược giải quyết Tha y vào đó có thể giám số lượng nhiệm vụ cần (hực hiện sau giai đoạn tổng hợp xu ống còn 1 nhiệm vụ Diều
này là có thè thực hiện (lirực khi máy lính song song hoặc môi trưởng phá! Iriốn
Trang 31c hư ơn g trình dối hòi một c h ươ n g trình có dạng S P M D T r o n g tr ườn g hợp này thiết
kê dưa ra là tirnrng dối dầy đủ hời nó định nghĩa p nhiệm vụ thực thi trên p B XL và van dề ánh xạ c ũ n e được giải quyết
Có ha yêu cẩu đôi khi m â u thuẫn nhau khi đ ư a ra quyết định về vấn đề tổng
h ợp và nhân hàn, đó là: giảm chi phí truyền th ông bằ n g các h tăng kích thước các nhiệm vụ, bảo toàn sự mề m dẻo đối với các quyết định về ánh xạ và khả năng mở
r ộng sau này, giảm chi phí phát triển phần mềm
a) Tâng kích thước nhiệm vụ
Một trong n h ữ n g ticu chuẩn quan trọng ảnh h ư ờ n g đến tốc độ thực hiện song
s ong là chi phí truyền thông T r ong phần lớn các má y lính s o n g song, việc tính toán luôn phải d ừ n g lai để thực hiện các thao tác truyền nhận thông điệp Bởi thời gian
có ích là thời gian tính toán ncn có thể làm c h ư ơ n g trình chạy nhanh hơn bằ ng cách giảm thời gian truyền thông D o vậy tốc độ thực hiện c h ư ơn g trình sẽ đ ượ c cài thiện khi số l ượng dữ liệu phải gửi là ít đi Mặc dù kh ôn g rõ ràng lắm song tốc dộ thực hiện c h ươ ng trình tăng lên khi số lượng thông diệp (Me ss ag e ) giảm đi m ặ c dù lượng
d ừ liệu eửi đi là nh ư nhau
Ngoài chi phí truyền thông c ũng cần tính đến chi phí để sinh ra các nhiệm vụ mới Hãy xét giải thuật (luyệt cây, nếu với mỗi nút mới đ ư ợ c d uyệt lại tạo ra một nhiệm vụ mới thì chi phí sinh ra nhiệm vụ mới sẽ là đ á n g kể
♦> Iỉiệu ứng chuyển từ bề mặt sang thế tích
Nêu sô đổi tác truyền thô ng của một nhiệm vụ là nhỏ thì việc kết hợp nhiều nhiệm vụ thành mộ t nhiệm vụ lớn hơn thườn g làm giảm sổ thao tác truyền thông
c ũng như lượng dữ liệu cần truyền Hiệu ứng này đ ư ợ c gọi là hiệu ứ ng chuyển từ bề mặt sang thể tích
Nói một cách khác nhu cầu về truyền thôn g của một n h i ệ m vụ tỷ lệ với bồ mật miên con mà nó x ử lý Với các bài toán hai chiều thi bề mặt tỷ lộ với kích thước hài toán còn thể tích tỷ lộ với bình p h ư ơ n g của kích t hướ c bài toán Bởi vậy lỷ lệ truyền
t h ôn g /tính toán sẽ giảm x u ố n g khi kích thước của m ột nhiệm vụ tăng lên
**** Nhân bàn tính toán
Dôi khi lộp trình viên cần thực hiện việc nhân bản tính toán (T h ực hiện tính lại
30
Trang 32các giá tri dã dược lính hời các nhiệm vụ khác) dể giảm chi phí truyền thông Ví dụ xct một hiến thể của bài toán tính tổng được đưa ra trong phầ n tnrớc trong đó các nhiệm vụ tham gia vào việc tính tổng đều cần đến giá trị tổng thu được.
Một cách tiép cận đơn giản là tính giá trị t ổn g đó tại m ộ t nhiệm vụ và sau đó quà ng bá giá trị đó đên tât cả các nhiệm vụ còn lại.Việc q u ả n g bả có thể sử dụng cấu trúc truyền thông n hư trong quá trình t í n h t ổ n g và b ở i vậy c ông việc có thể dược hoàn thành trong 2(N-1) hước hoặc 21ogN b ướ c tuỳ t huộc và o cẩu trúc truyền thông được sử dụng
•ĩ* Tránh các than tác truyền thông
Việc kết hợp các nhiệm vụ là có lợi nhất khi phân tích cho thấy ràng các đòi hoi về truyền thông khiến cho các nhiệm vụ kh ôn g thổ được thực hiện đ ồn g t h òi
h) ỉìâo ilủm tính m ềm dẻo
N h ư n g qiivêt clịnh thiết kố trong giai đoạn tổng hợp rất dễ dẫn tiến việc giới hạn khả năng m ở rộng cùa giải thuật một cách k hô ng cần thiết Ví dụ n h ư việc chỉ phân rà theo một chiều cấu trúc d ữ liệu nhiều chiều hời cho ràng cách phân rã nlnr vậy dã c u n g cá p (lù m ứ c đ ộ s o n g s o n g cần thiết c h o số l ượ n g B X L hiện có SC là sai lâm khi cân chuyển ứng d ụ n g sang các hệ máy tính s o n g song lớn hơn
Kha năng tạo ra sô lượng nhiệm vụ thay đôi là quan trọng đổi với tính m ờ cùa giải thuật Một giải thuật song song tôt không cần phải thay (lổi nhiều khi số lượng BXL tăng lên Sự nicm dẻo này c ũng là cần thiết khi phải thay đổi mã c hư ơn g trình
đê phù hợp với một kiên trúc má y tính riêng biệt N ế u các nhiệm vụ thường xuycn phải d ừn g công việc tính toán đổ đợi dữ liệu từ các nhiệm vụ khác thi có thể ánh xạ nhiều nhiệm vu n hư vậy và o một 13XL Khi dó một nhiệm vụ ờ trạng thái đợi không dân (lên việc B X L rơi vào trạng thái rỏi bởi có thể có các nhi ệm vụ khác da ng (V trong trạng thái thực thi N h ư vậy quá trình truyền thông của mộ t nhiệm vụ trùng với quá trình tính toán cùa một nhiệm vụ khác
c) Giảm chi p h í x ây (lụng phần mềm
C h o đên nay các lựa chọn vê tông hợp đều d ựa trcn giả thiết là cần tăng sự hiệu q u ả và tính mề m deo của giải thuật song song Một vấn đề nữa c ũng quan trọng, dặc hiệt là khi song song hoá các giải thuật tuần tự cỏ sàn là các chỉ phi phát
Trang 33triên cân thiết với mỗi c hiến lược p hâ n rã t ư ơ n g ứng N h ì n t ừ g ó c độ n à y c hiến lược phân rã tốt nhất là chiến lược đòi hỏi thay đổi mã n g u ồ n ít nhất.
T h ô n g t h ư ờ n g giải thuật s on g s ong đ ư ợ c thiết kế chỉ là mộ t p h ầ n c ủa một hệ
t hống lớn hơn Khi đó m ộ t trong n h ữ n g y ế u tố c ần c h ú ý là c ơ c hế p h â n phổi dữ liệu
đ ượ c sử d ụ n g bởi n h ữ n g thành phần khá c trong c h ư ơ n g trình Ví dụ giải thuật so ng song tốt nhất c h o m ộ t pliần c ủ a c h ư ơ n g trình đòi hỏi phải p h â n rã c ấu trúc d ữ liệu theo 3 chiêu trong khi đ ó d ữ liệu sinh ra tr on g giai đ o ạ n t r ư ớc đó c ủa c h ư ơ n g trình lại là d ữ liệu hai chiều Khi đó một tron g 2 giải thuậ t c ần phả i Ihay đổi ho ặ c cần có một giai đ oạ n tru ng g ian để c h u yể n đổi d ạ n g d ữ liệu
d) Tiêu chuẩn đánh g iả g ia i đoạn tổng hợp
Có thể đ ư a ra m ột số nguyê n tắc đổ k i ể m tra lại n h ữ n g q u y ế t định đ ư a ra trong giai đoạn t ỏn g hợp n h ư sau:
♦> Viêc tổ ng h ợ p có làm gi ảm chi phí truyền (h ôn g b à n g c ách làm tăng tính cục hộ cùa d ữ liệu hay k h ô n g ? Nốu câu trả lời là k h ô n g thì cần k iể m tra lại giải thuật dể tìm x em có thổ đạt đ ư ợ c đ iề u n à y b ằ n g c ơ c hế tổng h ợp khá c không
*1* N ê u giai đ oạ n lổng hợp có nhân hàn tính toán, cần kiểm tra x e m ích lợi
do việc n hâ n bàn tính toán dưa lại c ó n h i ề u h ơ n chi phí cần bỏ ra hay
k h ô n g ? (Dối với l ư ợ ng B X L và kích t h ư ớ c bài toán cụ thổ)
N e u tr on g giai đoạn tổ ng hợp có nhân bản (lữ liệu cần kiểm tra xem điều
nà y có làm g iả m khả n ă n g m ở r ộn g của giải thuật clo giới hạ n về số lượ ng B X I h o ặ c kích thướ c d ữ liệu hay k h ô n g ?
**** Giai đ oạ n l ổ n g h ợ p có dẫn đến các n h i ệ m vụ c ó chi phí tính toán va
t r u y ề n t h ô n g x ấ p XI n h ư n h a u h a y k h ô n g ? K h i k í c h t h ư ớ c c ủ a n h i ệ m v ụ
đ ư ợ c tạo ra c à n g lớn thì việc tạo ra c ác n h i ệ m v ụ c ó chi phí xấ p xỉ nhau
c à n g trở nên q ua n trọng
♦í* Sổ lượng nhiệm vụ có thổ tăng lên nếu tăng kích thước của bài toán hay
k h ô n g ? N ế u câu trả lời là k h ô n g thi giải thu ật đ ư a ra k h ô n g thể giải quyết đ ư ợ c bài toán có kích th ướ c rất lớn dù c ó hệ t h ổ n g m á y tính s o n g
so n g lớn hơn
3 2
Trang 34❖ Nếu n hư việc kết hợp các nhiệm vụ làm g i ả m khả n ăng thực hiện song song, can kiein tra xem khả năng thực hiện so ng s o n g của giải thuật có
dù cho các máy tính hiện tại và t ươ ng lai k h ô n g ? N ế u giải thuật có mức
dọ song s ong cân thiêt có thê đó sẽ là m ô hỉnh có hiệu q u ả nhất bởi các
mô hình khác sẽ có chi phí truyền t hông cao hơn
❖ Việc làm giảm số lượng nhiệm vụ có dẫn đến việc mấ t cân bằng tải, làmlăng chi phí phát triển hoặc giảm khả n ă ng m ở rộng hay không? Nế ukhông xét đến các yếu tố khác, một c h ư ơ n g trình tạo ra sổ ít các nhiệm
vụ th ườ n g đơn giàn và hiệu qủa hơn các giải thuật tạo ra nhiều nhiệm
v ụ
❖ Khi s ong s on g hon một giải thuật tuần tự có sẵn, cần chú ý đến chi phí cho việc thay đổi mã tuần tư Nế u chi phí là cao h ã y xem xct các giải thuạt thay the có khả năng sử dụn g lại m ã tuần tự nhiều hơn sau dó sử dụng mô hình tôc độ (1ê (lánh giá xem việc thay thế n h ư vậy có hiệu qua không
2.2.4 Anh xạ
I rong giai đoạn CUOI cung của quá trình thict kê, việc ánh xạ nhiệm VII nào chạy ờ bộ xử lý nào sẽ được thực hiện, v ấ n đề này k hông này sinh trong các máy tinh tu an tự hoặc các má y tính s ong song chia xè hộ n h ớ c h u n g bởi c h ún g cung cắp
kh năng lập lịch nhiệ m vụ tự động Tuy nhiên cơ chế ánh xạ tổng quát chưa đượcphát triển cho phàn lớn các máy tính s ong s ong khác và bài toán ánh xạ vẫn là một vân đê khó cân xử lý khi thiết ké các giải thuật so ng song
M ụ c tiêu chủ y ế u cùa v iệ c đ ư a ra giải t h u ậ t ả n h xạ là g i ả m thiểu chi phí truyền thông Có hai chiến lược dược sử dụ ng nhăm đạt m ụ c ticu này:
❖ Đặt các nhiệm vụ có khả năng chạy so ng so ng lên các B XL khác nhau
vù bời vậy làm tăng tính song song của giải tluiật
❖ Đặt các nhiệm vụ liên lạc thường xuyên với nhau lên cùng một BX L nhằm là tăng lính cục hộ