Cách th c xây d n gm tch ng trình song song và phâ nb

Một phần của tài liệu Luận văn: Nghiên cứu tính toán lưới và thử nghiệm một số thuật toán lý thuyết đồ thị pdf (Trang 29 - 138)

phân b

Phát tri n thu t tốn là m t ph n quan tr ng trong vi c gi i quy t v n đ

khi s d ng máy tính. M t thu t tốn tu n t v c b n là m t ph ng pháp th c hi n hay là m t chu i tu n t nh ng b c c b n đ gi i quy t m t v n đ đ c đ t ra b ng cách s d ng máy tính tu n t . T ng t , m t thu t tĩan song song là m t ph ng pháp gi i quy t v n đ d a trên vi c s d ng nhi u b x lý. Tuy nhiên, đ ch ra đ c m t thu t tĩan song song khơng đ n gi n nh là ch ra t ng b c c th . Mà là m t m c đ nào đĩ, m t thu t tĩan song song ph i đ c thêm vào tính đ ng th i và ng i thi t k ra thu t tốn c ng ph i ch ra t p h p nh ng b c cĩ th x lý đ ng th i. i u này nh m t n d ng đ c kh n ng tính tốn c a các máy tính song song. Trong th c t vi c thi t k ra m t thu t tĩan song song là khá ph c t p, nĩ cĩ th bao g m m t vài hay t t c nh ng đi u sau:

• Ch ra nh ng ph n c a cơng vi c cĩ th đ c th c thi đ ng th i.

• Ánh x các ph n c a cơng vi c vào nhi u b x lý ch y song song.

• Phân tán d li u nh p, xu t và trung gian cùng v i ch ng trình.

• Qu n lý truy c p vào d li u chung gi a các b x lý.

• ng b hĩa các b x lý khi th c thi các ch ng trình song song

2.4.1. Các thu t ng c n b n

ki n tiên quy t đ rút ng n th i gian gi i quy t tồn b v n đ . Các tác v cĩ th khơng cùng kích th c. ¬ th ph thu c : là m t th hi n s ph thu c gi a các tác v và tr t t th c hi n gi a chúng. M t đ th ph thu c là m t đ th cĩ h ng trong đĩ m i nút c a cây là m t tác v và c nh cĩ h ng th hi n s ph thu c gi a chúng. M t tác v ch đ c th c hi n khi các tác v tr c nĩ (cĩ c nh n i) đ c th c hi n. Trong đ th ph thu c t p h p c nh cĩ th r ng. Hình 2-8 : th ph thu c tác v

¬ Granularity : s l ng và kích th c c a các tác v sau b c phân

h ach đ c g i là granularity c a b c phân h ach. B c phân h ach m t v n đ l n thành m t s l ng l n các v n đ nh đ c g i là fine-grained và thành m t s l ng nh các v n đ l n đ c g i là coarse-grained.

¬ th t ng tác : là mơ hình th hi n s t ng tác gi a các tác v .

Các nút trong đ th t ng tác th hi n các tác v cịn các c nh n i th hi n t ong tác gi a chúng. Các cung trong đ th t ng tác th ng là cung vơ h ng. T p h p c nh thu ng là t p h p cha c a t p h p c nh c a đ th ph thu c

Hình 2-9 : thi t ng tác trong bài tốn nhân ma tr n v i vector

2.4.2. Thi t k thu t tốn song song

Phân chia m t cơng vi c tính tốn thành các ph n nh h n và ánh x chúng vào các b x lý khác nhau đ th c hi n song song là 2 b c c b n trong v êc thi t k m t thu t tĩan song song.

2.4.2.1. M t s ph ng pháp phân ho ch

M t trong nh ng b c c b n mà chúng ta c n làm đ gi i quy t m t v n đ theo h ng song song là phân chia nh ng phép tính tốn mu n th c hi n thành mơt t p h p các tác v nh h n đ x lý đ ng th i nh trong đ th ph thu c tác v . Trong ph n này chúng ta s mơ t m t vài k thu t phân h ach ph bi n cho x lý đ ng hành. Các k thu t này khơng ph i là t t c các k thu t phân h ach cĩ th cĩ. Thêm vào đĩ, nh ng ph ng pháp phân h ach

