Một số phương pháp song song cho hệ đại số tuyến tính
KILOBOOKS.COM 1 MỤC LỤC LỜI NĨI ĐẦU2 Chương 1: TỔNG QUAN VỀ XỬ LÍ SONG SONG4 1.1 Xử lý song song4 1.2 Phân loại kiến trúc máy tính4 1.3 Các thành phần chính của máy tính song song7 1.4 Thiết kế và đánh giá thuật tốn song song 1.5 Kiến trúc cụm máy tính Chương 2: GIAO DIỆN TRUYỀN THƠNG ĐIỆP MPI 2.1 Giới thiệu về MPI 2.2 Mơ hình lập trình MPI 2.3 Những hàm MPI cơ bản 2.4 Những hàm truyền thống tập thể Chương 3: MỘT SỐ PHƯƠNG PHÁP LẶP GIẢI HỆ ĐẠI SỐ TUYẾN TÍNH 3.1 Giới thiệu 3.2 Một số phương pháp lặp tuần tự giải hệ phương trình đại số tuyến tính 3.3 Một số thuật tốn lặp song song giải hệ phương trình đại số tuyến tính 3.4 Chương trình thử nghiệm KẾT LUẬN TÀI LIỆU THAM KHẢO PHỤ LỤC http://kilobooks.comTHƯ VIỆN ĐIỆN TƯÛ TRỰC TUYẾN KILOBOOKS.COM 2LỜI NĨI ĐẦU Sự bùng nổ của cơng nghệ thơng tin đó và đang làm thay đổi mọi mặt của đời sống xó hội. Cụng nghệ thơng tin đó được ứng dụng rộng rói và những chiếc mỏy trở thành cụng cụ đắc lực cho con người trong rất nhiều lĩnh vực của khoa học và cuộc sống, đặc biệt là trong tính tốn và xử lí dữ liệu. Trước những đũi hỏi cần cú lời giải nhanh cho những bài toỏn với kích thước dữ liệu lớn như: dự báo thời tiết, xử lý ảnh ba chiều, trớ tuệ nhõn tạo, mụ phỏng cỏc hệ thống lớn…xử lý song song là một hướng phát triển tất yếu và đang cần được nghiên cứu và ứng dụng rộng rói vào thực tế. Sự ra đời của các máy tính song song, đặc biệt là những cụm máy tính phục vụ cho việc xử lý song song với giá rẻ đó hỗ trợ rất lớn cho việc xõy dựng những chương trỡnh song song giải quyết cỏc bài toỏn khoa học và thực tiễn. Khúa luận tốt nghiệp này chủ yếu nằm trong hướng nghiên cứu ứng dụng thuật tốn song song giải hệ phương trỡnh đại số tuyến tính bằng phương pháp lặp. Khóa luận được trỡnh bày thành ba chương: Chương 1 Tổng quan về xử lí song song : Trỡnh bày khỏi niệm xử lớ song song, cỏc kiến trỳc mỏy tớnh, cỏc thành phần chớnh của máy tính song song, các ngun lí thiết kế và đánh giá thuật tốn song song, và kiến trúc cụm máy tính của trung tâm tính tốn hiệu năng cao. Chương 2 Giao diện truyền thơng điệp MPI : Giới thiệu về giao diện truyền thơng điệp MPI, mơ hỡnh lập trỡnh MPI, các nhóm hàm cơ bản của thư viện mpi.h khi lập trỡnh MPI với ngụn ngữ C. Chương 3 Một số phương pháp lặp giải hệ đại số tuyến tính : Giới thiệu một số phương pháp lặp tuần tự và song song giải hệ đại số tuyến tính như Jacobi, JOR, SOR, chương trỡnh thử nghiệm, đánh giá kết quả và định hướng phát triển. http://kilobooks.comTHƯ VIỆN ĐIỆN TƯÛ TRỰC TUYẾN KILOBOOKS.COM 3Khóa luận này chắc chắn khơng tránh khỏi thiếu sót do hạn chế về thời gian cũng như kiến thức. Em rất mong nhận được sự đóng góp ý kiến của thầy cụ và cỏc bạn để có thể phát triển đề tài đạt được kết quả tốt hơn. Em xin gửi lời cảm ơn chân thành tới thầy giáo về sự tận tâm hướng dẫn, giúp đỡ em hồn thành khóa luận này. Em xin cảm ơn tất cả các các thầy cơ khoa Tốn Cơ Tin học, các thầy cơ trường Đại học Khoa học Tự nhiên – Đại học Quốc gia Hà Nội về sự dạy dỗ ân cần trong thời gian em học tại trường. Em xin cảm ơn các thầy cơ, các anh chị của Trung Tâm Tính Tốn Hiệu Năng Cao đó tạo điều kiện và giúp đỡ em rất nhiều trong việc hồn thành khóa luận. Xin cảm ơn gia đỡnh, người thân và bạn bè đó luụn ủng hộ và là nguồn cổ vũ lớn lao cho tơi. http://kilobooks.comTHƯ VIỆN ĐIỆN TƯÛ TRỰC TUYẾN KILOBOOKS.COM 4Chương 1: TỔNG QUAN VỀ XỬ LÍ SONG SONG 1.1 Xử lớ song song Xuất phỏt từ yờu cầu giải quyết nhanh những bài toỏn bài tốn có khối lượng dữ liệu lớn như xử lí ngơn ngữ tự nhiên, xử lí tiếng nói, xử lí ảnh ba chiều, dự báo thời tiết, trí tuệ nhân tạo,…trong khi những máy tính xử lí tuần tự kiểu von Neumann hiện nay khơng đáp ứng được u cầu đó. Chính vỡ vậy vấn đề đặt ra là phải khai thác được khả năng xử lí song song của các hệ thống máy tính hiện đại. Xử lí song song là cách xử lí thơng tin bằng việc sử dụng nhiều hơn một bộ xử lí để thực hiện nhiều hơn một thao tác trên dữ liệu tại một thời điểm. Khỏc với xử lớ tuần tự, trong tính tốn song song một số bộ xử lí kết hợp với nhau để giải quyết cùng một vấn đề nên giảm được thời gian xử lí vỡ mỗi thời điểm có thể có nhiều phép tốn được thực hiện đồng thời. Với tốc độ xử lí nhanh hơn, xử lí song song giải quyết được nhiều bài toỏn lớn và phức tạp. 1.2 Phõn loại kiến trỳc mỏy tớnh Cách phân loại kiến trúc máy tính của Flynn là một trong những các phân loại được chấp nhận rộng rói nhất. Cỏch phõn loại này được Micheal J. Flynn đề xuất năm 1966 gồm bốn loại kiến trúc máy tính như sau: 1.2.1 Kiến trúc SISD (đơn dũng lệnh, đơn luồng dữ liệu) Máy tính loại SISD chỉ có một CPU, và ở mỗi thời điểm chỉ thực hiện một lệnh và chỉ đọc, ghi một mục dữ liệu. Mơ hỡnh SISD chớnh là mụ hỡnh mỏy tớnh kiểu von Neumann. http://kilobooks.comTHƯ VIỆN ĐIỆN TƯÛ TRỰC TUYẾN KILOBOOKS.COM 5 Hỡnh 1.1. Mụ hỡnh của kiến trỳc SISD 1.2.2 Kiến trúc SIMD (đơn dũng lệnh, đa luồng dữ liệu) Những máy tính SIMD có một đơn vị điều khiển để điều khiển nhiều đơn vị xử lí thực hiện một dũng cỏc cõu lệnh. Đơn vị điều khiển phát sinh tín hiệu điều khiển tới tất cả cỏc bộ xử lớ thực hiờn cựng một phộp toỏn trờn cỏc mục dữ liệu khỏc nhau. Hỡnh 1.2. Mụ hỡnh của kiến trỳc SIMD 1.2.3 Kiến trúc MISD (đa dũng lệnh, đơn luồng dữ liệu) Mỏy tớnh loại MISD cú thể thực hiện nhiều chương trỡnh trờn cựng một mục dữ liệu. Kiến trỳc kiểu này chia thành hai nhúm như sau: • Lớp các máy tính u cầu các đơn vị xử lí khác nhau có thể nhận những lệnh khác nhau và thực hiện trên cùng một mục dữ liệu. Đơn vị điều khiển Bộ xử lớ số học Bộ nhớ Luồng kết quả Dũng lệnh Luồng dữ liệu Đơn vị điều khiển Phần tử xử lớ 1 Phần tử xử lớ 2 Phần tử xử lớ n . Tớn hiệu điều khiển http://kilobooks.comTHƯ VIỆN ĐIỆN TƯÛ TRỰC TUYẾN KILOBOOKS.COM 6• Lớp các máy tính có các luồng dữ liệu được chuyển tuần tự qua một dóy cỏc bộ xử lớ liờn tiếp. Hỡnh 1.3. Mụ hỡnh của kiến trỳc MISD 1.2.4 Kiến trúc MIMD (đa luồng lệnh, đa luồng dữ liệu) Mỏy tớnh MIMD cũn được gọi là đa bộ xử lí, mỗi bộ xử lí có thể thực thi những luồng lệnh riêng trên các luồng dữ liệu riêng của chúng. Đa số các hệ thống MIMD có bộ nhớ riêng và có thể truy cập vào bộ nhớ chung nên giảm được thời gian trao đổi giữa các bộ xử lí. Đơn vị điều khiển1 Đơn vị điều khiển 2 Đơn vị điều khiển n Phần tử xử lớ 1 Phần tử xử lớ 2 Phần tử xử lớ n Dũng lệnh 1 Dũng lệnh 2 Dũng lệnh n . . . . . . Luồng dữ liệu 1 Luồng dữ liệu 2 Đơn vị điều khiển1 Đơn vị điều khiển 2 Đơn vị điều khiển n Phần tử xử lớ 1 Phần tử xử lớ 2 Phần tử xử lớ n Dũng lệnh 1 Dũng lệnh 2 Dũng lệnh n . . . . . . Luồng dữ liệu Luồng dữ liệu 2 http://kilobooks.comTHƯ VIỆN ĐIỆN TƯÛ TRỰC TUYẾN KILOBOOKS.COM 7Hỡnh 1.4. Mụ hỡnh của kiến trỳc MIMD 1.3 Cỏc thành phần chớnh của mỏy tớnh song song 1.3.1 Bộ nhớ Bộ nhớ là một trong những thành phần quan trọng nhất của kiến trúc máy tính và thường được phân cấp như sau: Hỡnh 1.5. Phõn cấp hệ thống bộ nhớ Bộ nhớ mức 1 là bộ nhớ mức cao nhất thường gắn chặt với bộ xử lí thành bộ nhớ cục bộ. Khi mức bộ nhớ tăng dần thỡ dung lượng tăng dần cũn giỏ cả và tốc độ giảm dần. Mụ hỡnh bộ nhớ đối với máy tính truy cập ngẫu nhiên song song được biết dưới tên gọi PRAM (Parallel Random Access Machine) bao gồm bộ nhớ chung RAM với M ơ nhớ đủ lớn để chia sẻ cho P bộ xử lí. Bộ nhớ chung dùng để lưu trữ dữ liệu và là nơi giao tiếp giữa các bộ xử lí, nó cho phép các bộ xử lí truy cập dữ Bộ xử lớ Bộ nhớ mức 1 Bộ nhớ mức 2 Bộ nhớ mức n http://kilobooks.comTHƯ VIỆN ĐIỆN TƯÛ TRỰC TUYẾN KILOBOOKS.COM 8liệu và hoạt động một cách dị bộ. Có một số cách để các bộ xử lí có thể đọc ghi một số dữ liệu: • Đọc đồng thời CR (Concurrent Read): nhiều bộ xử lí có thể đọc đồng thời từ một ơ nhớ. • Đọc độc quyền ER (Exclusive Read): mỗi bộ xử lí đọc được chính xác một ơ nhớ và mỗi ơ nhớ chỉ được đọc bởi một bộ xử lí. • Ghi đồng thời CW (Concurrent Write): nhiều bộ xử lí có thể ghi vào cùng một ơ nhớ ở cùng một thời điểm. • Ghi độc quyền EW (Exclusive Write): mỗi bộ xử lí chỉ ghi được vào một ơ nhớ và mỗi ơ nhớ chỉ được ghi bởi một bộ xử lí. Dễ nhận thấy rằng ER và EW là những trường hợp riêng của CR và CW. Trong đó CW có những đặc tính sau: • Ghi đồng thời có ưu tiên (Priority CW): mỗi bộ xử lí được gắn với một mức ưu tiên, bộ nhớ có mức ưu tiên cao nhất sẽ được quyền ghi vào một ơ nhớ cho trước. Các mức ưu tiên có thể tĩnh hoặc động theo qui tắc xác định. • Ghi đồng thời chung (Common CW): tất cả các bộ xử lí được phép ghi vào cụng một ơ nhớ nếu chúng ghi cùng một giá trị. Khi đó một bộ xử lí sẽ được chọn để thực hiện việc ghi dữ liệu đó. • Ghi đồng thời tự do (Arbitracy CW): một số bộ xử lí muốn ghi dữ liệu vào một ơ nhớ nhưng chỉ một bộ xử lí được phép. Trong trường hợp này ta phải chỉ ra cách xác định bộ xử lí được chọn. • Ghi đồng thời ngẫu nhiên (Random CW): bộ xử lí được chọn để ghi dữ liệu là ngẫu nhiên. http://kilobooks.comTHƯ VIỆN ĐIỆN TƯÛ TRỰC TUYẾN KILOBOOKS.COM 9• Ghi đồng thời kết hợp (Combining CW): tất cả các giá trị mà các bộ xử lí muốn ghi đồng thời lên một ơ nhớ sẽ được kết hợp lại thành một giá trị và giá trị này sẽ được ghi vào ơ nhớ đó. Một số mụ hỡnh bộ nhớ cho mỏy truy cập ngẫu nhiờn song song PRAM: 1. Mụ hỡnh truy cập bộ nhớ đồng bộ UMA (Uniform Memory Access) của bộ nhớ chia sẻ: tất cả các bộ xử lí làm việc nhờ cơ chế chuyển mạch tập trung để truy cập tới bộ nhớ chia sẻ. Thời gian truy cập vào bộ nhớ là như nhau với tất cả các bộ xử lí. 2. Mụ hỡnh truy cập bộ nhớ khụng đồng bộ NUMA của bộ nhớ chia sẻ: trong mụ hỡnh này, bộ nhớ được phân tán và được chia thành một số mơđun nhớ độc lập. Bộ nhớ chia sẻ được phân tán cho tất cả các bộ xử lí được gọi là các mơđun nhớ địa phương và các mơđun nhớ này hợp lại thành bộ nhớ chung (tồn cục) cho cỏc bộ xử lớ. 3. Kiến trúc bộ nhớ chỉ lưu trữ COMA ( Cache-Only Memory Architexture ): bộ nhớ chính được phân tán và chuyển thành các vùng lưu trữ (cache), tất cả các vùng này tạo ra khơng gian địa chỉ tồn cục. 4. Bộ nhớ đa máy tính: trong bộ nhớ đa máy tính mỗi nút là một máy tính có bộ nhớ địa phương khơng chia sẻ với những bộ xử lí khác, các bộ xử lí liên lạc với nhau thơng qua giao thức truyền thơng điệp. 1.3.2 Mạng liờn kết cỏc thành phần của mỏy tớnh song song. Trong hầu hết cỏc kiến trỳc song song, vấn đề quan trọng nhất trong thiết kế là xác định sự liên kết giữa các bộ xử lí với nhau. Nói chung có hai loại cấu hỡnh cho mạng liờn kết: liờn kết tĩnh và liờn kết động. - Mạng liờn kết tĩnh là mạng cỏc thành phần của một hệ thống mỏy tớnh, bộ xử lí và bộ nhớ được liên kết một cách cố định. http://kilobooks.comTHƯ VIỆN ĐIỆN TƯÛ TRỰC TUYẾN KILOBOOKS.COM 10- Mạng liên kết động là mạng các thành phần của hệ thống máy tính trong đó các liên kết giữa các bộ xử lí và bộ nhớ là có thể thay đổi được cấu hỡnh. Sau đây là một số mơ hỡnh mạng liờn kết tĩnh giữa cỏc bộ xử lớ của mỏy tớnh song song. 1. Mạng liờn kết tuyến tớnh Trong mạng liên kết tuyến tính các bộ xử lí được liên kết với nhau và được sắp xếp theo thứ tự tăng dần. Trừ hai bộ xử lí đầu tiên và cuối cùng, các bộ xử lí cũn lại cú hai lỏng giềng là bộ xử lớ trước và sau nó. Dữ liệu phải truyền qua một số bộ xử lí nên sự truyền thơng dữ liệu giữa các bộ xử lí bị chậm lại nhất là giữa bộ xử lí đầu và cuối. Hỡnh 1.6. Mạng liờn kết tuyến tớnh của n bộ xử lớ 2. Mạng liờn kết vũng Mạng liờn kết vũng cú thể được tổ chức như mạng tuyến tính bằng cách nối hai bộ xử lí đầu và cuối. Sự trao đổi giữa các bộ xử lí có thể theo một chiều hoặc hai chiều tuy nhiên việc truyền thơng giữa các bộ xử lí đặc biệt là các bộ xử lí ở xa nhau vẫn bị trễ. Hỡnh 1.7. Mạng liờn kết vũng của n bộ xử lớ 3. Mạng liờn kết xỏo trộn P0 P1 Pn-1 P0 P1 Pn-1 http://kilobooks.comTHƯ VIỆN ĐIỆN TƯÛ TRỰC TUYẾN [...]... cung cấp một thước đo tốt cho chất lượng của một thuật tốn song song Nó đặc trưng hóa sự hiệu quả của một thuật tốn sử dụng tài ngun tính tốn của một máy tính song song một cách độc lập với kích KIL thước bài tốn Chúng ta định nghĩa hiệu suất tương đối như sau: E= T1 PTP trong đó T1 là thời gian thực hiện trờn một bộ xử lớ và TP là thời gian trên P bộ xử lí Một đại lượng liên quan nữa là hệ số gia tốc... trợ việc tính tốn song song trên WSC tiêu WSC có rất nhiều ưu điểm đó là: M biểu như MPICH o Kĩ thuật tính tốn trên các cụm máy tính có thể mở rộng từ một hệ thống CO nhỏ đến các hệ thống rất lớn Điều này thể hiện tính mềm dẻo và linh hoạt của hệ thống Hệ thống có thể chỉ gồm một máy tính hoặc nhiều máy tính ghép nối mạng với nhau Những máy tính nối mạng Internet cũng có thể ghép cụm được Hệ thống... là hệ số chỉ ra thời gian thực hiện giảm đi khi sử dụng P bộ xử lí 17 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Những đại lượng trên được gọi là hệ số tăng tốc và hiệu suất tương đối vỡ chỳng được định nghĩa với khía cạnh thuật tốn song song thực hiện trên một bộ xử lí đơn Giả sử rằng chúng ta có một thuật tốn song song mà mất 10000 giây trên M một bộ xử lí và 20 giây trên 1000 bộ xử lí Một. .. xây dựng thuật tốn song song - Nguyờn lớ cạnh tranh: Nếu hai tiến trỡnh cựng truy cập vào một mục dữ OBO liệu chia sẻ thỡ chỳng cú thể cản trở lẫn nhau 1.4.2 Các giai đoạn thiết kế thuật tốn song song Có ba cách tiếp cận trong thiết kế thuật tốn song song cho một bài tốn, đó là: - Song song hóa các thuật tốn tuần tự, biến đổi những cấu trúc tuần tự để tận xử lớ KIL dụng khả năng song song tự nhiên của... TRỰC TUYẾN Processes 4 5 3 M 2 2 7 0 3 6 2 - - - 2 0 2 16 - - MPI_Reduce với MPI_MIN, root= 0: 2 - - - OKS 0 MPI_Allreduce với MPI_MIN 2 0 2 OBO 0 0 MPI_Reduce với MPI_SUM, root =2 - - - - 13 KIL Initial data: 1 CO 0 Hỡnh 2.2 Minh hoạ cho hàm MPI_Reduce và MPI_Allreduce 35 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN Chương 3: MỘT SỐ PHƯƠNG PHÁP LẶP GIẢI CO M HỆ ĐẠI SỐ TUYẾN TÍNH 3.1 Giới thiệu Cho. .. ∈ R n cho trước hội tụ nếu B < 1 (với là chuẩn ma trận tương thích với KIL chuẩn véc tơ) Điều kiện cần và đủ để cho dóy lặp hội tụ với X(0) lấy bất kỡ là ρ ( B ) < 1 với ρ là bỏn kớnh phổ của ma trận 3.2 Một số phương pháp lặp tuần tự giải hệ phương trỡnh đại số tuyến tính 3.2.1 Phương pháp lặp Jacobi Ta cú: 36 ... tốn dù nó được biểu diễn bởi một tham số N hay bởi một tập các tham số N1, N2, …, Nm.Thời gian tớnh 15 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN toỏn cũn phụ thuộc vào số cỏc tỏc vụ hoặc số bộ xử lớ Trong mạng mỏy tớnh song song khụng đồng nhất ( như mạng các máy trạm), thời gian tính tốn có thể biến thiên theo bộ xử lí mà tại đó tính tốn được thực hiện Thời M gian tính tốn cũng phụ thuộc vào... 1.4 Thiết kế và đánh giá thuật tốn song song KIL 1.4.1 Nguyờn lớ thiết kế thuật toỏn song song Thuật tốn song song được định nghĩa là một tập các tiến trỡnh hoặc cỏc tỏc vụ cú thể thực hiện đồng thời và có thể trao đổi dữ liệu với nhau để kết hợp cùng giải một bài tốn Có thể có nhiều thuật toỏn song song cựng giải một bài toỏn tựy thuộc vào cỏch phõn chia dữ liệu cho cỏc tỏc vụ, cỏch truy xuất dữ liệu,... tiến trỡnh Để thiết kế một thuật tốn song song tốt ta có thể sử dụng năm ngun lí chính trong thiết kế thuật toỏn song song: 13 http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN - Ngun lí lập lịch: Giảm tối thiểu các bộ xử lí trong thuật tốn mà khơng làm tăng thời gian tính tốn Nói chung, khi số bộ xử lí giảm thời gian thực hiện của chương trỡnh cú thể tăng và có thể tăng lên một hằng số nào đó M nhưng xét... gồm những máy OKS tính chun dụng khác nhau o Thiết bị phần cứng dùng để xây dựng một cụm máy tính như các máy tính cá nhân và các máy trạm hiện nay được bán rộng rói trờn thị trường với giá thành thấp Về ngun tắc một cụm máy tính chỉ cần có một màn hỡnh và một bàn phớm nờn giảm được chi phí ban đầu OBO o Các bộ xử lí mới có thể dễ dàng tích hợp vào hệ thống như là chúng đó cú sẵn trong hệ thống Đây là . 3: MỘT SỐ PHƯƠNG PHÁP LẶP GIẢI HỆ ĐẠI SỐ TUYẾN TÍNH 3.1 Giới thiệu 3.2 Một số phương pháp lặp tuần tự giải hệ phương trình đại số tuyến tính 3.3 Một số. C. Chương 3 Một số phương pháp lặp giải hệ đại số tuyến tính : Giới thiệu một số phương pháp lặp tuần tự và song song giải hệ đại số tuyến tính như Jacobi,