1. Trang chủ
  2. » Luận Văn - Báo Cáo

Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU

70 7K 11
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 4,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU

Trang 1

Mở đầ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 2

4 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 3

Mở đầ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 4

Nguyê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 7

Chơ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 10

1 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 11

Mô 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 12

nà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 13

Hì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 15

Chơ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 16

Nằ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 17

Hì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 18

cho 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 19

Hì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 21

xem 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 22

kê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 26

message 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 88 = 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 27

Chú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 28

Khi 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 29

2 Đặ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 30

giả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 31

Cá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 32

Chơ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 34

Mộ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à độ

Ngày đăng: 24/04/2013, 16:40

HÌNH ẢNH LIÊN QUAN

Hình 1. 2: Mô tả phân loại kiến trúc của Flynn - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Hình 1. 2: Mô tả phân loại kiến trúc của Flynn (Trang 8)
Hình 1. 4 Mô tả kiến trúc MIMD - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Hình 1. 4 Mô tả kiến trúc MIMD (Trang 9)
Hình 1. 6 Mô tả kiến trúc bộ nhớ phân tán - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Hình 1. 6 Mô tả kiến trúc bộ nhớ phân tán (Trang 10)
Hình 1. 10 Mô tả mô hình song song dữ liệu - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Hình 1. 10 Mô tả mô hình song song dữ liệu (Trang 13)
Hình 2. 1 Mô tả kết nối giữa các tác vụ. - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Hình 2. 1 Mô tả kết nối giữa các tác vụ (Trang 16)
Hình 2. 2 : Mô tả các công đoạn thiết kế giải thuật song song. - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Hình 2. 2 : Mô tả các công đoạn thiết kế giải thuật song song (Trang 19)
Hình 2. 3 Mô tả phân rã bài toán theo miền - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Hình 2. 3 Mô tả phân rã bài toán theo miền (Trang 20)
Hình 2. 4 Mô tả phân rã bài toán theo chức năng - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Hình 2. 4 Mô tả phân rã bài toán theo chức năng (Trang 21)
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ứ tù tríc - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
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ứ tù tríc (Trang 23)
Hình 2. 7 Mô tả truyền thông cục bộ giữa các tác vụ - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Hình 2. 7 Mô tả truyền thông cục bộ giữa các tác vụ (Trang 25)
Hình 2. 12 Mô tả phân rã và tích tụ theo hai chiều của bài toán. - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Hình 2. 12 Mô tả phân rã và tích tụ theo hai chiều của bài toán (Trang 29)
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 - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
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 (Trang 31)
Hình a Hình b Hình c - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Hình a Hình b Hình c (Trang 37)
Hình 2. 15 Mô tả các trờng hợp không thể nhúng G vào hypercube với dilation=1 - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Hình 2. 15 Mô tả các trờng hợp không thể nhúng G vào hypercube với dilation=1 (Trang 47)
Hình 2. 18 Nhúng đồ thị Mesh 4 ì 4 vào mạng hypercube 4 chiều với dilation - Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU
Hình 2. 18 Nhúng đồ thị Mesh 4 ì 4 vào mạng hypercube 4 chiều với dilation (Trang 49)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w