đây khơng b o đ m s d n t i nh ng thu t tốn song song t t nh t cho m t v n

đ nào đĩ. M c dù cịn m t vài thi u sĩt, nh ng các k thu t phân h ach đ c

đ c p trong ph n này là đi m b t đ u t t cho nhi u v n đ và m t hay nhi u s k t h p c a các k thu t này cĩ th đ c dùng đ đ t đ c các phân h ach hi u qu cho r t nhi u l ai v n đ .

Các k thu t phân h ach phân h ach đây cĩ th phân thành các l ai

Phân h ach đ quy là m t ph ng pháp dùng đ t o ra s đ ng hành trong nh ng v n đ cĩ th đ c gi i quy t b ng ph ng pháp chia-và-tr . Trong k thu t này tr c tiên m t v n đ đ c gi i quy t b ng cách phân chia nĩ thành t p h p các v n đ con đ c l p v i nhau. n phiên các v n đ con l i ti p t c áp d ng cách th c phân h ach đ quy thành các v n đ con khác nh h n. Cu i cùng là chúng ta s th c thi đ ng hành các v n đ con đ c l p này, k t qu c a v n đ l n là s k t h p k t qu c a các v n đ con nh h n.

Phân ho ch d li u

Phân h ach theo d li u là m t ph ng pháp phân ho ch hi u qu và

đ c s d ng nhi u nh t trong vi c xác đnh tính đ ng hành trong các thu t tốn đ cĩ th thao tác trên các c u trúc d li u l n. Ph ng pháp này bao g m 2 b c. Trong b c 1, d li u trong b c tính tĩan s đ c phân ra thành t ng ph n, và trong b c 2, ph n d li u này s đ c chuy n thành các tác v . Nh ng thao tác mà các tác v th c hi n trên các ph n d li u khác nhau th ng là t ng t nhau hay đ c ch n t t p h p các thao tác nh h n.

Chúng ta s xem xét c th các cách phân chia d li u cĩ th ph n bên d i. Nhìn chung, thì ng i thi t k ph i t tìm ra và đánh giá các cách phân chia d li u đ quy t đnh xem cách nào phân h ach “t nhiên” và hi u qu nh t.

¬ Phân chia d li u xu t

Trong nhi u ph n tính tốn, t ng ph n xu t cĩ th đ c x lý đ c l p v i các ph n khác. Trong nhi u ph n tính tốn nh v y, vi c phân chia d li u xu t t đ ng d n đ n vi c phân h ach nh ng v n đ thành các tác v , v i m i tác v đ c k t gán cho cơng vi c tính tốn m t ph n c a k t qu xu t.

vd: nhân ma tr n

Hãy xem v n đ nhân 2 ma tr n nxn A và B, k t qu tr v là ma tr n C. Tr c tiên ta phân t ng ma tr n thành 4 kh i hay ma tr n con, b ng cách chia các chi u c a ma tr n theo 1 n a. 4 ma tr n con c a ma tr n k t qu C, m i ph n cĩ kích th c n/2 x n/2, cĩ th đ c tính tĩan đ c l p v i nhau b i 4 tác v .

Hình 2-10 : (a) Phân các ma tr n nh p và xu t thành các ma tr n con (b) Phân ho ch phép nhân ma tr n thành 4 tác v

H u h t các thu t tốn ma tr n, bao g m nh n ma tr n v i vector và nhân ma tr n v i ma tr n, cĩ th đ c cơng th c hĩa thành các thao tác trên kh i ma tr n. Trong các cơng th c này, t ng ma tr n đ c xem nh bao g m các kh i hay các ma tr n con, các phép tính tốn đ c th c hi n trên t ng ph n t và đ c thay th t ng ng b i các phép tĩan trên các kh i ma tr n con. K t qu cĩ đ c trên t ng ph n t hay trên các kh i là t ng t nhau. Thu t tốn ma tr n kh i th ng đ c dùng đ h tr cho vi c phân h ach.

