Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Trang 1Mở đầu 3
Chơng I Tổng quan về tính toán song song 7
1 1 Kiến trúc Von Neumann 7
1 2 Phân loại Flynn 7
1 3 Các kiến trúc bộ nhớ máy tính song song 9
1 3 1 Bộ nhớ dùng chung 9
1 3 2 Bộ nhớ phân tán 10
1 3 3 Bộ nhớ kết hợp 11
1 4 Các mô hình lập trình song song 11
1 4 1 Lập trình bộ nhớ dùng chung 11
1 4 2 Truyền thông điệp 12
1 4 3 Mô hình song song dữ liệu 12
1 4 4 Mô hình hớng đối tợng 13
1 4 5 Mô hình logic 13
1 5 Truyền thông trong mô hình Multicomputer 13
Chơng 2 Thiết kế Giải Thuật song song 16
2 1 Mô hình thiết kế 16
2 2 Phơng pháp thiết kế 17
2 3 Phân rã 19
2 3 1 Phân rã theo miền 19
2 3 2 Phân rã chức năng 20
2 3 3 Các vấn đề cần quan tâm 22
2 4 Truyền thông 23
2 4 1 Truyền thông cục bộ 23
2 4 2 Truyền thông toàn cục 24
2 4 3 Các vấn đề cần quan tâm 26
2 5 Tích tụ 26
2 5 1Gia tăng kích thớc tác vụ 28
2 5 2 Duy trì khả năng linh động 30
2 5 4 Các vấn đề cần quan tâm 30
2 6 ánh xạ 31
2 6 1 Các giải thuật cân bằng nạp 32
2 6 2 Các giải thuật lập lịch trình tác vụ 33
2 6 3 Các vấn đề cần quan tâm 34
Chơng 3 Mạng kết nối 35
3 1 Các mạng kết nối thông dụng 35
3 1 1 Mạng Mesh 36
3 1 2 Mạng bus/star 36
3 1 3 Mạng cây nhị phân 37
3 1 4 Mạng Hypertree 37
3 1 5 Mạng hình chóp 38
3 1 6 Mạng Butterfly 39
3 1 7 Mạng Hypercube 39
3 1 8 Mạng Cube-Connected Cycles 40
3 1 9 Mạng shuffle-exchange 41
3 1 10 Mạng de Bruijn 41
3 2 ánh xạ dữ liệu 42
3 2 1 Ring sang 2-D Mesh 44
3 2 2 Mesh 2-D sang Mesh 2-D 44
3 2 3 Cây nhị phân hoàn chỉnh sang 2D Mesh 45
3 2 4 Cây nhị thức sang Mesh2-D 45
3 2 5 Nhúng đồ thị vào trong mạng Hypercube 45
3 2 6 Cây nhị thức sang Hypercube 46
3 2 7 Rings và Meshes sang Hypercube 46
Chơng 4 cơ sở đánh giá giải thuật song song 49
4 1 Thời gian thực hiện 49
4 1 1 Thời gian tính toán 50
4 1 2 Thời gian truyền thông 50
4 1 3 Thời gian rỗi (Idle) 52
4 2 Tăng tốc và hiệu quả .52
Trang 24 3 TÝnh qui m« 53
Ch¬ng 5 gi¶i hÖ ph¬ng tr×nh tuyÕn tÝnh 55
5 1 T¸ch A = L*U dùa theo gi¶i thuËt khö Guassian 55
5 1 1 Gi¶i thuËt song song theo hµng 59
5 1 2 Gi¶i thuËt song song theo cét 61
5 1 3 Gi¶i thuËt song song hai chiÒu 62
5 1 4 Khö Gauss víi kü thuËt lùa chän phÇn tö xoay 64
5 2 Gi¶i hÖ ph¬ng tr×nh víi ma trËn hÖ sè tam gi¸c 64
5 2 1 Gi¶i thuËt song song tÝch tô theo hµng 67
5 2 2 Gi¶i thuËt song song tÝch tô theo cét 70
5 2 3 Gi¶i thuËt song song hai chiÒu 72
5 3 Thùc thi gi¶i thuËt 74
5 3 1 X©y dùng ch¬ng tr×nh 74
5 3 2 C¸c kÕt qu¶ thùc hiÖn Error! Bookmark not defined 5 3 3 C¸c h¹n chÕ vµ híng ph¸t triÓn ch¬ng tr×nh 77
KÕt luËn 78
Tµi liÖu tham kh¶o 79
Trang 3Mở đầu
áy tính điện tử là một trong những phát minh vĩ đại nhất của thế kỷ 20,vừa ra đời sau chiến tranh thế giới hai nhng nó đã phát triển một cáchnhanh chóng và có sức sống mãnh liệt Trong những thập niên 60, nền tảng
để thiết kế máy tính số đều dựa trên mô hình của John von Newman với một
đơn vị xử lý đợc nối với một vùng lu trữ làm bộ nhớ và tại một thời điểm chỉ
có một lệnh máy đợc thực thi Kiến trúc truyền thống này ngày có nhiều hạnchế do thúc đẩy của các bài toán xuất phát từ những yêu cầu thực tế và đợc
khoa học hiện nay coi nh những thánh thức lớn “grand challenges , đây là”, đây là
các bài toán đặt ra để mô phỏng thế giới thực của một vấn đề, hiện tợng cóyêu cầu về tính toán và khả năng lu trữ lớn
M
Để đáp ứng nhu cầu của khoa học, kiến trúc máy tính cũng thay đổinhanh chóng nhằm tăng cờng sức mạnh tính toán và xử lý theo từng thế hệ.Sức mạnh của máy tính theo kiến trúc John von Newman có thể đợc cảithiện theo hai xu hớng khác nhau:
- Thứ nhất : Dựa vào sự phát triển của công nghệ
- Thứ hai : Dựa vào sự cải tiến về kiến trúcCác cải tiến về kiến trúc có thể tăng khối lợng công việc thực hiện chomỗi chu kỳ lệnh, trong khi tiến bộ về công nghệ có thể giảm thời gian cầnthiết cho mỗi chu kỳ lệnh
Sự cải tiến về công nghệ đã trải qua nhiều giai đoạn phát triển khácnhau và trở thành một chỉ tiêu quan trọng trong khi phân chia các thế hệmáy tính Từ thế hệ thứ nhất dùng đèn điện tử, thế hệ thứ hai dùng côngnghệ bán dẫn, đến thế hệ thứ ba dùng công nghệ mạch tích hợp lớn VLSI ( Very Large Scale Intergrated Circuit) Với công nghệ này, các VLSI có thểtích hợp từ hàng trăm nghìn đến hàng triệu transistors trên một đơn chíp và
có thể tạo ra các tần số đồng hồ hàng trăm MHz Sự cải tiến về mặt côngnghệ hy vọng còn tiếp tục phát triển nhờ vào sự tích hợp ngày càng lớn mật
độ các thành phần trên một chip, do đó giảm đợc thời gian trễ vận chuyểngiữa các thành phần trên chíp
Vào giữa thập niên 1970, các tiến bộ kiến trúc quan trọng nh bộ nhớ
song song bit( bit-parallel memory), số học song song bit ( bit-parallel
arithmetic), bộ nhớ truy nhập nhanh (cache memory), pipeline lệnh
(instruction pipelining), khối đa chức năng (multiple functional units), pipeline dữ liệu (data pipelining) - đã đợc kết hợp trong thiết kế máy supercomputer
hay mainframe Từ đó, để năng cao hiệu năng của các bộ xử lý đơn ngời ta
có ý định giảm thời gian chu kỳ lệnh
Tuy nhiên với công nghệ VLSI kết hợp với những tiến bộ kiến trúc chophép máy tính đơn có khả năng tính toán cao, thực hiện hàng trăm triệuphép tính trên một giây nhng điều này vẫn cha đáp ứng đợc các thách thứckhoa học với các bài toán nh mô hình thời tiết và môi trờng toàn cầu, tínhtoán chu trình đại dơng vũ trụ học và thiên văn học, y học và mô hình cácxơng và cơ quan con ngời, phản ứng hoá học và hạt nhân v v
Ngày nay, các ứng dụng có tính thơng mại đang tác động đến việcphát triển máy tính song song bởi những ứng dụng này yêu cầu xử lý số l-ợng lớn dữ liệu theo các cách thức phức tạp Ví dụ nh cơ sở dữ liệu songsong, khai phá dữ liệu, tìm kiếm dầu mỏ, chuẩn đoán dới sự trợ giúp củamáy tính trong y học, quản lý của các công ty kinh doanh, tổ chức đa quốcgia, công nghệ multimedia và video trên mạng v v
Trang 4Nguyên nhân chính hạn chế trong việc phát triển máy tính đơn có tốc
độ cao là do sự hạn chế vật lý của IC, chúng ta không thể gia tăng mãi khảnăng tích hợp các linh kiện bán dẫn trên cùng một chíp và tốc độ truyền tảitín hiệu của mạch điện bị hạn chế không vợt quá tốc độ ánh sáng
Để tăng cờng sức mạnh tính toán giải quyết các bài toán lớn có độtính toán cao, ngời ta phát triển theo hớng kiến trúc máy tính, với ý tởng kếthợp nhiều bộ xử lý vào trong một máy tính mà ngời ta hay gọi là máy tínhsong song Multiprocessor hoặc kết hợp sức mạnh tính toán của nhiều máytính dựa trên kết nối của mạng cục bộ đã có, ngời ta gọi là máy tính songsong Multicomputer Điều này đã đợc Daniel Slotnick ở trờng đại học Illinoisthực hiện với thiết kế hai máy tính song song là máy Solomon đợc xây dựngbởi công ty Westinghouse Electric Company vào đầu những năm 1960 vàsau đó vào đầu những năm 1970, máy tính ILLIAC IV đợc lắp ráp tại công tyBurroughs Corporation Tại trờng đại học Carnegie-Mellon, hai máy tínhsong song là C mmp và Cm* - đợc xây dựng trong suốt những năm 1970.Trong những năm đầu 1980, các nhà nghiên cứu tại Caltech đã xây dựng ramáy Cosmic Cube, một hình thức sơ khai của máy tính song songMulticomputer
Sự hội tụ giữa kiến trúc song song và công nghệ xây dựng các máylớn truyền thống đã dẫn đến sự phát triển các máy tính song song có hàngchục, trăm, hoặc thậm chí hàng nghìn các microprocessor Với hiệu năngcao nhất, các máy tính song song nh Intel s Paragon XP/S’s Paragon XP/S TM , MasPar s’s Paragon XP/S
MP-2TM và Thinking Machines Cm 5’s Paragon XP/S TM , đã vợt qua tốc độ của các máysupercomputer đơn bộ xử lý truyền thống nh Cray Y/MPTM và NEC SX-3TN
Đối với việc xây dựng các máy tính song song có hàng trăm đến hàngngàn bộ xử lý với bộ nhớ chính có kích thớc lớn sẽ rất tốn kém, không hiệnthực đối với nhu cầu thực tế nhng bù lại sẽ có môi trờng tính toán ổn định vàsức mạnh tính toán lớn Với máy tính song song kết nối nhiều máy tính sẵn
có thông qua mạng cục bộ sẽ đáp ứng đợc về giá thành, tận dụng đợc máytính sẵn có, khả năng lu trữ dữ liệu sẽ lớn hơn và hiện nay với mạng LAN tốc
độ cao sẽ cho phép ta thực hiện đợc điều này Tuy nhiên với môi trờng tínhtoán không đồng nhất về tốc độ xử lý trên mỗi máy tính, khả năng lu trữ sẽlàm cho việc thực hiện bài toán trở nên khó khăn Để giải quyết vấn đề nàycác phần mềm đợc xây dựng ra nh PVM ( Parallel Virtual Machine ), MPI,Linda, P4, v v cho phép thực thi song song bài toán trên mô hìnhMulticomputer
Ngoài việc có sức mạnh tính toán nhanh, máy tính song song có khảnăng lu trữ lớn với mô hình bộ nhớ phân tán và khả năng chịu hỏng tốt hơnmáy tính đơn bộ xử lý Đối với máy tính đơn, khi bộ xử lý bị sự cố thì cả hệthống dừng hoạt động còn các máy tính song song vẫn có thể thực hiệncông việc khi một vài bộ xử lý hay máy tính có sự cố Việc bảo đảm độ tincậy cao có tầm quan trọng khi sử dụng máy tính trong các lĩnh vực mà sự cố
có thể xảy ra thảm hoạ nh điều khiển phóng vệ tinh, kiểm soát và điều khiểncác nhà máy điện nguyên tử v v
Tuy nhiên, để khai thác đợc sức mạnh tiềm tàng trong các máy tínhsong song lớn yêu cầu sự phát triển và kết hợp hợp lý của kiến trúc, hệ điềuhành, ngôn ngữ lập trình và giải thuật, phần mềm tính toán song song Bởi vìgiải thuật tuần tự không còn phù hợp nữa khi thực hiện trên máy song song,nên việc xây dựng, thiết kế giải thuật song song là điều quan trọng từ đó cóthể phân rã công việc trên các phần tử xử lý khác nhau Việc phân rã có thể
Trang 5đợc tiến hành theo hai cách, phân rã theo miền và phân rã theo chức năng.Tiếp theo là mã hoá công việc đó theo một ngôn ngữ hỗ trợ việc tính toánsong song và hệ điều hành điều khiển hoạt động tính toán phải có sự hỗ trợ.Nếu trong quá trình tính toán mà lựa chọn không tốt kiến trúc song song sẽlàm cho hiệu quả thực hiện giảm đi
Để xây dựng một giải thuật song song ta phải có sự phân tích bài toánhoặc giải thuật tuần tự, từ đó cho phép ta có kết luận có thể song song bàitoán hay không Nếu đợc, ta sẽ tiếp tục xây dựng giải thuật bằng cách phânrã bài toán ra thành các công việc nhỏ, xây mối liên hệ giữa các công việc,quyết định đợc có thể song song đợc những tác vụ nào, sau đó ấn định vàomô hình máy tính song song cụ thể Trong khi xây dựng có thể có nhiều ph-
ơng hớng thiết kế khác nhau tạo ra các giải thuật khác nhau Việc đánh giáhiệu quả của từng giải thuật cho phép ta quyết định giải thuật nào sẽ đợc ápdụng dựa trên mô hình hiệu năng Để đánh giá tốt hiệu quả giải thuật, chúng
ta cần xem xét các chỉ tiêu nh tốc độ ( Speedup), hiệu quả (Efficiency), linh
động ( Scalability) Điều này cần có kiến thức về tính toán độ phức tạp giảithuật, tổ chức mạng kết nối giữa các phần tử xử lý, chi phí truyền thông giữacác phần tử trong giải thuật
Những vấn đề này sẽ đợc đề cập trong đồ án tốt nghiệp với mong ớcgóp phần nhỏ bé của mình vào việc phát triển nghiên cứu về lĩnh vực tínhtoán song song Đề tài cho đồ án tốt nghiệp là : “ Thiết kế giải thuật song
song”, đây là
Nhiệm vụ của đồ án bao gồm:
1 Tìm hiểu kỹ thuật tổ chức giải thuật tính toán song song
2 Nghiên cứu các vấn đề liên quan đến phơng pháp phân rã bài toán,phục vụ cho việc xây dựng giải thuật song song và đánh giá đợc cácphơng pháp phân rã
3 áp dụng cho bài toán giải hệ phơng trình tuyến tính bằng phơng phápphân rã LU Đa ra các giải thuật song song cho bài toán và đánh giáhiệu quả của các giải thuật
4 Mô phỏng một số giải thuật phân rã bài toán giải hệ phơng trình tuyếntính
Nội dung của đồ án tốt nghiệp gồm 5 chơng và tài liệu tham khảo Chơng 1 sẽ đề cập tổng quan về tính toán song song với các vấn đềliên quan đến việc thiết kế giải thuật song song nh các mô hình tính toánsong song, kiến trúc bộ nhớ máy tính song song, các mô hình lập trình songsong
Chơng 2 đề cập đến mô hình thiết kế giải thuật, các công đoạn trongquá trình thiết kế Trong mỗi công đoạn sẽ đa ra đợc những vấn đề cầnquan tâm cho ngời thiết kế
Chơng 3 sẽ đề cập đến mạng kết nối giữa các bộ xử lý và đi sâu vàovấn đề ánh xạ tĩnh các tác vụ phân rã theo miền vào kiến trúc máy tính songsong cụ thể
Chơng 4 đề cập đến mô hình hiệu năng đánh giá hiệu quả của giảithuật song song sau khi thiết kế và phân tích tính qui mô của giải thuật.Những đánh giá này sẽ giúp cho ngời thiết kế có khả năng chọn lựa giảithuật trong công đoạn thiết kế
Chơng 5 sẽ đi sâu thiết kế giải thuật song song cho bài toán giải hệphơng trình tuyến tính theo phơng pháp tách LU Mô phỏng một số giải thuật
và thử nghiệm một số bài toán giải hệ
Trang 7Chơng I Tổng quan về tính toán song song
Trong chơng này đề cập sơ lợc đến các vấn đề cơ bản trong tính toánsong song nh phân loại kiến trúc song song của Flynn, kiến trúc bộ nhớ, môhình lập trình song song v v v, qua đây sẽ đa đến cái nhìn tổng quan để
định hớng khi thiết kế giải thuật
1 1 Kiến trúc Von Neumann
Hơn 40 năm qua, hầu hết các máy tính đều thiết kế dựa theo mô hìnhphổ biến đợc biết đến nh máy Von Neumann Tên máy tính đợc đặt theo tênnhà toán học ngời Hungarian Jon Von Neumann
Máy tính Von Neumann sử dụng khái niệm chơng trình lu trữ ( program), CPU sẽ thực hiện theo dãy các phép toán đọc, ghi trên bộ nhớ dochơng trình lu trữ chỉ định
stored-Hình 1 1: Mô tả kiến trúc Von Neumann
Đối với kiến trúc Von Neumann thì bộ nhớ đợc sử dụng để lu trữ cảlệnh cho chơng trình lẫn dữ liệu Lệnh chơng trình là dữ liệu đã đợc mã hoá,chơng trình sẽ dựa vào đây để thực hiện, còn dữ liệu đơn giản chỉ là thôngtin đợc chơng trình sử dụng Khi đó CPU sẽ lấy các lệnh hay dữ liệu từ bộnhớ, giải mã các lệnh và sau đó thực hiện tuần tự các lệnh này
1 2 Phân loại Flynn
Một trong những phân loại kiến trúc máy tính song song đợc biếtnhiều nhất là phân loại của Flynn, đợc sử dụng từ năm 1966 Michael Flynnphân loại kiến trúc máy tính thành 4 loại dựa trên sự biểu hiện của cặp khái
niệm : dòng lệnh ( instruction stream) và dòng dữ liệu ( data stream), mỗi loại nằm trong một trong hai trạng thái là Đơn (Single) hoặc Đa( Multiple)
Theo Flynn các kiến trúc máy tính gồm 4 loại đợc thể hiện trong matrận sau:
Trang 8 Đơn dòng lệnh đơn dòng dữ liệu (SISD) Đây là kiến trúc của một
máy tuần tự, trong bất kỳ một chu kỳ đồng hồ nào chỉ có một dòng lệnh
đang đợc thực hiện bởi CPU và chỉ một dòng dữ liệu đang đợc sử dụng nh là
đầu vào cho chơng trình Kiến trúc này chỉ sử dụng một thanh ghi đợc gọi là
bộ đếm chơng trình để đảm bảo cho dòng lệnh đợc thực hiện tuần tự Kiếntrúc này đợc sử dụng cho hầu hết các máy tính cá nhân, các workstation vàmainframe đơn CPU
Hình 1 3 Mô tả kiến trúc SISD
Đơn dòng lệnh đa dòng dữ liệu ( SIMD) Với kiến trúc này, tất cả các
đơn vị xử lý sẽ thực hiện cùng một lệnh tại bất kỳ chu kỳ đồng hồ nào nhngmỗi đơn vị này có thể thao tác trên một phần tử dữ liệu khác nhau Trongkiến trúc này thờng có một đơn vị điều khiển lệnh ( Control Unit ), có mạngkết nối bên trong giữa các đơn vị xử lý, có băng thông rất lớn và mảng rấtlớn các đơn vị lệnh có dung lợng rất nhỏ Kiến trúc này đặc biệt phù hợpcho các bài toán có mức độ đồng đều cao nh trong lĩnh vực xử lý ảnh Kiếntrúc này là cơ sở xây dựng các máy tính song song kiểu bộ xử lý mảng( array processor) nh Connection Machine CM-2, Maspar MP-1, MP-2
Hình 1 4 Mô tả kiến trúc SISD
Đa dòng lệnh đơn dòng dữ liệu ( MISD) Kiến trúc này cho phép một
vài lệnh cùng thao tác trên cùng một dữ liệu Có rất ít máy tính song songdựa trên kiến trúc này
Có hai cách để mô tả cách tổ chức của MISD Cách thứ nhất đợc xét
đến các lớp máy yêu cầu các đơn vị xử lý riêng nhận các lệnh riêng biệt xử
lý trên cùng một dữ liệu Cách thức thứ 2 đợc xét đến lớp các máy tính,trong đó dữ liệu chuyển qua một dãy các đơn vị xử lý
Đa dòng lệnh đa dòng dữ liệu (MIMD) Hiện nay, đây là kiến trúc
song song phổ biến nhất với mỗi bộ xử lý có thể thực hiện một dòng lệnh vàmột dòng dữ liệu khác nhau Hầu hết các máy tính supercomputer, máy tínhMulticomputer và Multiprocessor đều đợc xây dựng dựa trên kiến trúc này
Trang 9
Hình 1 4 Mô tả kiến trúc MIMD
1 3 Các kiến trúc bộ nhớ máy tính song song
Có 3 kiến trúc bộ nhớ cơ bản là dùng chung ( shared memory), phân
tán ( distributed memory) và kết hợp giữa hai kiến trúc trên Hybrid (
Hình 1 5 Mô tả máy tính song song bộ nhớ dùng chung
Các bộ xử lý có thể thao tác một cách độc lập nhng chia sẻ cùng tàinguyên bộ nhớ, sự thay đổi trong một vị trí bộ nhớ bởi một bộ xử lý thì tất cảcác bộ xử lý còn lại sẽ nhận thấy đợc
Tuy nhiên còn có thể phân ra thành 2 loại chính dựa vào thời gian truy
nhập bộ nhớ là truy nhập bộ nhớ đồng bộ- UMA ( Uniform Memory Access)
và truy nhập bộ nhớ không đồng bộ-NUMA ( Non-Uniform Memory Access).
Thuận lợi của mô hình này là lập trình thân thiện đối với ngời sử dụngvới việc chia sẻ dữ liệu, môi trờng tính toán ổn định nhng kém linh động giữa
bộ nhớ và các CPU Nếu thêm nhiều CPU ta sẽ gặp phải các vấn đề dotăng dung lợng trên đờng truyền thông giữa bộ nhớ và bộ nhớ, quản lý đồng
bộ việc truy nhập đồng thời của các bộ xử lý đến cùng vị trí bộ nhớ, truynhập có chính xác vị trí bộ nhớ trên không gian bộ nhớ dùng chung Ngoài
ra sẽ chi phí rất tốn kém để thiết kế và sản xuất các máy tính kiểu này khigia tăng số lợng bộ xử lý
Trang 101 3 2 Bộ nhớ phân tán
Cũng nh kiến trúc dùng chung, kiến trúc phân tán có nhiều dạng nhngchia sẻ một đặc điểm chung là hệ thống bộ nhớ phân tán yêu cầu một mạngtruyền thông kết nối giữa bộ nhớ bộ xử lý
Hình 1 6 Mô tả kiến trúc bộ nhớ phân tán
Mỗi bộ xử lý đều có bộ nhớ cục bộ riêng, địa chỉ bộ nhớ không ánh
xạ tới các bộ xử lý khác, bởi vậy không có khái niệm không gian địa chỉ toàncục ngang qua tất cả bộ xử lý Các bộ xử lý sẽ thao tác độc lập trên bộ nhớriêng của nó Sự thay đổi dữ liệu tạo ra đối với bộ nhớ riêng không ảnh hởng
đến bộ nhớ của các bộ xử lý khác, bởi vậy không có sự đụng độ do truynhập đồng thời từ nhiều bộ xử lý
Khi một bộ xử lý cần truy nhập đến dữ liệu trong bộ xử lý khác hoặchai bộ xử lý cần trao đổi dữ liệu cho nhau thì cần có truyền thông giữa chúngqua mạng kết nối
Thuận lợi của kiến trúc này là bộ nhớ khả chuyển với số lợng bộ xử lý,gia tăng số lợng bộ xử lý và kích thớc bộ nhớ tỷ lệ với nhau Chí phí xâydựng máy tính không lớn, có thể dùng hệ thống mạng máy tính sẵn có Tuynhiên, kiến trúc này sẽ khó khăn cho ngời lập trình bởi cần có những công
đoạn thực hiện truyền thông giữa các máy tính khi trao đổi dữ liệu, việc ánhxạ cấu trúc dữ liệu hiện có lên kiến trúc bộ nhớ của máy tính và thời giantruy nhập dữ liệu không đồng bộ
1 3 3 Bộ nhớ kết hợp
Ngày nay, các máy tính song song lớn nhất và nhanh nhất cung cấpcả kiến trúc bộ nhớ chung và phân tán Mô hình này hình thành dựa theoviệc liên kết nhiều máy tính song song kiến trúc bộ nhớ chung thành máytính lớn hơn thông qua mạng truyền thông
Hình 1 7 Mô tả kiến trúc bộ nhớ kết hợp
Kiến trúc này kết hợp u và nhợc điểm của cả hai kiến trúc trên
1 4 Các mô hình lập trình song song
Trang 11Mô hình lập trình cung cấp cho ngời lập trình cái nhìn đơn giản và
trong suốt với hệ thống phần cứng và phân mềm của máy tính Các mô hìnhlập trình song song đợc thiết kế chuyên dụng cho các mô hình máy tínhsong song điển hình nh Multiprocessors, Multicomputers và ArrayProcessor Đơn vị song song trong các mô hình lập trình là tiến trình (
process) hay tác vụ (task) tơng ứng với các thao tác thực hiện bởi đoạn mã
lệnh tuần tự, độ lớn đoạn mã lệnh này thay đổi trong các ứng dụng và môhình lập trình khác nhau Ngoài ra còn có một số mô hình lập trình khác nhhớng đối tợng, song song theo logic
1 4 1 Lập trình bộ nhớ dùng chung
Trong mô hình này đợc thiết kế cho máy tính Multiprocessors, các tác
vụ chia sẻ không gian địa chỉ dùng chung, đợc đọc/ghi một cách không
đồng bộ Có một số kỹ thuật nh khoá (locks) hay cờ(semaphores) đợc sử
dụng để điều khiển truy nhập đến bộ nhớ dùng chung Truyền thông giữacác tác vụ thông qua các biến dùng chung
Hình 1 8: Mô tả truyền thông giữa các tác vụ sử dụng biến dùng chung
Hiện nay, mô hình này đợc hỗ trợ theo các cáh khác nhau trong hầuhết các hệ điều hành 32-bit, điển hình trong các th viện liên kết của Unix có
hỗ trợ việc tạo các tiến trình, khối bộ nhớ dùng chung, cờ và kỹ thuật truyềnthông giữa các tiến trình
1 4 2 Truyền thông điệp
Trong máy tính Multicomputers cung cấp kỹ thuật truyền thông điệp( message passing) để trao đổi giữa các tác vụ Hai tác vụ nằm trên hai máykhác nhau có thể trao đổi với nhau bằng kỹ thuật truyền thông điệp trênmạng kết nối Các thông điệp có thể là các lệnh, dữ liệu, tín hiệu đồng bộhay ngắt Hai mô hình truyền thông điệp đợc thực thi và sử dụng là đồng bộhay không đồng bộ
Hình 1 9 Mô tả truyền thông giữa hai tác vụ trên hai máy tính khác nhau
Hiện nay, PVM và MPI là hai mô hình lập trình song song điển hình
sử dụng kỹ thuật mày
1 4 3 Mô hình song song dữ liệu
Trong mô hình này, hầu hết các công việc song song đều tập trungthực hiện các phép toán trên một tập dữ liệu Tập dữ liệu này thờng đợc tổchức trong một cấu trúc dữ liệu thông dụng nh mảng hoặc khối
Một tập tác vụ sẽ làm việc trên cùng cấu trúc dữ liệu nhng mỗi tác vụ
sẽ làm việc trên một phần dữ liệu khác nhau với cùng phép toán Mô hình
Shared MemoryTask A
Task CTask B
Trang 12này thiết kế chủ yếu dành cho máy tính song song kiểu bộ xử lý mảng (arrayprocessor)
Hình 1 10 Mô tả mô hình song song dữ liệu
1 4 4 Mô hình h ớng đối t ợng
Trong mô hình này, ánh xạ các đơn vị thực hiện vào các đối tợng Các
đối tợng đợc tạo ra và thao tác theo cách tự động, việc xử lý đợc thực hiệnthông qua gửi và nhận giữa các đối tợng Các mô hình lập trình hiện nay đềuxây dựng các đối tợng từ mức thấp nh tiến trình, tác vụ, hàng đợi và cờ tínhiệu đến mức cao nh monitor hay module chơng trình
Các ngôn ngữ lập trình song song hớng đối tợng nh CORBA, DCE,JAVA, CC++
đợc áp dụng song song cho các ứng dụng trí tuệ nhân tạo
1 5 Truyền thông trong mô hình Multicomputer
Nét nổi bật giữa các máy tính Multicomputer trớc đây và các hệ thống
ngày nay là sự thay đổi cách thức truyền thông giữa các bộ xử lý Thế hệ
đầu tiên cuả mô hình Multicomputer, nh Intel iPSC/10 TM , nCUBE/10TM vàcác hệ thống dựa trên T800 Transputerr TM , đợc đặc trng bởi phần mềm
quản lý truyền thông điệp store and forward ( store and forward message
passing) Để gửi một message từ một bộ xử lý tới một bộ xử lý không liền kề,
mỗi bộ xử lý trung gian dọc theo đờng truyền message phải lu trữ toàn bộmessage sau đó đẩy message xuống đờng truyền tới bộ xử lý tiếp theo.Thậm chí truyền dữ liệu đợc hoàn thành thông qua các kênh DMA thì CPU
bị ngắt mỗi lần truyền theo kiểu DMA đợc khởi tạo
Processor 1 Processor 1
Trang 13Hình1 11 Mô tả cơ chế định đờng store and forward
Ngợc lại, đối với các mô hình máy tính song song thế hệ thứ hai,chẳng hạn nh Intel iPSC/2TM , và nCUBE 2, có cơ chế định đờng messagechuyển mạch Chẳng hạn nh mỗi nút trong mô hình iPSC/2 và iPSC/860 có
một Card con logic định đờng gọi là module kết nối trực tiếp (Direct –
Connect Module) Các module kết nối trc tiếp thiết lập một mạch từ nút
nguồn đến nút đích Mỗi lần mạch đợc thiết lập, message truyền trong mộtdạng đợc pipeline từ nút nguồn tới nút đích mà không có một nút trung giannào lu message này Khi một message đợc truyền từ một nút tới một nútkhông liền kề thì không cần ngắt CPU của các nút trung gian và chỉ tác
động vào các module kết nối trực tiếp Hình dới đây mô tả cơ chế này
Hình 1 12 Mô tả các module kết nối trực tiếp trên máy tính Intel iPSC/2
ớc nền trớc khi đi vào thiết kế giải thuật song song trong chơng sau
Processor 2 Processor 2
Memory
Direct-Connect Routing Module
80386
Numeric Coprocessor
Memory
Direct-Connect Routing Module
Trang 15Chơng 2 Thiết kế Giải Thuật song song
Trong chơng này đề cập đến phơng pháp thiết kế giải thuật songsong cho bài toán, quá trình thiết kế không dễ dàng để có thể rút gọn thànhcông thức đơn giản nh công thức giải hệ phơng trình bậc hai, giải hệ phơngtrình tuyến tính v v mà yêu cầu có sự sắp xếp t duy thông nhất mà thờng
đợc đề cập đến nh là sự sáng tạo Mục đích của ch“ ”, đây là ơng này là đa ra mộtkhung thiết kế, một sự đánh giá mang tính toán học nhằm giảm bớt nhữngchi phí do phải quay lui lại sau khi lựa chọn phơng án không hợp lý
2 1 Mô hình thiết kế
Trong mô hình thiết kế này, đơn vị để thực hiện song song là tác vụ.Mỗi tác vụ bao gồm chơng trình thực hiện tuần tự và bộ nhớ cục bộ Khi đótính toán song song là thực hiện đồng thời hai hay nhiều tác vụ, số lợng tác
vụ có thể biến đổi trong suốt thời gian thực hiện chơng trình Các tác vụ cóthể ánh xạ tới các bộ xử lý theo nhiều cách khác nhau, trong đó nhiều tác vụ
có thể ánh xạ lên cùng một bộ xử lý
Các tác vụ đợc kết nối với nhau thông qua các kênh truyền (chanel)
và thực hiện việc gửi và nhận các message trên kênh Để thực hiện việc kếtnối đồng thời với nhiều tác vụ khác, một tác vụ sẽ có thêm một tập các cổngvào, ra, mỗi cổng sẽ giao tiếp với một tác vụ khác Tác vụ gửi sẽ đặt cácmessage lên kênh tại cổng ra, còn tác vụ nhận thì xoá bỏ message trênkênh thông qua cổng vào
Phép toán gửi là không đồng bộ, dữ liệu đợc gửi đi ngay lập tức, trongkhi đó phép toán nhận thì đồng bộ, bởi vậy việc thực hiện tác vụ sẽ dừng lạicho đến khi message đợc nhận Khi không còn message thì kênh truyền sẽ
bị huỷ bỏ
Hình 2 1 Mô tả kết nối giữa các tác vụ
Sự đóng gói đối với tác vụ cho ta thấy tính cục bộ, dữ liệu nằm trong
bộ nhớ cục bộ của tác vụ ta gọi đó là dữ liệu gần , còn dữ liệu khác là dữ“ ”, đây là
liệu xa Trong khi đó, kênh truyền sẽ chỉ ra sự phụ thuộc dữ liệu giữa các“ ”, đây là
tác vụ trong khi quá trình tính toán
Bởi vì các tác vụ giao tác với nhau sử dụng kỹ thuật kênh truyền màkhông quan tâm đến việc định vị tác vụ, do đó kết quả tính toán bởi một ch-
ơng trình không phụ thuộc vào nơi mà tác vụ thực hiện Các giải thuật phải
đợc thiết kế và thực thi mà không quan tâm đến số lợng bộ xử lý trên máytính song song sẽ thực hiện bài toán Thông thờng việc thiết kế bài toán sẽtạo ra số tác vụ lớn hơn nhiều so với số bộ xử lý, điều này sẽ làm cho giảithuật đạt đợc khả năng linh động cao và có thể xen kẽ giữa tính toán vàtruyền thông để tăng hiệu năng
Các kênh truyền kết nối giữa các tác vụ có thể hoặc không tơng ứngvới đờng kết nối giữa các bộ xử lý trong mạng Hai tác vụ trao đổi dữ liệuthông qua kênh truyền có thể đợc ấn định tới:
Trên cùng một bộ xử lý, khi đó không cần truyền thông trên mạng
Trang 16Nằm trên hai bộ xử lý đợc kết nối trực tiếp, khi đó chỉ truyền thông trựctiếp giữa hai bộ xử lý
Nằm trên hai bộ xử lý không kết nối trực tiếp, khi đó yêu cầu định ờng message trên mạng
đ-2 2 Phơng pháp thiết kế
Hầu hết các bài toán lập trình đều có một vài lời giải song song Phơng
án tốt nhất có thể khác so với phơng án đợc đề nghị bởi các giải thuật tuần
tự đang tồn tại Phơng pháp thiết kế đa ra ở đây có xu hớng tiếp cận ban
đầu trên mô hình độc lập với máy tính song song, vấn đề đựợc chú trọng làtính đồng thời và các khía cạnh thiết kế trên kiến trúc máy tính cụ thể đợc đềcập sau trong tiến trình thiết kế Phơng pháp này hình thành lên tiến trìnhthiết kế gồm có 4 công đoạn: phân rã, truyền thông, tích tụ và ánh xạ Tronghai công đoạn đầu, chúng ta chú trọng vào tính đồng thời và linh động, tìmkiếm để khám phá giải thuật với những tiêu chuẩn này Trong hai công đoạnsau, thứ 3 và 4, chuyển tập trung sang tính cụ bộ và các vấn đề liên quan
đến hiệu năng khác Bốn công đoạn đợc tóm lợc và mô tả nh sau:
Phân rã (Partitioning ): Công việc tính toán và dữ liệu đợc phân rã
thành các tác vụ nhỏ Trong công đoạn này chúng ta bỏ qua các vấn
đề thực tế nh truyền thông, số bộ xử lý trên máy đích Chúng ta chỉ tậptrung vào vấn đề nhận ra đợc các khả năng để thực thi song song
Truyền thông (Communication ): Sau khi phân rã bài toán thành các
tác vụ nhỏ, yêu cầu về truyền thông giữa các tác vụ đợc đặt ra Trongcông đoạn này cũng xác định các cấu trúc và giải thuật truyền thôngthích hợp
Tích tụ ( Agglomeration) Các cấu trúc truyền thông và tác vụ đợc định
nghĩa trong hai công đoạn đầu của quá trình thiết kế đợc đánh giá đốivới yêu cầu hiệu năng và chi phí thực thi Trong công đoạn này, cáctác vụ có thể đợc tích tụ vào trong tác vụ lớn hơn nhằm năng cao hiệunăng hoặc giảm chi phí khác
ánh xạ ( Mapping) ấn định các tác vụ vào trong bộ xử lý, mục đích là
cố gắng thoả mãn hai mục tiêu đối ngợc nhau : cực đại hoá khả năngcủa bộ xử lý và cực tiểu hoá chi phí truyền thông ánh xạ có thể thựchiện tĩnh trớc khi tính toán hoặc tự động trong thời gian thực hiện bởicác giải thuật cân bằng tải
Trang 17Hình 2 2 : Mô tả các công đoạn thiết kế giải thuật song song
Kết quả của quá trình thiết kế là hớng đến một chơng trình có thể tạo
ra hoặc huỷ bỏ các tác vụ một cách tự động, sử dụng các kỹ thuật cân bằngtải để điều khiển ánh xạ các tác vụ đến các bộ xử lý Các công đoạn thiết kếgiải thuật đợc trình bày ở đây thực hiện tuần tự Tuy nhiên, trong thực tế đây
là tiến trình song song mức cao, với nhiều vấn đề liên quan đợc xem xét
đồng thời Mặc dù chúng ta tìm kiếm để tránh quay lui nhng việc đánh giátừng phần hoặc toàn bộ thiết kế có thể yêu cầu thay đổi quyết định thiết kế
đợc tạo ra trong các công đoạn trớc đó
Chi tiết của bốn công đoạn sẽ đợc trình bày trong các mục tiếp theo,trong đó sẽ tìm hiểu sâu về công đoạn và vấn đề cần quan tâm khi thiết kếgiải thuật
2 3 Phân rã
Mục đích của công đoạn này là khám phá đến mức tối đa khả năngsong song của bài toán, do đó chú trọng đến việc định nghĩa một tập lớncác tác vụ nhỏ không có sự liên kết, đợc gọi là các tác vụ fine-grain Khi đó,khối lợng công việc đợc thực hiện thông qua truyền thông giữa các tác vụ làkhông có
Khi phân rã một giải thuật, ngời thiết kế đầu tiên thờng chú trọng nhất
về dữ liệu kết hợp với một bài toán, sau đó xác định một phân rã thích hợp
Trang 18cho dữ liệu và công việc cuối cùng là kết hợp tính toán với dữ liệu nh thế
nào Kỹ thuật này đợc gọi là phân rã theo miền ( domain decomposition).
Một cách tiếp cận khác là phân rã tính toán đợc thực hiện đầu tiên và sau đó
kết hợp dữ liệu với tính toán - đợc gọi là phân rã theo chức năng( functional
decomposition)
2 3 1 Phân rã theo miền
Thông thờng, hớng tiếp cận này quan tâm đến phân chia dữ liệu củabài toán Nếu có thể, chúng ta phân chia dữ liệu thành các phần nhỏ có kíchthớc xấp xỉ nhau Tiếp theo phân chia tính toán đợc thực hiện Thông thờng
là kết hợp mỗi phép toán với phần dữ liệu mà phép toán thao tác trên đó.Việc phân chia này thờng đem lại một số lợng lớn tác vụ, mỗi tác vụ baogồm một số dữ liệu và một tập các phép toán thực hiện trên dữ liệu này Khiphép toán yêu cầu dữ liệu từ một vài tác vụ khác thì dữ liệu sẽ đợc vậnchuyển giữa các tác vụ thông qua truyền thông Yêu cầu này sẽ đợc chỉ ratrong pha tiếp theo của tiến trình thiết kế
Hình 2 3 Mô tả phân r bài toán theo miềnã Dữ liệu đợc phân rã có thể là đầu vào, đầu ra hay các giá trị trunggian của chơng trình Có thể có các phân rã khác nhau dựa trên cấu trúc dữliệu khác nhau hoặc cấu trúc dữ liệu đợc truy xuất tuần tự nhất
Các pha khác nhau của tính toán có thể thao tác trên các cấu trúc dữliệu khác nhau hoặc yêu cầu phân rã khác nhau trên cùng một cấu trúc dữliệu Trong trờng hợp này, ta nên xem xét mỗi pha một cách riêng biệt vàsau đó xác định các giải thuật phân rã và song song phát triển cho mỗi phaphù hợp cùng nhau
Ví dụ ta cần phân rã một bài toán đơn giản liên quan đến khung lới 3chiều nh bài toán mô hình thời tiết, khung lới 3 chiều thể hiện trạng thái củakhí quyển hoặc thể hiện không gian 3 chiều trong bài toán xử lý ảnh Tínhtoán đợc lặp lại trên mỗi điểm của khung lới Khi đó phân rã bài toán có thểtheo 1, 2 hoặc 3 chiều x, y, z Tuy nhiên trong công đoạn đầu tiên này, ngờithiết kế thờng quan tâm đến phân rã có tính linh hoạt nhất và khi đó mỗi tác
vụ sẽ đợc xác định tơng ứng cho mỗi điểm
Trang 19Hình 2 4 Mô tả các phơng pháp phân r theo miền khác nhau cho bàiã
toán liên quan đến khung lới 3 chiều
2 3 2 Phân rã chức năng
Phân rã chức năng cho ta một hớng nhìn khác, mang tính bổ xung vềbài toán Trong hớng tiếp cận này, ngời thiết kế chú trọng đầu tiên vào tínhtoán đợc thực hiện hơn là dữ liệu đợc thao tác bởi phép tính Nếu hớng tiếpcận này thành công, sẽ phân chia quá trình tính toán thành các tác vụ riêng
rẽ Sau đó ta sẽ tiến hành kiểm tra yêu cầu dữ liệu cho những tính toán củatác vụ này Khi yêu cầu dữ liệu riêng rẽ nhau thì phân chia là hoàn toàn, cònkhông thì có thể yêu cầu vận chuyển dữ liệu giữa các tác vụ để tránh lặp lạidữ liệu Việc lặp lại dữ liệu sẽ đợc giải quyết thông qua việc phân rã theomiền
Hình 2 4 Mô tả phân r bài toán theo chức năngãMột ví dụ quen thuộc cho phơng pháp phân rã theo chức năng là bài toán mô hình tính toán thời tiết Xác định thời tiết thông qua việc tổng hợp dữ
liệu từ các mô hình thành phần là : mô hình khí quyển ( Atmospheric Model), mô hình thuỷ học(Hydrology Model ), mô hình mặt đất( Land Surface Model)
và mô hình đại dơng( Ocean Model)
Hình 2 5 Mô tả phân r chức năng trong mô hình tính toán thời tiếtãKhi đó, mỗi thành phần chức năng có thể xem nh là một tác vụ riêngbiệt và tiếp tục đợc song song bởi phân rã theo miền đối với dữ liệu tơng ứngcho từng tác vụ Các mũi tên biểu hiện sự trao đổi dữ liệu giữa các thànhphần trong suốt thời gian tính toán chẳng hạn nh mô hình khí quyển tạo ra
ra dữ liệu về tốc độ gió sẽ đợc sử dụng trong tính toán của mô hình đại
d-ơng, mô hình đại dơng tạo ra dữ liệu về nhiệt độ mặt biển sẽ đợc sử dụngtrong mô hình khí quyển
Trang 20Đối với hầu hết các giải thuật song song thì phân rã theo miền hìnhthành cơ bản cho giải thuật Phân rã chức năng chỉ đợc đánh giá là cáchnhìn khác về bài toán, bổ xung cho phơng pháp phân rã theo miền Tuynhiên đối với các bài toán phức tạp thì phân rã theo miền cũng đóng vai tròquan trọng nh là một kỹ thuật để cấu trúc chơng trình, đơn giản hoá bài toánphức tạp bằng tập các bài toán đơn giản hơn, liên kết với nhau Phân rãchức năng sẽ giảm bớt đợc đáng kể chi phí thiết kế Giải thuật song song tốt
sẽ kết hợp đợc cả phơng pháp phân rã theo miền và phân rã theo chứcnăng
Trong công đoạn phân rã, đôi khi giải thuật tuần tự không thể hiệncho ta khả năng song song Khi đó cần có sự phân tích theo các hớng khácnhau về bài toán, ta mới có thể phân rã đợc Một ví dụ điển hình là bài toántính số đỉnh của một cây duyệt theo thứ tự trớc Nếu nhìn vào giải thuật tuần
tự, ta thấy bài toán có vẻ tuần tự vốn có Bởi vì, chúng ta không thể gánnhãn cho các nút bên phải khi cha biết bao nhiêu nút ở cây bên trái và cũngkhông thể gán nhãn cho các nút ở cây con bên phải của cây con bên trái và
cứ thế
Ta hãy xem xét mô tả đệ qui về bài toán này
PREORDER TRAVERSAL (nodeptr):
Begin
If nodeptr null then
nodecount nodecount + 1
nodeptr label nodecount
PREORDER TRAVERSAL (nodeptr left)
PREORDER TRAVERSAL(nodeptr right)
một cách hệ thống thông qua tất cả các cạnh của cây
Thực tế, giải thuật duyệt cây dọc theo mỗi cạnh hai lần, lần thứ nhất
từ đỉnh cha tới đỉnh con, sau đó thì duyệt ngợc lại Nếu chia mỗi cây thànhhai cây, một cây ứng với duyệt từ trên xuống còn cây kia ứng với duyệt trởlại Khi đó, bài toán duyệt cây sẽ chuyển sang bài toán duyệt một danh sáchliên kết đơn, bài toán này có thể phân rã để thực hiện song song đợc
Hình 2 6 Mô tả phơng pháp phân r bài toán tính số đỉnh cây duyệt theo thứã
Trang 21xem xét các vấn đề đợc liệt kê dới đây để tránh gặp phải những sai sótkhông dễ nhận ra trong quá trình thiết kế
Hầu hết công việc của bài toán khoa học và kỹ thuật lớn thờng đợchoàn thành trong một số đoạn mã, ngời ta thờng gọi đó là cáchotspots của bài toán Khi phân rã bài toán, ta lên chú trọng vào các
“ ”, đây là
đoạn mã này, bỏ qua các đoạn mã chiếm thời gian CPU không đáng
kể
Phân chia bài toán thành các tác vụ với số lợng lớn hơn nhiều so với
số bộ xử lý Nếu không, sự linh hoạt khi áp dụng vào mô hình cụ thể sẽkhông có
Tránh yêu cầu tính toán và lu trữ d thừa Bởi nếu không sẽ không cókhả năng mở rộng đối với các bài toán lớn hơn
Ta có thể so sánh đợc kích thớc của các tác vụ, nếu không sẽ khókhăn khi ta định vị số lợng ngang nhau giữa các bộ xử lý
Số lợng tác vụ phải linh hoạt với kích thớc bài toán, nếu không cóthể khó giải bài toán lớn hơn khi có nhiều bộ xử lý hơn
2 4 Truyền thông
Các tác vụ đợc tạo ra trong công đoạn phân rã có xu hớng đợc thựchiện đồng thời nhng nhìn chung không thể thực hiện một cách độc lập Tínhtoán đợc thực hiện trong một tác vụ thờng sẽ yêu cầu dữ liệu kết hợp vớitác vụ khác Sau đó, dữ liệu phải đợc truyền giữa các tác vụ để cho phéptính toán đợc thực hiện Luồng thông tin này đợc chỉ ra trong công đoạntruyền thông của một tiến trình thiết kế
Trong mô hình thiết kế, ta đã khái niệm hoá truyền thông giữa hai tác
vụ nh một kênh kết nối, trên đó một tác vụ có thể đợc gửi và những tác vụkhác có thể nhận Bởi vậy, truyền thông kết hợp với một giải thuật có thể đ-
ợc chỉ ra trong hai pha
Đầu tiên là xác định cấu trúc kênh là trực tiếp hoặc không trực tiếp
kết nối các tác vụ yêu cầu dữ liệu ( consumers) với các tác vụ chiếm giữ dữ liệu ( producers)
Thứ hai, chỉ ra các message đợc gửi và nhận trên những kênh này.Việc định nghĩa ra các kênh truyền sẽ làm phức tạp bài toán còn gửimessage sẽ tăng chi phí truyền thông Bởi vậy, chúng ta tránh đa ra cáckênh và phép toán truyền thông không cần thiết Hiệu năng có thể năngcao bằng cách phân tán các phép toán truyền thông trên nhiều tác vụ và tổchức các phép toán truyền thông sao cho có thể thực hiện đồng thời
Trong các bài toán phân rã theo miền, có thể sẽ khó khăn khi xác
định yêu cầu truyền thông bởi vì ta không nhận thấy đợc sự phụ thuộc dữliệu giữa các tác vụ Sau khi thực hiện công đoạn phân rã sẽ hình thành ratập các tác vụ không liên kết Tuy nhiên, sự phụ thuộc dữ liệu giữa các tác
vụ vẫn còn khi mà một số phép toán trong tác vụ này yêu cầu dữ liệu từcác tác vụ khác Tổ chức truyền thông một cách hiệu quả có thể đang trởthành thách thức, thậm chí các phân rã đơn giản có thể có cấu trúc truyềnthông phức tạp Ngợc lại, các yêu cầu truyền thông trong các giải thuậtsong song đạt đợc bằng phân rã chức năng thờng là đơn giản, chúng tơngứng với luồng dữ liệu trao đổi giữa các tác vụ Chẳng hạn nh bài toán môhình thời tiết, truyền thông tơng ứng với luồng dữ liệu liên kết giữa cácthành phần của mô hình
Thông thờng có hai kiểu truyền thông là truyền thông cục bộ, mỗi tác
vụ truyền thông với một tập nhỏ các tác vụ khác gọi là các tác vụ kề bêncủa nó, còn lại gọi là truyền thông toàn cục, yêu cầu mỗi tác vụ truyềnthông với nhiều tác vụ
2 4 1 Truyền thông cục bộ
Cấu trúc truyền thông cục bộ đạt đợc khi một phép toán yêu cầu từmột số nhỏ các tác vụ bên cạnh khác Khi đó sẽ đơn giản để xác định các
Trang 22kênh kết nối giữa tác vụ thực hiện phép toán (consumer) với các tác vụ nắm giữ dữ liệu (producer) để tính toán và đa ra các phép toán nhận và gửi thích
hợp trong các tác vụ này
Để mô tả kiểu truyền thông này, ta xem xét các yêu cầu truyền thôngtrong tính toán số của phơng pháp vi phân hữu hạn Jacobi Trong bài toánnày, một lới đa chiều các điểm đợc tạo ra, điểm ở giữa sẽ đợc cập nhậttheo các điểm bên cạnh
Sau đây là công thức tính cho lới 2 chiều
Truyền thông giữa các tác vụ đợc biểu diễn nh sau:
Hình 2 7 Mô tả truyền thông cục bộ giữa các tác vụ
Tác vụ Ti , j sẽ gửi Xi , j sang các vụ bên cạnh và nhận dữ liệu là Xi 1 ,j ,
Xi 1 ,j , Xi, j 1, Xi, j 1 từ các vụ bên cạnh
2 4 2 Truyền thông toàn cục
Một phép toán truyền thông toàn cục sẽ đợc thực hiện với sự thamgia của nhiều tác vụ Khi phép toán đợc thực hiện, sẽ không đơn giản đểnhận ra các cặp producer/consumer Với cách tiếp cận trên thì có thể dẫn
đến quá nhiều truyền thông hoặc hạn chế khả năng tính toán đồng thời
Ví dụ, xem xét bài toán thực hiện phép toán rút gọn song song, rútgọn N giá trị phân tán trên N tác vụ
có thể nhận và tính tổng chỉ một số tại một thời điểm, nên cách tiếp cận này
có độ phức tạp O(N) về thời gian để tính tổng N số, đây không phải là giảithuật tốt
Hình 2 8 Mô tả truyền thông toàn cục trong bài toán tính tổng
Ví dụ trên đã mô tả hai vấn đề chung ngăn cản thực hiện song songhiệu quả trong các giải thuật dựa trên quan điểm hoàn toàn cục bộ vềtruyền thông
Giải thuật này đợc tập trung hoá, không phân tán tính toán vàtruyền thông Một tác vụ đơn phải tham gia trong tất cả phép toán
Trang 23 Giải thuật là tuần tự, không cho phép nhiều phép toán truyềnthông và tính toán xử lý đồng thời
Chúng ta cần giải quyết cả hai vấn đề này để phát triển giải thuậtsong song tốt
a Phân tán tính toán và truyền thông
Trớc hết, ta xem xét vấn đề phân tán tính toán và truyền thông kếthợp với bài toán tính tổng Việc phân tán thực hiện bằng cách thay vì chỉ mộttác vụ tính toán tổng, mỗi tác vụ i, 0<i< N-1, sẽ thực hiện tính tổng
và gửi kết quả sang tác vụ bên tay trái Tác vụ 0 sẽ chứa tác vụ cuối cùng.Giải thuật này phân tán N-1 phép toán cộng và truyền thông, nhng cho phépthực hiện đồng thời chỉ khi nhiều phép tính tổng đợc thực hiện
động tốt trong tính toán song song khi các bài toán con có thể đợc giải quyết
Trang 24 Mỗi tác vụ có truyền thông chỉ với một số nhỏ các tác vụ bêncạnh hay không? Nếu nh mỗi tác vụ phải truyền thông với nhiều tác
vụ thì ta có thể thực hiện truyền toàn cục thông qua truyền thông cục
bộ
Các phép toán truyền thông có thể xử lý đồng thời không? Nếukhông, giải thuật sẽ không hiệu quả và không linh động Nên sử dụng
kỹ thuật chia và trị nh giải thuật tính tổng
Xen kẽ giữa truyền thông và tính toán nếu có thể Thực hiện
đ-ợc điều này sẽ tăng đđ-ợc hiệu năng cho giải thuật
đoạn đầu có thể có hiệu quả cao, ví dụ nh sự phân chia ban đầu tạo ra quánhiều tác vụ so với số bộ xử lý trên máy tính đích và máy tính này lại khôngthiết kế để thực hiện có hiệu quả các tác vụ có khối lợng tính toán nhỏ Trong công đoạn tích tụ này, ta sẽ chuyển thiết kế có tính lý thuyếtvào thực tế Xem xét lại các quyết định đã tạo ra trong pha phân rã vàtruyền thông để đạt đợc một giải thuật sẽ thực hiện hiệu quả trên một lớpmáy tính song song nào đó Đặc biệt là xem xét việc tích tụ các tác vụ nhỏ
đã tạo ra trong pha phân rã thành các tác vụ có kích thớc lớn hơn đợc gọi làcác tác vụ grain-coarsed Khi tích tụ các tác vụ nhỏ thành tác vụ lớn hơn, chíphí truyền thông sẽ giảm đi nhng đồng nghĩa với việc làm giảm tiềm năngthực hiện đồng thời và khả năng linh động của giải thuật
Trang 25
Hình 2 11 Các ví dụ minh hoạ cho công đoạn tích tụ
(a) Kích thớc của tác vụ đợc gia tăng bằng cách rút gọn chiều phân rã
từ 3 xuống 2
(b) Các tác vụ ban đầu đợc kết hợp lại dẫn đến phân rã theo 3 chiều
với kích thớc lớn hơn
(c) Các cây con trong cấu trúc chia và trị đ“ ”, đây là ợc hợp lại
(d) Các nút trong một giải thuật cây đợc kết hợp
Số lợng tác vụ trong pha tích tụ, mặc dù đợc rút gọn nhng vẫn phảilớn hơn số bộ xử lý Trong trờng hợp này, việc thiết kế của ta vẫn có phần lýthuyết bởi vì các vấn đề liên qua đến ánh xạ vẫn còn cha đợc giải quyết.Vấn đề này sẽ đợc đề cập đến trong công đoạn ánh xạ Nhng, nếu pha tích
tụ giảm số tác vụ xuống bằng với số bộ xử lý thì mỗi tác vụ sẽ tơng ứng vớimột bộ xử lý và quá trình thiết kế có thể dừng ở công đoạn này
2 5 1Gia tăng kích th ớc tác vụ
Trong pha phân rã của quá trình thiết kế, ta cố gắng chú trọng vàoviệc xác định càng nhiều tác vụ càng tốt nếu nh có thể Đây là nguyên tắctốt bởi vì nguyên tắc buộc chúng phải xem xét một lớp rộng các khả năng đểthực hiện song song Tuy nhiên, chi phí truyền thông để thực hiện sẽ rất lớn,
ảnh hởng đến hiệu năng song song Trên hầu hết các máy tính song song,khi muốn nhận và gửi các message thì ta phải dừng công việc tính toán đểkhởi tạo truyền thông, chi phí cho truyền thông trên mạng thờng lớn, do đó
ta cần phải giảm số lợng thời gian dành cho việc truyền thông Thời giantruyền thông phụ thuộc vào số lợng dữ liệu gửi và số lần gửi và nhận
Trang 26message Do đó để năng cao hiệu năng, ta cần phải kết hợp các tác vụ nhỏlại thành tác vụ lớn hơn nhằm giảm số lần truyền message giữa các tác vụ Xem xét ví dụ tích tụ trong bài toán vi phân hữu hạn hai chiều sau:
Hình 2 12 Mô tả phân r và tích tụ theo hai chiều của bài toán ã
Trong hình (a), tính toán đợc phân rã thành 88 = 64 tác vụ, mỗi tác
vụ tơng ứng với một điểm đơn Mỗi tác vụ yêu cầu 4 truyền thông, tổng là 64
4= 256 yêu cầu truyền thông, truyền 256 đơn vị dữ liệu
Hình (b), tích tụ các tác vụ nhỏ thành tác vụ lớn theo hai chiều, có 2
2 tác vụ, mỗi tác vụ lớn tơng ứng với 16 điểm, tổng yêu cầu truyền thông là
4 4 = 16, giá trị dữ liệu đợc truyền là 16 4 =64
Nh vậy với việc tích tụ thành tác vụ lớn hơn, chi phí truyền thông sẽgiảm đi rất nhiều
Đôi khi ta cũng có thể kết hợp hài hoà giữa lặp lại tính toán để giảmbớt yêu cầu truyền thông và thời gian thực hiện Ví dụ nh xem xét một biếnthể của bài toán tính tổng đã ví dụ trớc Tính tổng đợc lặp lại trong mỗi tác
vụ
Trang 27Chúng ta xem xét một biến thể khác là tính tổng trên mô hình Butterfly.Khi đó, mỗi tác vụ sẽ nhận dữ liệu từ hai tác vụ, thực hiện phép cộng đơn,gửi dữ liệu của phép cộng đến hai tác vụ trong đoạn tiếp theo Khi sử dụngmô hình này đã gia tăng công việc thực hiện, tính tổng và broacast tổng chỉcần log N bớc
Nh vậy trong nhiều bài toán, lặp lại tính toán trên các tác vụ có thể rútgọn đợc thời gian tính toán
Hình 2 14 Mô tả tính tổng N giá trị trên N tác vụ với mô hình Butterfly
2 5 2 Duy trì khả năng linh động
Trang 28Khi tích tụ các tác vụ để tạo ra các quyết định thiết kế, ta có thể sẽhạn chế một cách không cần thiết tính qui mô của giải thuật Ví dụ, ta có thểchọn phân rã chỉ theo một chiều đối với cấu trúc dữ liệu đa chiều, với lý dorằng cách phân chia này đa ra khả năng thực hiện đồng thời cao hơn đối với
số bộ xử lý hiện có Tuy nhiên, chiến lợc này bị hạn chế nếu nh giải thuậtphải chuyển sang thực hiện trên các máy tính song song lớn hơn Khi đó cóthể dẫn đến một giải thuật hiệu quả thấp
Nếu có khả năng tạo ra một số lợng tác vụ có thể thay đổi thì giảithuật sẽ trở lên khả chuyển và qui mô hơn Khả năng linh động này cũng trởlên hữu ích khi mã hoá giải thuật vào một máy tính cụ thể, bởi vì cho phép taluôn có thể tạo ra số tác vụ lớn hơn số bộ xử lý, khả năng xen kẽ giữa truyềnthông và tính toán có thể thực hiện
Lợi ích tiếp theo của việc tạo ra nhiều tác vụ hơn số bộ xử lý là cungcấp nhiều cơ hội hơn cho các chiến lợc ánh xạ, cân bằng nạp tính toán trêncác bộ xử lý Vấn đề này sẽ đợc trình bày trong mục tiếp theo
Tối u hoá về số lợng tác vụ là một câu hỏi khó, thờng phải có kết hợpgiữa các nghiên cứu thực tế và mô hình phân tích để trả lời đợc câu hỏi này.Tuy nhiên, tính linh hoạt không cần thiết cứ phải tạo ra một số lợng lớn tác
vụ Điều quan trọng là thiết kế của ta không hạn chế số lợng có thể đợc tạo
ra, khi đó độ lớn của từng tác vụ có thể đợc điều chỉnh bởi một thông sốnhập vào khi chạy
2 5 4 Các vấn đề cần quan tâm
Những quyết định phân rã và truyền thông trong hai công đoạn đầu cóthể đợc thay đổi trong công đoạn này nhằm giảm thời gian thực hiện bàitoán Xem xét lại giải thuật qua 3 công đoạn thiết kế ban đầu là cần thiết để
đạt đợc giải thuật song song tốt khi xem xét đến mô hình máy cụ thể
Tích tụ đã giảm chi phí truyền thông bằng việc tăng tính cục bộ dữliệu cha ? Nếu không, kiểm tra giải thuật để xác định xem ta có thể
đạt đợc bằng cách sử dụng chiến lợc tích tụ khác
Nếu nh thựchiện tích tụ làm cho tính toán phải lặp lại thì ta phải xác
định xem lợi ích đem lại của tính toán lặp lại có lớn hơn chí phí bỏ ra
nh thời gian tính toán tăng lên, chí phí về thực hiện chơng trình
Số lợng tác vụ vẫn linh động với kích thớc bài toán ? nếu không, giảithuật mà ta thiết kế không có khả năng giải quyết các bài toán lớnhơn trên máy tính song song lớn hơn
Nếu việc tích tụ làm mất các khả năng để thực hiện đồng thời, ta đãkiểm tra lại xem giải thuật có đủ tính đồng thời cho máy tính hiện thời
và trong tơng lai không ? Một giải thuật có sự đồng thời kém có thểvẫn trở lên hiệu quả nhất, nếu các giải thuật khác có chi phí truyềnthông quá lớn Khi đó mô hình hiệu năng có thể đợc sử dụng để xác
định
2 6 ánh xạ
Trong công đoạn thứ t và là cuối cùng của quá trình thiết kế giải thuậtsong song, mỗi tác vụ sẽ đợc ấn định vào một bộ xử lý nào đó Công đoạnthiết kế này không có trong giải thuật thiết kế cho các máy tính đơn bộ xử lýhoặc bộ nhớ dùng chung bởi vì thờng đợc hệ điều hành hoặc các kỹ thuậtphần cứng cung cấp lập lịch trình tự động
Nhìn chung, cho đến nay các kỹ thuật ánh xạ đa năng vẫn cha đợcphát triển cho các máy tính song song, ánh xạ vẫn còn là một bài toán khó
mà ta phải chỉ ra rõ ràng khi thiết kế bài toán
Mục đích của việc phát triển các giải thuật ánh xạ thờng là để cực tiểuhoá tổng thời gian thực hiện Chúng ta sử dụng hai chiến lợc sau để đạt đợcmục đích này
1 Đặt các tác vụ có thể thực hiện đồng thời trên các bộ xử lýkhác, khi đó sẽ năng cao tính đồng thời
Trang 292 Đặt các tác vụ thờng có truyền thông với nhau trên cùng bộ xử
lý, khi đó sẽ gia tăng tính cục bộ
Rõ ràng, hai chiến lợc này thờng mâu thuẫn với nhau và thiết kế của
ta sẽ liên quan đến sự kết hợp giữa hai chiến lợc Hơn nữa, các giới hạn vềtài nguyên có thể hạn chế số lợng tác vụ đợc đặt trên một bộ xử lý đơn Bài toán ánh xạ đợc biết đến nh bài toán NP-complete, có nghĩa làgiải thuật đánh giá những kết hợp của hai chiến lợc trong trờng hợp chung
có độ phức tạp thời gian tính toán là hàm đa thức Trong mục này sẽ đa ra
sự phân loại bài toán và trình bày một vài kỹ thuật mang tính mô phỏng Rất nhiều giải thuật đợc phát triển sử dụng các kỹ thuật phân rã theomiền, nét nổi bật là số lợng cố định các tác vụ kích thớc ngang nhau vàtruyền thông giữa các tác vụ tạo lên đồ thị có cấu trúc Trong trờng hợp này,một ánh xạ tĩnh có hiệu quả là dễ dàng đạt đợc Chúng ta ánh xạ các tác vụtrong một cách cực tiểu hoá truyền thông giữa các bộ xử lý Khi đó kiến trúcmạng liên kết giữa các bộ xử lý sẽ ảnh hởng rất nhiều đến công việc ánh xạtĩnh Vấn đề này sẽ đợc đề cập chi tiết hơn trong chơng sau khi tìm hiểu vềkiến trúc bộ xử lý
Trong các giải thuật dựa trên phân rã theo miền phức tạp với khối ợng công việc biến đổi cho mỗi tác vụ và truyền thông giữa các tác vụ tạolên đồ thị bất kỳ, các chiến lợc ánh xạ và tích tụ hiệu quả không trở lên rõràng cho ngời thiết kế Bởi vậy, ta có thể cung cấp các giải thuật cân bằngnạp động, tìm kiếm để nhận ra các chiến lợc tích tụ và ánh xạ thích hợp,thông thờng ngời ta sử dụng các kỹ thuật mang tính chất kinh nghiệm(
l-heuristic techniques)
Đối với các giải thuật dựa trên phân rã chức năng thờng dẫn đến tínhtoán bao gồm nhiều tác vụ có thời gian thực hiện ngắn và thờng liên kết vớicác tác vụ khác chỉ tại thời điểm bắt đầu và kết thúc thực hiện, các yêu cầucục bộ ít Trong trờng hợp này, ta có thể sử dụng các giải thuật lập lịch trình
tác vụ ( task-scheduling) để định vị tác vụ vào các bộ xử lý nhằm tối u khả
năng tính toán cho bộ xử lý
2 6 1 Các giải thuật cân bằng nạp
Một lớp rộng các kỹ thuật cân bằng nạp đa năng hoặc cho ứng dụng
cụ thể đã đợc đề xuất, sử dụng trong các giải thuật song song dựa trên phânrã theo miền Ta sẽ xem xét một số cách tiếp cận sau : phơng pháp phân
đôi đệ quy (recursive bisection), giải thuật cục bộ, phơng pháp xác xuất, và
ánh xạ chu trình Tất cả kỹ thuật này có xu hớng tích tụ các tác vụ nhỏ grained định nghĩa trong phân rã ban đầu thành một tác vụ lớn coarse-grained cho một bộ xử lý
a Phân đôi đệ quy:
Đợc sử dụng để phân rã miền bài toán thành các miền nhỏ có thờigian tính toán xấp xỉ nhau trong khi cố gắng cực tiểu hoá chi phí truyềnthông, các kênh truyền thông sẽ ngang qua đờng biên tác vụ Đầu tiên,miền đợc phân chia theo một chiều dẫn đến hai miền con Công việc phânchia sẽ đợc lặp lại đối với miền mới cho đến khi bằng với số miền con ta yêucầu Giải thuật phân chia này sẽ tự thực hiện trong khi song song
b Giải thuật cục bộ
Trong kỹ thuật phân đôi đệ qui có chi phí tơng đối lớn bởi vì giải thuậtyêu cầu biết toàn cục về trạng thái tính toán Ngợc lại, các giải thuật cânbằng nạp cục bộ thay đổi nạp tính toán sử dụng những thông tin lấy từ một
số lợng nhỏ các bộ xử lý bên cạnh
Bởi vì các giải thuật cục bộ chi phí không cao nên có thể trở lên hữudụng trong các trờng hợp mức độ thay đổi nạp có tính cố định Tuy nhiên,
Trang 30giải thuật cục bộ thờng kém hiệu quả hơn giải thuật toàn cục, đặc biệt có thểtrở lên chậm với những thay đổi lớn
c Phơng pháp xác xuất
Đây là một cách tiếp cận cân bằng nạp đơn giản đặc biệt, tác vụ đợc
định vị tới bộ xử lý đợc chọn ngẫu nhiên Nếu số lợng các tác vụ lớn, ta cóthể hy vọng mỗi bộ xử lý sẽ đợc định vị với số lợng tính toán tơng tự nhau.Thuận lợi của phơng pháp này là chi phí thấp và có tính qui mô cao Nhợc
điểm là có xu hớng chi phí truyền thông cao
d ánh xạ chu trình
Trong kỹ thuật này, các tác vụ sẽ đợc ánh xạ theo chu trình tới các bộ
xử lý Kỹ thuật này là một hình thức của ánh xạ xác xuất Ngoài ra ta có thể
ánh xạ theo chu trình khối tác vụ đến bộ xử lý
2 6 2 Các giải thuật lập lịch trình tác vụ
Các giải thuật lập lịch trình tác vụ có thể đợc sử dụng khi phân rã bàitoán theo chức năng, mỗi tác vụ ít có yêu cầu dữ liệu cục bộ Khi đó mộtvùng tác vụ tập trung hoặc phân tán đợc duy trì, trong đó các tác vụ mới đợcthiết lập và từ đó các tác vụ đợc lấy ra để định vị đến bộ xử lý
Thông thờng bài toán đợc giải quyết bằng một tập các tác vụ nhâncông (worker), mỗi tác vụ worker trên một bộ xử lý Có một số cách tiếp cậnsau: chủ /tớ ( manager/ worker), chủ /tớ phân cấp ( hierarchical manager/worker ) và tản quyền
a Manager/ Worker Manager là một tác vụ quản lý tập trung chịutránh nhiệm định vị bài toán Mỗi worker sẽ lặp lại yêu cầu và thựchiện bài toán đợc phân phát từ manager Worker cũng có thể gửi tác
vụ mới đến manager để định vị tới worker khác Kỹ thuật này làmcho manager dễ dẫn đến quá tải khi số lợng yêu cầu đồng thời từcác worker lớn
Hình 2 13 Mô tả mô hình lập lịch trình Manager/ Worker
b Manager/ Worker phân cấp là một biến đổi của tổ chức Manager/Worker, hạn chế đợc hiện tợng quá tải trong manager bằng cáchphân chia các worker thành các tập rời nhau, mỗi tập có mộtManager phụ ( Submanager) Các worker sẽ yêu cầu tác vụ từSubmanager, và chính Submanager cũng liên lạc định kỳ vớimanager và với các submanager khác để cân bằng nạp giữa các tập
Trang 31Các bộ xử lý đợc worker liên lạc có thể là liền bên cạnh hoặc một tập
ớc các tác vụ biến đổi hoặc không đợc biết tận lúc chạy, chúng ta có thể sửdụng một sơ đồ cân bằng nạp tĩnh Khi bài toán phân rã theo chức năng thìcấu trúc lập lich trình có thể đợc sử dụng để lập lịch trình tính toán
Nếu sử dụng sơ đồ cân bằng nạp tập trung, bạn có kiểm tra đợcmanager không bị quá tải không ?
Nếu sử dụng sơ đồ cân bằng nạp động, bạn có đánh giá đợc chi phítơng đối so với các chiến lợc khác không? Các sơ đồ ánh xạ theo chutrình hay theo xác xuất là đơn giản và ta nên quan tâm đến những kỹthuật này, bởi vì chúng có thể tránh đợc việc lặp lại các phép toán cânbằng nạp
Sau công đoạn này, công việc thiết kế một hoặc nhiều giải thuật chobài toàn đã hoàn thành Tuy nhiên để chọn lựa ra giải thuật hiệu quả trong
số các giải thuật trong quá trình thiết kế tạo ra, ta cần có sự đánh giá sơ bộthông qua các tiêu chuẩn đánh giá liên quan liên quan đến kiến trúc máytính Các vấn đề này sẽ đợc đề cập đến trong hai chơng tiếp theo
Trang 32Chơng 3 Mạng kết nối
Trong máy tính song song, khi truy nhập dữ liệu từ xa sẽ yêu cầutruyền thông giữa các bộ xử lý hoặc giữa bộ xử lý với bộ nhớ Nếu nh kết nốitrực tiếp điểm tới điểm giữa hai bộ xử lý bất kỳ thì chi phí cho việc kết nốimạng sẽ rất lớn bởi vì sẽ dùng O (p2) dây kết nối giữa các bộ xử lý
Để giảm chi phí dây kết nối và truyền thông, việc kết nối đợc thực hiện
có chọn lọc giữa các cặp bộ xử lý Do đó, khi truyền thông giữa hai bộ xử lýkhông đợc kết nối trực tiếp sẽ yêu cầu kỹ thuật định đờng thông qua bộ xử lýtrung gian
Kết quả của quá trình kết nối là mạng liên kết và kiến trúc của mạng
phần nào xác định độ trễ ( latency) và băng thông ( bandwidth ) truyền
thông Những thông số này sẽ ảnh hởng đến thời gian truyền thông trong khitính toán
Sau đây sẽ trình bày một số mạng liên kết thông dụng và đánh giáthông qua bốn tiêu chuẩn, nhúng đồ thị tác vụ vào kiến trúc đích trong việc
ánh xạ dữ liệu tĩnh
3 1 Các mạng kết nối thông dụng
Biểu diễn mạng kết nối thông qua đồ thị với nút (nodes) hay còn gọi là
c đỉnh (vertices) mô tả bộ xử lý và cạnh (edges) mô tả đờng liên lạc giữa hai
bộ xử lý Để hiểu đợc hiệu quả trong việc thực thi giải thuật song song trênphần cứng thực sự, chúng ta sẽ đánh giá các mạng này theo các tiêu chuẩnsau:
1 Đờng kính (Diameter): Đờng kính của một mạng là khoảng
cách lớn nhất giữa hai nút Đờng kính thấp sẽ tốt hơn, bởi vìkhi bán kính thấp sẽ đặt một giới hạn thấp hơn cho độ phứctạp của giải thuật song song yêu cầu truyền thông giữa hainút bất kỳ
2 Độ rộng phân đôi của mạng(Bisection width): Độ rộng phân
đôi của một mạng là số cạnh nhỏ nhất phải loại bỏ để chiamạng thành hai nửa có số nút bằng nhau Độ rộng phân đôicàng cao thì càng tốt, bởi vì trong các giải thuật yêu cầu vậnchuyển số lợng lớn dữ liệu, kích thớc của tập dữ liệu đợc chiabởi độ rộng phân đôi sẽ đặt một giới hạn thấp hơn cho độphức tạp của giải thuật song song
3 Số cạnh trên nút ( Number of edges per node) Là điều tốt
nhất nếu số cạnh trên nút là một hằng số độc lập với kích
th-ớc mạng, bởi vì khi đó mạng sẽ dễ dàng linh hoạt hơn đối vớicác hệ thống có số lợng lớn các nút
4 Độ dài cạnh lớn nhất (Maximum edge length) Đối với lý do về
tính linh hoạt, là điều tốt nếu độ dài này là một hằng số độclập với kích thớc của mạng, để cho các nút và cạnh trongmạng có thể đợc bố trí trong không gian 3 chiều
3 1 1 Mạng Mesh
Trong một mạng Mesh, các nút đợc sắp xếp vào trong một lới q chiều.Truyền thông đợc cho phép giữa hai nút kề nhau, bởi vậy các nút bên trongtruyền thông đợc với 2q bộ xử lý khác nhau
Hình dới đây mô tả một mạng Mesh 2 chiều (2D)( Hình a ) Một vàibiến thể của mô hình Mesh cho phép kết nối vòng lại giữa các bộ xử lý trêncạnh của mô hình Mesh Những kết nối này có thể kết nối các bộ xử lýtrong cùng một hàng (hình b) hay một cột hoặc hàng liền kề hoặc cột liềnkề(hình c)
Vũ Trung Hiếu Tin3-K42 32Hình a Hình b Hình c
Trang 33Đánh giá mạng Mesh
Đánh giá mạng Mesh theo bốn tiêu chuẩn trên với giả sử không có kếtnối vòng lại
Khi đó bán kính của mạng q chiều với kq nút là q(k-1) Vì thế, từ quan
điểm lý thuyết, mạng mesh có nhợc điểm về yêu cầu định đờng dữ liệu ờng ngăn cản sự phát triển của các giải thuật song song với thời gian là hàmpolylogarithmic ( hàm loga cơ số mũ)
Độ rộng phân đôi với kq nút là kq 1 Số cạnh lớn nhất trên nút là 2q.Chiều dài cạnh lớn nhất là một hằng số, độc lập với số nút, đối với các mạngMesh 2 hoặc 3 chiều
Mạng Mesh 2 chiều đã trở thành kiến trúc phổ biến cho mô hình dãy
bộ xử lý, chẳng hạn nh các máy Goodyear Aerospace s MPP’s Paragon XP/S TM , AMT DAP
TM , và MasPar s MP 1’s Paragon XP/S TM Máy tính Intel Paragon XP/S theo mô hìnhmulticomputer cũng kết nối các bộ xử lý theo tổ chức mạng Mesh hai chiều
3 1 2 Mạng bus/star
Trong mạng Bus, các nút mạng kết nối với nhau thông một đờng,mạng Star hình thành bởi kết nối các nút khác đến một nút trung tâm
Đánh giá mạng Bus / Star
Nếu mạng Bus/ Star có k nút thì sẽ có bán kính mạng là 2, độ rộngphân đôi là 2 Số cạnh trên nút là k Độ dài cạnh lớn nhất là thay đổi
3 1 3 Mạng cây nhị phân
Trong một mạng cây nhị phân, có 2k -1 nút đợc sắp xếp vào trongmột cây nhị phân hoàn chỉnh có độ sâu k-1 Mô tả cây nh hình vẽ dới đây:
Hình 3 3 Mạng cây nhị phân
Đánh giá mạng nhị phân
(a)
(b)
Trang 34Một nút nhiều nhất có 3 kết nối Mỗi nút bên trong có thể truyền thôngvới hai nút con và nút cha của nó ngoại trừ nút gốc không có nút cha Câynhị phân có bán kính thấp, 2(k-1), nhng có độ rộng phân đôi nhỏ
3 1 4 Mạng Hypertree
Mạng hypertree thể hiện một cách tiếp cận để xây dựng một mạngkết hợp đợc bán kính thấp của mạng cây nhị phân nhng lại tăng đợc độ rộngphân đôi Cách đơn giản nhất xem xét mạng hypertree có cấp(degree) k vàchiều sâu( depth) d là ta xem xét mạng từ hai hớng khác nhau
Các hình vẽ dới đây mô tả mạng hypertree có cấp là 4 và chiều sâu là
2 Hình a mô tả hớng nhìn từ phía trớc, hình b mô tả hớng nhìn từ phía bêncạnh, hình c mô tả mạng đầy đủ đợc kết hợp từ hai hớng nhìn
Hình 3 4 Mạng hypetree
Đánh giá mạng Hypertree
Một mạng hypertree có cấp là 4 thì với độ sâu là d ta sẽ có 4d lá và 2
d (2d 1-1) nút đờng kính của mạng là 2d và độ rộng phân đôi là 2d 1 Sốcạnh trên nút 6 và chiều dài cạnh dài nhất là một hàm tăng theo kích th-
k Chiều cao sẽ đợc tăng lên khi ta thêm các kết nối giữa các bộ xử lý saocho các bộ xử lý trong mỗi mức cây hình thành một mạng Mesh hai chiều
(c)
Trang 35
Hình 3 5 Mạng hình chóp kích thớc 16
Đánh giá mạng hình chóp
Một mạng hình chóp có kích thớc là k2 thì mức 0 (mức cơ sở) là mộtmạng Mesh 2D có k2 bộ xử lý
Tổng số bộ xử lý trong một mạng hình chóp kích thớc k2 là (4/3) k2(1/3) Các mức của mạng hình chóp đợc đếm theo thứ tự tăng lên bắt đầu từmức cơ sở có số hiệu là 0 và bộ xử lý đơn tại đỉnh của hình chóp có số hiệumức là log k
-Mỗi bộ xử lý bên trong đợc kết nối tới 9 bộ xử lý khác: một trên, 4 xungquanh, và 4 dới
Ưu điểm của mạng hình chóp là giảm đờng kính Đờng kính của mộtmạng hình chóp kích thớc k2 là 2 logk và độ rộng phân đôi là 2k Số kết nốilớn nhất trên mỗi nút luôn 9 với kích thớc mạng bất kỳ Tuy nhiên không
nh mạng Mesh 2D, chiều dài cạnh dài nhất trong mạng hình chóp là mộthàm tăng theo kích thớc mạng
số hiệu của hàng giảm thì độ rộng cánh tăng theo mũ Vì lý do này màchiều dài của đờng nối mạng dài nhất tăng khi số nút mạng tăng
Đờng kính mạng Butterffly có (k+1) 2k nút là 2k và độ rộng phân đôi
là cạnh nhau nếu nhãn của chúng khác nhau chỉ một bít
Đờng kính của một mạng có 2k nút là k, và độ rộng phân đôi có kíchthức mạng là 2k -1, tổ chức mạng hypercube có bán kính mạng thấp và độ