MỤC LỤC Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http //www lrc tnu edu vn i ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VÕ QUANG HUY XỬ LÝ SONG SONG ÁP DỤNG ĐỐI[.]
i ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VÕ QUANG HUY XỬ LÝ SONG SONG ÁP DỤNG ĐỐI VỚI MỘT SỐ BÀI TOÁN TRONG LÝ THUYẾT ĐỒ THỊ Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 TĨM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - 2013 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên Tai ngay!!! Ban co the xoa dong chu nay!!! http://www.lrc-tnu.edu.vn ii LỜI CẢM ƠN Trong trình học tập nghiên cứu lớp Cao học khóa chuyên ngành Khoa học máy tính Trường Đại học Công nghệ thông tin Truyền thông - Đại học Thái Nguyên, Tôi nhận nhiều giúp đỡ nhiệt tình thầy, giáo Trường Đại học Công nghệ thông tin Truyền thông; Viện công nghệ thông tin thuộc Viện khoa học Công nghệ Việt Nam Các thầy, cô giúp đỡ, tạo điều kiện cho tơi q trình học tập Tơi xin bày tỏ lời cảm ơn chân thành tới tập thể thầy, cô giáo Trường Đại học Công nghệ thông tin Truyền thông; Viện công nghệ thông tin thuộc Viện khoa học Công nghệ Việt Nam Đặc biệt Tôi xin gửi lời cảm ơn sâu sắc tới thầy giáo TS Vũ Vinh Quang định hướng tận tình hướng dẫn tơi hồn thành nội dung luận văn Tôi xin cảm ơn bạn đồng nghiệp người thân động viên, giúp đỡ tơi q trình nghiên cứu thực luận văn Trong khoảng thời gian ngắn, với kiến thức thân cịn hạn chế nên luận văn khơng tránh khỏi thiếu sót mặt khoa học, tơi mong nhận đóng góp ý kiến Thầy cô giáo bạn bè để luận văn hoàn chỉnh Xin trân trọng cảm ơn! Thái Nguyên, ngày tháng năm 2013 Học viên Võ Quang Huy Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn iii MỤC LỤC LỜI CẢM ƠN i MỤC LỤC .iii DANH MỤC CÁC HÌNH VẼ v LỜI NÓI ĐẦU Chƣơng 1: MỘT SỐ KIẾN THỨC CƠ BẢN VỀ XỬ LÝ SONG SONG 1.1 Khái niệm xử lý song song 1.2 Các mơ hình máy tính song song .5 1.2.1 Mơ hình SISD: Đơn luồng lệnh, đơn luồng liệu 1.2.2 Mơ hình SIMD: Đơn luồng lệnh, đa luồng liệu .6 1.2.3 Mơ hình MISD: Đa luồng lệnh, đơn luồng liệu .7 1.2.4 Mơ hình MIMD: Đa luồng lệnh, đa luồng liệu 1.3 Khái niệm thuật toán song song .9 1.3.1 Định nghĩa 1.3.2 Các cách tiếp cận thiết kế 10 1.4 Đánh giá chương trình song song 10 1.5 Phân tích đánh giá thuật tốn song song 12 1.6 Khái niệm chương trình dịch, hệ điều hành 15 1.7 Một số ngơn ngữ lập trình song song 17 1.7.1 Lập trình song song với OCCAM 17 1.7.2 Lập trình song song với PVM 21 Chƣơng 2: CÁC THUẬT TOÁN TỐI ƢU TRÊN MƠ HÌNH ĐỒ THỊ 25 2.1 Một số khái niệm đồ thị 25 2.1.1 Mơ hình đồ thị 25 2.1.2 Các khái niệm 27 2.1.3 Đường đi, chu trình Đồ thị liên thơng 29 2.1.4 Cây khung đồ thị 29 2.2 Mơ hình tốn tối ưu 29 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn iv 2.2.1 Bài toán khung nhỏ 29 2.2.2 Bài toán xác định đường ngắn 34 2.2.3 Bài tốn tơ màu đồ thị 38 Chƣơng 3:THIẾT KẾ CÁC THUẬT TOÁN SONG SONG TRÊN ĐỒ THỊ 47 3.1 Một số thuật toán xếp song song 47 3.1.1 Thuật toán xếp đánh số 47 3.1.2 Thuật toán xếp so sánh đổi chỗ 48 3.1.3 Thuật toán xếp MergeSort 51 3.2 Song song hóa số thuật tốn tối ưu đồ thị 54 3.2.1 Song song hóa thuật toán Kruskal 54 3.2.2 Song song hóa thuật tốn Prim 56 3.2.3 Song song hóa thuật tốn Floyd 59 3.2.4 Song song hóa thuật tốn tơ màu đồ thị 61 PHẦN KẾT LUẬN .63 TÀI LIỆU THAM KHẢO 64 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn v DANH MỤC CÁC HÌNH VẼ Hình 1.1 Mơ tả kiến trúc Von Neumann Hình 1.2 Mơ hình kiến trúc SISD Hình 1.3 Mơ hình kiến trúc SIMD Hình 1.4 Mơ hình kiến trúc MISD Hình 1.5 Mơ hình kiến trúc MIMD Hình 1.6 Các mẫu hình kiến trúc xử lý song song Hình 1.7 Mơ hình tính tốn PVM 22 Hình 1.8 Một kiến trúc PVM 22 Hình 2.1 Sơ đồ mạng máy tính với đa kênh thơng báo 26 Hình 2.2 Mạng máy với kênh thoại chiều 26 Hình 2.3 Đồ Thị có hướng G 28 Hình 2.4 28 Hình 2.5 28 Hình 2.6 28 Hình 3.1 Q trình phân rã hịa nhập Mergesort 52 Hình 3.2 Thuật tốn tơ màu đồ thị song song PRAM 62 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn LỜI NĨI ĐẦU Trong thực tế, có nhiều lĩnh vực xử lý đồ họa, trí tuệ nhận tạo, lý thuyết đồ thị, lý thuyết nhận dạng, dự báo thời tiết dẫn đến toán xử lý khối lượng liệu lớn dẫn tới u cầu cần phải có hệ thống máy tính thật mạnh thực yêu cầu thực tế Hầu hết toán này, máy tính xử lý kiểu von Neumann khơng đáp ứng yêu cầu Trong thời gian gần đây, vấn đề nghiên cứu xử lý song song hướng nghiên cứu quan tâm lĩnh vực toán học Công nghệ thông tin Một toán bật toán tối ưu mơ hình lý thuyết đồ thị Với mục đích nghiên cứu vấn đề thiết kế thuật toán song song dựa thuật toán tuần tự, luận văn đặt vấn đề nghiên cứu lý thuyết xử lý song song ứng dụng số toán mơ hình đồ thị Cấu trúc luận văn gồm phần mở đầu chương nội dung sau Phần mở đầu giới thiệu hướng nghiên cứu mục đích nghiên cứu Chương 1: luận văn trình bày khái niệm vấn đề xử lý song song, mơ hình máy tính song song, thuật tốn song song số ngôn ngữ song song Đây khái niệm quan trọng làm sở cho vấn đề đưa chương tiếp sau Chương 2: luận văn đưa khái niệm lý thuyết đồ thị, mơ hình tốn tối ưu mơ tả thuật tốn kinh điển giải toán tương ứng, đánh giá độ phức tạp thuật toán Chương 3: Trên sở thuật tốn trình bày chương kết hợp với lý thuyết xử lý song song, luận văn đưa số hướng thiết kế thuật toán song song giải tốn tối ưu mơ hình đồ thị, đánh giá độ phức tạp thuật toán tương ứng Kèm theo luận văn phần mềm thử nghiệm thuật tốn viết ngơn ngữ C++ Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Chƣơng MỘT SỐ KIẾN THỨC CƠ BẢN VỀ XỬ LÝ SONG SONG 1.1 Khái niệm xử lý song song Trong thập niên 60, tảng để thiết kế máy tính dựa mơ hình John Von Neumann (Xem 0), với đơn vị xử lý nối với vùng lưu trữ làm nhớ thời điểm có lệnh thực thi Hình 1.1 Mơ tả kiến trúc Von Neumann Với tốn u cầu khả tính tốn lưu trữ lớn mơ hình kiến trúc cịn hạn chế Để tăng cường sức mạnh tính tốn giải tốn lớn có độ tính tốn cao, người ta đưa kiến trúc mới, với ý tưởng kết hợp nhiều xử lý vào máy tính, mà hay gọi xử lý song song (Multiprocessor) kết hợp sức mạnh tính tốn nhiều máy tính dựa kết nối mạng (gọi máy tính song song - multicomputer) Trong thời đại thông tin bùng nổ, người ngày trở nên bận rộn nhu cầu xử lý song song ngày nâng cao nhằm xử lý lượng liệu lớn thời gian nhanh Xử lý song song ngày quan tâm giới lý sau đây: - Đạt hiệu cao tiết kiệm thời gian tiền bạc Về lý thuyết, đầu tư nhiều tài ngun cho nhiệm vụ rút ngắn thời gian thực nhiệm vụ đó, đồng thời tiết kiệm nhiều chi Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn phí Hơn nữa, nhiều hệ thống xử lý song song xây dựng từ thành phần rẻ tiền phổ biến - Khả xử lý toán lớn Nhiều toán thực tế địi hỏi tài ngun tính tốn lớn đến mức khơng máy tính đơn lẻ đáp ứng Nhiều lĩnh vực đồ họa máy tính, trí tuệ nhận tạo, phân tích số, v.v đòi hỏi phải xử lý khối lượng liệu lớn cần phải có hệ thống máy tính thật mạnh thực yêu cầu thực tế Những vấn đề xử lý ngôn ngữ tự nhiên, nhận dạng, xử lý ảnh ba chiều (3-D), dự báo thời tiết, mơ hình mơ hệ thống lớn, v.v đòi hỏi phải xử lý liệu với tốc độc cao, với khối lượng liệu lớn Hầu hết tốn này, máy tính xử lý kiểu von Neumann không đáp ứng yêu cầu Mặc dù tốc độ xử lý BXL tăng nhiều năm qua, giới hạn vật lý nên khả tính tốn chúng khơng thể tăng Điều dẫn tới muốn tăng khả tính tốn hệ thống máy tính đích cuối phải khai thác khả xử lý song song chúng Xét mặt công nghệ, việc xây dựng, quản trị ứng dụng hệ thống xử lý song song dễ dàng Thơng thường, chi phí phải trả cho việc quản trị hệ thống xử lý song song năm cịn cao nhiều so với chi phí bỏ để mua hệ thống Ví dụ, cluster có tốc độ tính tốn TeraFlops có chi phí vào khoảng 100 nghìn USD, gần chi phí phải trả cho người quản trị hệ thống năm Nghiên cứu xử lý song song khơng mang ý nghĩa khoa học, mà cịn có ý nghĩa thực tiễn lớn Việc nghiên cứu xử lý song song, từ lý thuyết ứng dụng, không giúp nắm tảng cơng nghệ, mà cịn giúp nhìn thấy tiềm to lớn xử lý song song cơng nghệ nói riêng lĩnh vực kinh tế quốc dân nói chung Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Định nghĩa: Xử lý song song trình xử lý gồm nhiều tiến trình kích hoạt đồng thời tham gia giải vấn đề, nói chung thực hệ thống đa xử lý Sự khác song song với tuần tự: + Trong tính tốn với BXL thời điểm thực phép toán + Trong tính tốn song song số BXL kết hợp với để giải vấn đề giảm thời gian xử lý thời điểm có nhiều phép tốn thực đồng thời Ba yếu tố dẫn đến việc xử lý song song: Hiện giá thành phần cứng (CPU) giảm mạnh, tạo điều kiện để xây dựng hệ thống có nhiều BXL với giá thành hợp lý Sự phát triển công nghệ mạch tích hợp VLSI cho phép tạo hệ phức hợp có hàng triệu transistor chip Tốc độ xử lý BXL theo kiểu von Neumann dần tiến tới giới hạn, cải tiến thêm dẫn tới đòi hỏi phải thực xử lý song song Vấn đề xử lý song song liên quan trực tiếp đến kiến trúc máy tính, phần mềm hệ thống (hệ điều hành), thuật tốn ngơn ngữ lập trình, v.v Các máy tính song song phân thành nhiều loại dựa vào đặc trưng kiến trúc thể thực thao tác khác Cụ thể dựa vào tiêu kiểu số lượng BXL, kết nối chúng, dựa vào sơ đồ truyền thông thao tác vào/ra, v.v Phần lớn hệ điều hành ngày hỗ trợ đa xử lý / đa nhiệm cho phép nghiên cứu, khai thác phương pháp lập trình song song Vấn đề phải có nhiều BXL (các đơn vị tính tốn độc lập) hoạt động Nhưng điều quan Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn trọng chúng phải tham gia "cùng giải tốn" Nói cách khác, tiến trình thực BXL phải kết hợp, trao đổi với để giải toán cho trước 1.2 Các mơ hình máy tính song song Định nghĩa: Một máy tính song song tuyển tập BXL, thường loại, kết nối với theo cách để hợp tác với hoạt động trao đổi liệu với Dựa vào đặc tính số lượng BXL, số chương trình thực hiện, cấu trúc nhớ, v.v., Michael Flynn (1966) đưa cách phân loại tiếng nhiều người chấp nhận Mơ hình SISD (Single Instruction, Single Data Stream - Đơn dịng lệnh, đơn dịng liệu) Đây thực chất kiến trúc Von Neumann SIMD (Single Instruction, Multiple Data Stream - Đơn dòng lệnh, đa dòng liệu) Kiến trúc bao gồm xử lý kiểu vectơ xử lý song song cực lớn (MPP) Mơ hình MISD (Multiple Instruction, Single Data Stream - Đa dòng lệnh, đơn dòng liệu) Mơ hình MIMD (Multiple Instruction, Multiple Data Stream - Đa dòng lệnh, đa dòng liệu) Kiến trúc bao gồm hệ đa vi xử lý truyền thống mạng máy trạm Sau nghiên cứu chi tiết mơ hình trên: 1.2.1 Mơ hình SISD: Đơn luồng lệnh, đơn luồng liệu Máy tính loại SISD có CPU, thời điểm thực lệnh đọc, ghi mục liệu Tất máy tính SISD có ghi register gọi đếm chương trình (program counter) sử dụng để nạp địa lệnh xử lý kết thực theo thứ tự xác định câu lệnh Hình 1.2 mơ tả hoạt động máy tính theo mơ hình SISD Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 50 Bảng 3.1 Sắp xếp theo nguyên tắc hình ống sử dụng xử lý Bƣớc Pha P1 2 ↔ P2 P3 ↔ 5 ↔ ↔ ↔ ↔ ↔ 3 ↔ ↔ ↔ 5 P7 ↔ ↔ ↔ ↔ 7 7 ↔ 7 ↔ P8 4 ↔ ↔ 4 P6 3 ↔ ↔ ↔ ↔ P5 ↔ ↔ P4 ↔ 8 Giả thiết liệu lưu tiến trình chẵn B tiến trình lẻ A Thuật tốn song song theo hình ống mơ tả mơ hình truyền thông điệp sau: a/ Các pha lẻ Pi, i = 1, 3, 5, …, n-3 Pi, i = 2, 4, …, n-2 send(&A, Pi+1); recv(&A, Pi-1); recv(&B, Pi+1); send(&B, Pi-1); if(A > B) A = B; if(A > B) B = A; b/ Các pha chẵn Pi, i = 2, 4, …, n-2 Pi, i = 1, 3, 5, …, n-3 recv(&A, Pi+1); send(&A, Pi-1); send(&B, Pi+1); recv(&B, Pi-1); if(A > B) B = A; if(A > B) A = B; Hiển nhiên thuật tốn có độ phức tạp O (n ) Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 51 3.1.3 Thuật toán xếp MergeSort Bài toán trộn: Cho dãy a1, a2, , an b1, b2, , bm xếp tăng dần, yêu cầu trộn dãy thành dãy kí hiệu c1, c2, , cn + m xếp tăng dần Việc giải toán trộn thực thủ tục sau Procedure Merge(A,B,C); Var i,j,k:integer; Begin i:=1;j:=1; For k:=1 to n+m If A[i]