Chúng ta ph i chú ý là phân h ach theo d li u khác v i phân h ach các phép tính thành các tác v . M c dù 2 khái ni m này th ng cĩ liên h v i nhau, và cái đ u th ng h tr cho cái sau, m t k t qu phân h ach d li u đã cho khơng ch cĩ m t cách đ phân chúng thành các tác v .

¬ Phân chia d li u nh p

Phân chia theo d li u xu t ch cĩ th đ c th c hi n n u t ng k t qu xu t cĩ th đ c tính tốn m t cách t nhiên theo ch c n ng nh p. Trong nhi u

nh v y, vi c phân chia theo d li u nh p là hồn tồn cĩ th , và sau đĩ dùng k t qu này đ th c hi n đ ng th i vi c tính tốn. T ng tác v đ c t o ra cho t ng ph n d li u nh p và tác v này s s d ng t i đa các phép tính cĩ th th c hi n trên các d li u c c b này. L u ý là nh ng gi i pháp cho các tác v

đ c đúc k t t d li u nh p cĩ th khơng gi i quy t đ c m t cách tr c ti p v n đ g c. Trong nh ng tr ng h p nh v y, thì k t qu tính tốn cĩ th đ c th c hi n b ng cách “n i b t” lên phía trên.Ví d nh khi tìm t ng c a m t chu i g m N s dùng p ti n trình (p < N), chúng ta cĩ th phân chia ph n d li u nh p thành p ph n con (cĩ kích th c g n b ng nhau). T ng tác v th c hi n c ng các s trong t ng ph n con. K t qu cu i cùng là c ng c a p ph n con v a đ c tính.

¬ Phân chia c d li u xu t và nh p

Trong nhi u tr ng h p vi c phân chia theo c k t qu xu t và d li u nh p cĩ th làm t ng kh n ng x lý đ ng th i.

¬ Phân chia d li u trung gian

Các thu t tốn th ng cĩ d ng x lý g m nhi u giai đ an khác nhau, trong đĩ k t qu xu t c a giai đ an này là k t qu nh p c a giai đ an theo sau nĩ. Quá trình phân h ach cho nh ng thu t tốn nh v y cĩ th đ c th c hi n b ng cách phân chia theo d li u nh p hay theo d li u xu t c a m t giai đ an trung gian. Phân chia theo d li u trung gian đơi khi d n t i kh n ng x lý

đ ng th i cao h n so v i khi th c hi n trên d li u nh p hay xu t. Thơng th ng trong gi i quy t m t v n đ nào đĩ thì d li u trung gian khơng đ c phát sinh m t cách t ng minh và trong khi c u trúc l i các thu t tĩan ban đ u ng i ta cĩ th c n đ n d li u trung gian đ t o ra s phân h ach.

vd: nh trong ví d nhân ma tr n bên trên, ta cĩ th gia t ng kh n ng tính tĩan song song b ng cách đ a ra m t b c trung gian mà trong đĩ cĩ 8 tác v th c hi n tính tốn các ma tr n con t ng ng c a chúng r i l u k t qu trong m t ma tr n 3 chi u D. Ma tr n con Dk,i,j là k t qu c a vi c nhân Ai,k và Bk,j.

Hình 2-11 : Nhân hai ma tr n A và B v i ph n trung gian là ma tr n D

Vi c phân chia thành ma tr n trung gian D d n đ n phân ho ch thành 8 tác v . Sau b c nhân, ta th c hi n c ng các ma tr n k t qu con (chi phí khơng cao) thành ma tr n C. T t c các ma tr n con D*,i,j đ c c ng l i v i nhau đ t o thành Ci,j. 8 tác v (đánh s t 1-8) th c hi n vi c nhân các ma tr n con c a A và B cĩ kích th c n/2 x n/2 v i chi phí là O(n3/8). Sau đĩ 4 tác v (đánh s t 9-12) th c hi n c ng các ma tr n con trung gian D thành ma tr n k t qu C v i chi phí là (n2/8).

Hình 2-12 : Phân h ach bài tốn nhân ma tr n theo ma tr n trung gian 3-chi u

Phân ho ch th m dị

Phân h ach th m dị đ c dùng đ phân h ach nh ng v n đ mà cĩ n i dung tính tốn t ng ng v i m t khơng gian tìm ki m c a nh ng gi i pháp. Trong phân h ach th m dị, chúng ta phân chia khơng gian tìm ki m thành nhi u ph n nh h n, và th c hi n tìm ki m trên t ng ph n đ ng th i v i nhau, cho đ n khi tìm ra gi i pháp c n tìm.

L u ý là m c dù phân ho ch th m dị trơng cĩ v t ng t nh phân ho ch d li u (khơng gian tìm ki m cĩ th đ c xem nh là d li u đ c phân chia), v c b n chúng khác nhau nh ng đi m sau đây. Nh ng tác v cĩ đ c sau khi phân ho ch d li u đ c th c hi n hồn tồn và t ng tác v đ u th c hi n các phép tính h u d ng đ tìm ra gi i pháp cho v n đ . M t khác, trong phân ho ch th m dị, nh ng tác v m c dù ch a th c hi n xong nh ng v n b k t thúc n u đã cĩ m t gi i pháp đ c tìm ra t m t tác v khác. Vì th t ng ph n c a khơng gian tìm ki m khi đ c th c hi n b i cơng th c song song cĩ th khác r t nhi u so v i khi đ c tìm ki m b i thu t tốn tu n t . Cho nên s l ng cơng vi c mà cơng th c song song th c hi n cĩ th nhi u h n hay ít h n so v i khi th c hi n b ng thu t tốn tu n t .

Hình 2-13 : Các b c phát sinh theo phân ho ch th m dị

Phân ho ch suy đốn đ c dùng khi m t ch ng trình cĩ th l y m t trong các nhánh tính tốn cĩ th , tùy thu c vào k t qu xu t c a nh ng phép tính tốn tr c đĩ. Trong tr ng h p này, trong khi m t tác v đang th c hi n các phép tính mà k t qu xu t s quy t đnh b c tính tốn ti p theo, trong khi các tác v khác cĩ th b t đ u đ ng th i các cơng vi c tính tốn c a giai đo n ti p theo. Ng c nh này trơng gi ng v i c l ng song song m t hay nhi u nhánh c a câu l nh switch trong ngơn ng C tr c khi t n t i giá tr vào c a câu l nh. Trong khi m t tác v th c hi n tính tốn đ gi i quy t switch, các tác v khác th c hi n song song trên các nhánh khác c a switch. Khi giá tr đ u vào cu i cùng c a switch đ c tính ra, thì nhánh cĩ các phép tính t ng ng s

đ c th c hi n trong khi b qua các nhánh cịn l i. Th i gian cho vi c ch y song song s nh h n khi ch y tu n t vì th i gian đ c s d ng t i u đ th c hi n song song các phép tính tốn h p lý cho giai đo n ti p theo. Tuy nhiên d ng song song c a switch c ng b o đ m s cĩ ít nh t m t vài phép tính tốn lãng phí. Nh m làm gi m các phép tính tốn này, m t d ng khác nh c a phân h ach suy đốn cĩ th đu c s d ng, đ c bi t trong nh ng tr ng h p mà m t trong các k t qu xu t c a switch cĩ kh n ng x y ra h n so v i các tr ng h p

Một phần của tài liệu Luận văn: Nghiên cứu tính toán lưới và thử nghiệm một số thuật toán lý thuyết đồ thị pdf (Trang 29 - 138)

Tải bản đầy đủ (PDF)

(138 trang)