Nâng cao hiệu quả bài toán sắp xếp với giải thuật song song

62 115 0
Nâng cao hiệu quả bài toán sắp xếp với giải thuật song song

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - BÙI THANH TUYỀN NÂNG CAO HIỆU QUẢ BÀI TOÁN SẮP XẾP VỚI GIẢI THUẬT SONG SONG LUẬN VĂN THẠC SĨ KHOA HỌC Hà Nội – Năm 2014 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - BÙI THANH TUYỀN NÂNG CAO HIỆU QUẢ BÀI TOÁN SẮP XẾP VỚI GIẢI THUẬT SONG SONG Chuyên ngành: Cơ sở toán cho tin học Mã số: 60460110 LUẬN VĂN THẠC SĨ KHOA HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Nguyễn Thị Hồng Minh Hà Nội – Năm 2014 LỜI CẢM ƠN Trên thực tế, thành cơng mà khơng gắn liền với hỗ trợ, giúp đỡ Trong suốt thời gian từ bắt đầu học tập trường đến nay, em nhận nhiều quan tâm, giúp đỡ q Thầy Cơ Khoa Tốn-Cơ-Tin học, Trường Đại học Khoa học Tự nhiên - ĐHQGHN với tri thức tâm huyết để truyền đạt vốn kiến thức quý báu cho chúng em, luôn tạo điều kiện tốt cho chúng em suốt trình theo học trường Em xin chân thành cảm ơn quý Thầy Cô Ban lãnh đạo nhà trường! Với lòng biết ơn sâu sắc nhất, em xin gửi lời cảm ơn tới TS Nguyễn Thị Hồng Minh, Phó chủ nhiệm Khoa Sau đại học - ĐHQGHN, cán trực tiếp hướng dẫn định hướng khoa học cho em Cô dành nhiều thời gian cho việc hướng dẫn em cách nghiên cứu, đọc tài liệu, cài đặt thuật toán giúp đỡ em việc xây dựng chương trình, em xin chân thành cảm ơn cô! Em xin chân thành gửi lời cảm ơn đến quý thầy cô, anh chị em Trung tâm Tính tốn Hiệu Năng Cao Trường Ðại học Khoa học Tự nhiên quan tâm giúp đỡ, tạo điều kiện nhiều mặt, bảo tận tình trình em thực thực nghiệm trung tâm Và cuối em xin bày tỏ lòng chân thành biết ơn tới lãnh đạo khoa Công nghệ Thông tin,Trường Đại học Kinh doanh Công nghệ Hà Nội bạn bè đồng nghiệp, ba mẹ anh chị em bên cạnh lúc em khó khăn tạo điều kiện thuận lợi giúp em hoàn thành luận văn Hà Nội, ngày 26 tháng năm 2014 Học viên: Bùi Thanh Tuyền Mục lục LỜI CẢM ƠN Danh mục viết tắt Danh mục hình Danh mục bảng MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ XỬ LÝ SONG SONG 1.1 Tổng quan xử lí song song 1.1.1 Tính tốn tính tốn song song 1.1.2 Kiến trúc máy tính song song 10 1.1.3 Một số mạng kết nối hệ thống song song 11 1.1.3.1 Mạng liên kết tuyến tính liên kết vòng 11 1.1.3.2 Mạng liên kết lưới hai chiều 12 1.1.3.3 Mạng liên kết hình khối 12 1.1.4 Cơ sở đánh giá giải thuật song song 13 1.1.4.1 Thời gian thực 13 1.1.4.2 Hệ số tăng tốc độ hiệu giải thuật 14 1.2 Tổng quan toán xếp 15 1.2.1 Bài toán xếp 15 1.2.2 Các cấu trúc liệu cho toán xếp 18 1.2.3 Phân lớp thuật toán xếp dựa độ phức tạp 19 1.2.3.1 Lớp thuật tốn có độ phức tạp O(n2) 19 1.2.3.2 Lớp thuật tốn có độ phức tạp O(nlogn) 23 1.2.3.3 Thuật tốn xếp có độ phức tạp thấp với liệu đặc biệt 26 1.3 Kết luận chương 28 CHƯƠNG MỘT SỐ THUẬT TOÁN SONG SONG CHO BÀI TOÁN SẮP XẾP 29 2.1 Chiến lược song song cho toán xếp 29 2.2 Thuật toán xếp song song phát triển dựa thuật toán 30 2.2.1 Thuật toán xếp hoán vị chẵn lẻ 30 2.2.2 Thuật toán Shellsort 32 2.2.3 Thuật toán Parallel QuickSort 36 2.2.4 Thuật toán HyperQuicksort 41 2.3 Thuật toán xếp song song dựa mẫu chuẩn PSRS 47 2.3.1 Tư tưởng thuật toán 47 2.3.2 Đánh giá độ phức tạp 50 2.3.3 Ví dụ 50 2.4 Kết luận chương 52 CHƯƠNG ỨNG DỤNG LẬP TRÌNH SONG SONG CÀI ĐẶT THUẬT TOÁN SẮP XẾP PSRS VÀ PARALLELQUICKSORT 53 3.1 Môi trường phương pháp thực nghiệm 53 3.1.1 Môi trường thực nghiệm 53 3.1.2 Phương pháp thực nghiệm 54 3.2 Các kết thực nghiệm 54 3.2.1 Kết thực nghiệm chạy thuật toán PSRS 54 3.2.2 So sánh kết thuật toán PSRS ParallelQuicksort 56 3.3 Kết luận chương 57 KẾT LUẬN 588 TÀI LIỆU THAM KHẢO 59 Danh mục viết tắt Viết đầy đủ Ý nghĩa ADN Acid Deoxyribo Nucleic Phân tử di truyền CPU Central Processing Unit Đơn vị xử lí trung tâm Multiple Instruction Multiple Đa lệnh Đa liệu Viết tắt MIMD Data MISD PQ Multiple Instruction Single Data Đa lệnh Đơn liệu Parallel QuickSort Sắp xếp nhanh song song PSRS Parallel Sorting by Regular Sắp xếp song song dựa Sampling mẫu SIMD Single Instruction Multiple Data Đơn lệnh Đa liệu SISD Single Instruction Single Data Đơn lệnh Đơn liệu Danh mục hình Hình 1.1 Minh họa trình xử lí Hình 1.2 Minh họa q trình xử lí song song Hình 1.3 Phân loại Flynn kiến trúc song song 10 Hình 1.4 Mạng liên kết tuyến tính mạng vòng 11 Hình 1.5 Mạng liên kết lưới hai chiều 12 Hình 1.6 Mạng liên kết khối chiều với 16 xử lí 13 Hình 2.1 Ví dụ thuật toán ShellSort 35 Hình 2.2 Minh họa thuật tốn ParallelQuickSort 38 Hình 2.3 Ví dụ minh họa thuật tốn ParallelQuickSort 40 Hình 2.4 Minh họa thuật toán HyperQuickSort 43 Hình 2.5 Ví dụ minh họa thuật tốn HyperQuickSort 45 Hình 2.6 Minh họa thuật tốn PSRS 49 Hình 3.1 Biểu đồ so sánh thời gian chạy thuật tốn PSRS 57 Hình 3.2 Biểu đồ so sánh thời gian chạy BXL chạy với N=106 57 Hình 3.3 Biểu đồ so sánh thời gian chạy thuật toán PSRS PQ 58 Danh mục bảng Bảng So sánh kết chạy thuật toán PSRS 55 Bảng So sánh thời gian chạy PSRS Parallel Quicksort 58 MỞ ĐẦU Từ thủa sơ khai lịch sử máy tính khoa học tính tốn, việc xây dựng chương trình tính tốn máy tính điều kỳ diệu tất người Từ máy tính khổng lồ, cồng kềnh thao tác tác vụ đơn giản đến máy nhỉnh lòng bàn tay tính tốn hàng nghìn tỷ phép tính giây, từ chương trình nhỏ có vài ba câu lệnh ngày xa xưa, đến chương trình vơ lớn có sức ảnh hưởng đến tồn cầu ngày nay… tất điều nói lên phát triển mạnh mẽ ngành công nghệ thông tin Sự phát triển phần cứng lẫn phần mềm tạo nhiều đổi thay cơng nghệ tính tốn ngành khoa học máy tính ảnh hưởng đến tất lĩnh vực khác xã hội Càng ngày yêu cầu tốc độ tính tốn xử lí lớn, đòi hỏi máy tính, phần mềm chương trình phải thực thi cực nhanh Chính vậy, việc sử dụng hệ thống tính tốn truyền thống khơng thể đáp ứng kịp nhu cầu người ngành khoa học liên quan Việc xây dựng chương trình tính tốn hệ thống song song để hỗ trợ cho hệ thống trở thành điều tất yếu Nhìn lại thấy rằng, hầu hết chương trình đòi hỏi tốc độ tính tốn lớn áp dụng lĩnh vực quan trọng ảnh hưởng lớn đến xã hội Khơng đâu xa, ứng dụng dự báo thời tiết, thiên tai, ứng dụng ngành thiết kế máy bay, kĩ thuật quân sự, ứng dụng thương mại điện tử, y sinh học v.v… tất xử lí song song với mục tiêu nâng cao hiệu xử lí tính tốn Nhận thấy hướng nghiên cứu phát triển ứng dụng nhiều thực tế, em lựa chọn đề tài vào việc nghiên cứu tìm hiểu hệ thống xử lí song song áp dụng vào giải tốn cụ thể tốn xếp Khái niệm xếp dường gắn liền với xã hội loài người từ thuở ban đầu văn minh Nó đơn giản thể việc hàng, việc phân công công việc,… Ngày nay, giới mà khoa học công nghệ thay đổi ngày nhu cầu khai thác, tìm kiếm thơng tin người ngày cao việc nâng cao tính hiệu giải thuật xếp ngày trở nên quan trọng Từ vấn đề trên, đề tài “Nâng cao hiệu toán xếp với giải thuật song song” tập trung vào nghiên cứu việc song song hóa thuật toán xếp nhằm giảm thiểu thời gian xếp liệu để đưa vào áp dụng ứng dụng thực tế Luận văn gồm có chương: Chương Tổng quan xử lí song song toán xếp Nội dung chủ yếu chương nhằm giới thiệu tổng quan xử lí song song, mơ hình hệ thống song song đồng thời đưa nhìn nhận tổng quan tốn xếp, đơi với việc hệ thống hóa lại hầu hết thuật tốn xếp theo hướng tính tốn Chương Một số thuật toán song song cho toán xếp Nội dung chương tập trung vào vấn đề phát triển thuật toán song song cho toán xếp Đây nội dung luận văn, thuật tốn xếp song song hóa dựa chiến lược cụ thể Chương Ứng dụng lập trình song song cài đặt thuật tốn PSRS ParallelQuickSort Nội dung chương trình bày kết thực nghiệm thuật toán PSRS so sánh hai thuật toán PSRS ParallelQuicksort thời gian xử lí chạy hệ thống tính tốn song song với nhiều xử lí CHƯƠNG TỔNG QUAN VỀ XỬ LÝ SONG SONG VÀ BÀI TOÁN SẮP XẾP 1.1 Tổng quan xử lí song song 1.1.1 Tính tốn tính tốn 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, với xử lí đơn nối với vùng lưu trữ làm nhớ thời điểm có lệnh thực thi Đó hình thức tính tốn [1] Tuy nhiên, khoa học kỹ thuật ngày phát triển, từ đặt nhiều tốn với khối lượng tính tốn lớn, có tốn mà kết có ý nghĩa hồn thành thời gian cho phép Từ hình thành nên hệ thống xử lí song song Xử lí song song q trình xử lí gồm nhiều tiến trình kích hoạt đồng thời, thực nhiều xử lí tham gia vào giải tốn Hình 1.1 1.2 phần cho thấy nhìn khái quát khác xử lí xử lí song song Hình 1.1 Minh họa q trình xử lí Trong xử lí (hình 1.1), CPU thực lệnh Si để giải tốn Với xử lí song song (hình 1.2) lệnh để giải toán chia thành cụm độc lập, gọi tiến trình tiến trình thực CPU khác 8 15 21 54 P00 12 19 20 22 40 47 47 50 54 P01 64 66 67 70 75 82 83 88 91 98 99 P10 61 65 66 72 85 86 89 P11 12 15 P00 19 20 21 22 40 47 47 50 54 54 P01 61 64 65 66 67 70 72 75 82 P10 83 85 86 88 89 91 98 99 P11 Bước Các BXL phân hoạch phần tử thành hai phần, lớn chốt nhỏ chốt Sau đó, BXL ghép cặp đê chuẩn bị truyền phần tử Bước Các BXL truyền phần tử cho theo quy tắc xây dựng Vòng lặp kết thúc Hình 2.5 Ví dụ thuật tốn HyperQuickSort Trên hai thuật toán xếp song song thực dựa thuật toán có sẵn (OddEven sort, ParallelQuicksort) thuật tốn song song phát triển từ thuật tốn song song có(Shellsort, HyperQuicksort) Mỗi thuật tốn có ưu nhược điểm riêng, OddEven sort Shellsort hai thuật tốn đơn giản dễ cài đặt ParallelQuicksort HyperQuicksort lại thuật toán đem lại hiệu cao song song hóa tốt Nhưng để ý điều rằng, phù hợp với song song hóa ParallelQuickSort HyperQuicksort lại cần phải có điều kiện bắt buộc số xử lí sử dụng phải lũy thừa Mặt khác, với Parallel QuickSort thuật toán bị rơi vào trường hợp suy biến tức thuật toán chọn phần tử chốt không tốt, dẫn đến cân trình phân chia phần tử xử lí khiến xử lí làm việc khơng cân thời gian chạy chương trình trở nên chậm 46 Phần cuối chương xin đề cập đến thuật toán xếp song song mà khắc phục nhược điểm Parallel Quicksort, thuật tốn khơng dựa việc song song hóa thuật tốn có khơng phát triển từ thuật tốn song song đưa ra, phù hợp với hầu hết hệ thống song song 2.3 Thuật toán xếp song song dựa mẫu chuẩn PSRS So với thuật toán xếp song song trình bày trên, PSRS thuật toán xếp song song với nhiều ưu điểm [9] Nó giữ ngun kích thước mảng, giữ cân tải tác vụ, tránh việc truyền thơng lặp lại khóa PSRS kết hợp thuật toán xếp tuần tự, trình trao đổi liệu bước trộn song song Mặc dù thuật tốn xếp trộn sử dụng được, PSRS sử dụng thuật toán xếp Quicksort liên tiếp cách trộn Thuật tốn phù hợp với hầu hết mơ hình song song sử dụng với số xử lí tùy ý 2.3.1 Tư tưởng thuật tốn Thuật tốn PSRS bao gồm có pha phân biệt Nó sử dụng mơ hình truyền thơng điệp để gửi, nhận, truyền thông, phân chia tập hợp liệu Trên hệ thống sử dụng 𝑝 xử lí xếp mảng có kích cỡ 𝑛, đó, thuật tốn trải qua bước thực sau: Bước Khởi tạo ban đầu Với 𝑝 xử lí, lựa chọn xử lí làm gốc (bộ xử lí 0), khởi tạo liệu với kích cỡ 𝑛 Bước Phân chia liệu, xếp cục lựa chọn mẫu chuẩn Phân chia liệu ban đầu cho 𝑝 xử lí Mỗi xử lí xếp cục tập liệu với kích thước 𝑛 𝑝 cách sử dụng thuật tốn QuickSort Sau đó, 47 xử lí lựa chọn 𝑝 phần tử từ tập liệu để làm mẫu Các mẫu lựa chọn có khoảng cách Cụ thể, phẩn tử vị trí 1, 𝑤 + 1, 2𝑤 + 𝑛 1, , (𝑝 − 1)𝑤 + với 𝑤 = [ 2]được chọn để làm mẫu 𝑝 Bước Tập hợp trộn mẫu, lựa chọn phần tử chốt Bộ xử lí gốc tập hợp tất phần tử chọn làm mẫu 𝑝 xử lí Điều quan trọng cần để ý tập hợp phần tử mẫu xử lí xếp Có 𝑝 tập hợp xếp sử dụng thuật toán trộn để trộn chúng lại với Từ 𝑝2 phần tử xếp này, lựa chọn 𝑝 − giá trị để làm phần tử chốt cách lấy phần tử có số 𝑝 + 𝑓, 2𝑝 + 𝑓, … , (𝑝 − 1)𝑝 + 𝑝 𝑓 với 𝑓 = ⌊ ⌋ Tiếp theo, xử lí gốc truyền thông phần tử chốt đến 𝑝 − xử lí lại Bước Phân chia liệu cục xử lí dựa phần tử chốt Mỗi xử lí phân chia liệu cục xếp thành 𝑝 phân lớp dựa vào 𝑝 − phần tử chốt chọn Bước Tập hợp trộn phân lớp xử lí Bộ xử lí thứ 𝑖 tập hợp liệu phân lớp thứ 𝑖(1 ≤ 𝑖 ≤ 𝑝) từ xử lí khác Mỗi phân lớp xếp trộn lại với Bước Tập hợp liệu cuối Bộ xử lí gốc tập hợp tất liệu lắp ráp danh sách xếp xử lí thành danh sách xếp gồm n phần tử ban đầu Thuật toán kết thúc Thuật tốn minh họa hình đây: 48 Dữ liệu ban đầu Phân chia liệu Sắp xếp cục P0 P1 P2 P0 P1 P2 Lựa chọn mẫu Trộn xếp mẫu Chọn p-1 phần tử chốt Truyền thông chốt Phân lớp liệu Truyền trộn phân lớp Tập hợp kết Hình 2.6 Minh họa thuật tốn PSRS 49 2.3.2 Đánh giá độ phức tạp Về độ phức tạp thời gian tính tốn, bước thứ giải thuật, xử lí thực xếp liệu QuickSort Kích thước liệu xử lí 𝑛 𝑝 sau chọn 𝑝 phần tử làm mẫu Do thời gian yêu cầu tính tốn bước là: 𝑛 𝑛 𝑂 ( log + 𝑝) 𝑝 𝑝 𝑛 Trong bước 4, xử lí phân chia phần tử xếp Thời gian 𝑝 𝑛 cần thiết 𝑂 ( ) 𝑝 Trong bước thứ 5, xử lí thứ 𝑖 trộn 𝑝 danh sách xếp Mỗi danh sách tạo cách sử dụng phần tử chốt chọn pha 3, trường hợp lý tưởng, danh sách có kích thước 𝑛 𝑝2 mà sau trộn 𝑛 danh sách xử lí có kích cỡ Sử dụng thuật toán trộn trường 𝑝 𝑛 hợp yêu cầu thời gian 𝑂( log 𝑝).Tổng thời gian tính tốn là: 𝑝 𝑛 𝑛 𝑛 𝑛 𝑂 ( log + 𝑝 + + log 𝑝 ) 𝑝 𝑝 𝑝 𝑝 𝑛 𝑛 𝑝 𝑝2 Xét thời gian truyền thơng, bước 5, xử lí gửi − 𝑛 phần tử, đó, tổng số phần tử cần truyền thông 𝑛 − Trong bước cuối cùng, xử 𝑝 lí gốc tập hợp 𝑛 − 𝑛 𝑝 phần tử Do độ phức tạp thời gian truyền thông là: 𝑛 𝑂(𝑛 − ) 𝑝 2.3.3 Ví dụ minh họa 50 Thực thuật tốn sếp PSRS mảng A có 36 phần tử với xử lí Q trình xếp thực theo thứ tự đây: 2.3.4 Ví dụ minh họa 51 36 khóa 16 17 24 33 28 30 27 25 34 23 19 18 11 21 13 35 12 29 14 22 15 32 10 26 31 20 P1 16 17 24 33 28 30 27 P2 25 34 Sắp xếp cục 23 19 18 11 16 17 24 25 27 16 28 30 33 11 12 12 18 Lựa chọn mẫu 27 19 21 23 12 12 29 29 22 17 25 27 28 P1 30 33 14 35 12 15 32 10 13 18 10 14 15 20 10 10 22 11 22 26 31 20 19 21 23 29 34 P2 Kết hợp lại vùng 22 26 31 35 10 22 14 15 20 26 22 31 Phần P1 16 17 Phần P1 24 25 27 28 30 33 Phần1 P2 Phần P2 11 12 13 18 19 21 Phần P2 23 29 34 35 Phần1 P3 10 Phần P3 14 15 20 22 Phần P3 26 31 32 10 Kết cuối trộn phân vùng P1 11 12 13 14 15 16 17 51 18 19 20 32 P3 Kết hợp lại vùng 32 22 Phần P1 Kết cuối trộn phân vùng P1 22 10 24 Lựa chọn mẫu 10 13 16 22 23 27 10 34 23 Sắp xếp nội phẩn tử mẫu Kết hợp lại vùng 35 16 27 12 23 10 22 16 BXL P1 tập hợp phần tử mẫu 10 13 Sắp xếp cục Lựa chọn phần tử chốt 21 Sắp xếp cục Lựa chọn mẫu P3 Kết cuối trộn phân vùng P1 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 2.4 Kết luận chương Chương 2, phần thứ chương đưa chiến lược thiết kế cho toán xếp hệ thống song song, chiến lược áp dụng cách linh hoạt cho thuật tốn xếp song song trình bày Phần thứ hai chương tập trung trình bày chi tiết thuật tốn xếp song song tư tưởng thuật toán, cách thực thuật tốn, thuật tốn ví dụ chi tiết minh họa cho thuật tốn Ngồi ra, qua nhận thấy khác thuật toán xếp song song, thuật toán có ưu nhược điểm riêng Bằng việc phân tích cách chi tiết thuật tốn song song PSRS, nhận thấy thuật toán hay với nhiều ưu điểm độ phức tạp thủ tục cài đặt, phù hợp với nhiều mơ hình song song Do chương tiếp theo, phần thực nghiệm luận văn xin lựa chọn thuật toán Parallel Quicksort thuật toán PSRS để cài đặt thử nghiệm hệ thống song song cụ thể để đưa đánh giá so sánh độ hiệu hai thuật toán 52 CHƯƠNG ỨNG DỤNGLẬP TRÌNH SONG SONGCÀI ĐẶT THUẬT TỐN SẮP XẾP PSRS VÀ PARALLELQUICKSORT Nội dung chương trình bày thủ tục hàm cần thiết để cài đặt thuật toán PSRS ParallelQuicksort với kết thực nghiệm chạy thuật toán đồng thời đưa so sánh kết thực thuật toán PSRS thuật toán ParallelQuicksort chạy hệ thống để đánh giá cách tổng thể tính đắn hiệu thuật tốn 3.1 Mơi trường phương pháp thực nghiệm 3.1.1 Mơi trường thực nghiệm Q trình thực nghiệm tiến hành hệ thống IBM Linux Cluster 1350 trung tâm Tính tốn Hiệu Năng Cao – Trường đại học Khoa học Tự nhiên – ĐHQGHN với cấu sau: - node tính tốn, node gồm chip Intel Xeon Dual Core 3.2 GHz, GB RAM, 1x36 GB HDD, DVD ROM Tổng lực tính tốn node khoảng 51.2 Gflops - node phục vụ lưu trữ (Storage1 Storage2), node gồm chip Intel Xeon Dual Core 3.2 GHz, GB RAM, 4x72 GB HDD - node đóng vai trò quản lí (MGT) bao gồm chip Intel Xeon Dual Core 3.2 GHz, GB RAM, 2x36 GBHDD - Năng lực lưu trữ: thiết bị lưu trữ dùng chung EXP400 với 10x73 GB HDD SCSI 320 MBps 15KRpm, dùng hệ thống chia sẻ file: GPFS cho Linux v2.3.0.5 - Các node chạy HĐH Redhat Enterprise Linux 3.0 kết nối với thông qua mạng Gethernet Các thuật tốn lập trình ngơn ngữ C++ sử dụng thư viện lập trình song song MPI Thực nghiệm nhằm mục đích kiểm tra song song hóa thuật toán PSRS kiểm nghiệm so sánh thời gian thực thi thuật toán so với thuật tốn ParallelQuicksort (Thuật tốn ParallelQuickSort xây dựng mơ hình mạng Hypercube nhiên chạy thực nghiệm trêm mơ hình MPI-Mơ 53 hình truyền thơng điệp, lẽ q trình truyền thơng điệp q trình gửi nhận liệu nút mạng Hypercube) 3.1.2 Phương pháp thực nghiệm Về nguyên tắc lấy số liệu thực nghiệm: - Cố định số phần tử mảng thay đổi số xử lí sử dụng(2, 4, 8) chạy từ đến 10 lần để đo thời gian lấy giá trị trung bình lần chạy - Thay đổi số phần tử mảng (105, 106, 107) chạy số xử lí, chạy từ đến 10 lần để đo thời gian lấy giá trị trung bình lần chạy 3.2 Các kết thực nghiệm 3.2.1 Kết thực nghiệm chạy thuật toán PSRS Input Size T.sequency (seconds) 105 Thời gian chạy trung bình thuật tốn PSRS(giây) P=2 P=3 P=4 P=8 0.0372 0.0285 0.0199 0.0183 0.0514 106 0.4186 0.3343 0.2188 0.1947 0.2146 107 4.6197 3.1352 2.5169 2.1608 2.1887 P: số xử lí sử dụng, T.sequency: thời gian (giây) Input Size (kích thước liệu đầu vào) Bảng So sánh kết chạy thuật toán PSRS Qua thực nghiệm, trước hết nhận thấy thuật tốn PSRS hồn tồn song song hóa chạy chương trình sử dụng số xử lí bất kì, khơng cần điều kiện ràng buộc số xử lí sử dụng Về kết thực nghiệm, nhìn vào bảng kết nhận thấy rằng, thời gian chạy chương trình trường hợp xử lí song song, với bốn trường hợp cố định số phần tử mảng thay đổi số xử lí sử dụng (2, 3, 4, xử lí) kết cho thời gian chạy tốt so với thời gian chạy (sử dụng xử lí) Cụ thể, trường hợp sử dụng xử lí so với thời gian chạy tuần tự, với số phần tử 𝑛 = 100000 thời gian chạy song song nhanh gấp 1.5 lần, với số phần tử 𝑛 = 1000000 thời gian chạy song song nhanh gấp 1.36 lần, với 𝑛 = 10000000 54 thời gian chạy song song nhanh gấp 1.48 lần Trong trường hợp sử dụng xử lí so với thời gian chạy tuần tự, với số phần tử 𝑛 = 100000 thời gian chạy song song nhanh gấp lần, với số phần tử 𝑛 = 1000000 thời gian chạy song song nhanh gấp 2.15 lần, với 𝑛 = 10000000 thời gian chạy song song nhanh gấp 2.16 lần Trường hợp cuối cùng, sử dụng xử lí so với thời gian chạy tuần tự, với số phần tử 𝑛 = 1000000 thời gian chạy song song nhanh gấp 1.95 lần, với 𝑛 = 10000000 thời gian chạy song song nhanh gấp 2.11 lần Rõ ràng, chạy đa xử lí, thuật tốn PSRS cho kết hiệu nhiều lần so với chạy Số xử lí cho kết tốt xử lí Qua kết thực nghiệm, phần giúp ta nhận thấy rằng, tăng số xử lí hệ thống lên thuật toán đạt hiệu tốt thời gian Đến lúc đó, tăng số xử lí hệ thống lên độ hiệu khơng thể tăng lên Do ln ln cần xác định số xử lí tốt mà hệ thống nên sử dụng trình chạy chương trình Dưới biểu đồ thể kết chạy thuật toán PSRS hệ thống song song Biểu đồ so sánh thời gian chạy thuật toán PSRS 4.5 Thời gian(giây) 3.5 P=1 P=2 2.5 P=4 P=8 1.5 0.5 100 1000 10000 Số phần tử (nghìn) Hình 3.1 Biểu đồ so sánh thời gian chạy thuật toán PSRS 55 Biểu đồ so sánh thời gian chạy xử lý với số phần tử N=1000000 0.45 0.4 0.4186 Thời gian (giây) 0.35 0.3343 0.3 0.2755 0.25 0.2 0.1947 0.2146 0.15 0.1 0.05 P=1 P=2 P=4 P=8 P=16 Số xử lý Hình 3.2 Biểu đồ so sánh thời gian chạy BXL với số phần tử N=106 3.2.2 So sánh kết thuật toán PSRS ParallelQuicksort(PQ) Thời gian chạy trung bình thuật tốn song song(giây) Input PSRS PQ PSRS PQ PSRS PQ P=2 P=2 P=4 P=4 P=8 P=8 105 0.0285 0.009 0.0183 0.007 0.0514 0.0466 106 0.3343 0.1043 0.1947 0.0873 0.2146 0.1204 107 3.1352 0.9525 2.1608 0.8029 2.1887 1.2908 Size P: Số xử lí hệ thống Input Size: Kích thước đầu vào(Số phần tử ) Bảng So sánh thời gian chạy PSRS Parallel Quicksort 56 Biểu đồ so sánh thời gian chạy thuật toán PSRS Parallel Quicksort với xử lý Thời gian chạy (giây) 2.5 1.5 PSRS P=4 PQ P=4 PSRS P=8 PQ P=8 0.5 100 1000 10000 Số phần tử (nghìn) Hình 3.3 Biểu đồ so sánh thời gian PSRS PQ Khi chạy hệ thống, thuật toán PSRS Parallel Quicksort cho kết khả quan Với liệu đầu vào hai thuật toán nên sử dụng xử Qua biểu đồ ta thấy rằng, trường hợp trung bình, tức thuật tốn Parallel Quicksort khơng bị suy biến, thuật tốn Parallel Quicksort cho kết tốt thuật toán PSRS 3.3 Kết luận chương Trong chương 3, em tập trung vào xây dựng cài đặt chương trình thử nghiệm trung tâm Tính tốn Hiệu Năng Cao – Trường đại học Khoa học Tự nhiên – ĐHQGHN Với hai thuật toán cài đặt, chạy thử nghiệm thu kết khả quan Trước hết khẳng định hai thuật tốn hồn tồn thực song song hóa được, nữa, hai thuật toán chạy cho thời gian thực thi nhanh nhiều so với việc chạy thuật toán Qua đó, em nhận thấy việc lựa chọn số xử lí để chạy chương trình có ảnh hưởng lớn đến kết chương trình Cần xác định số xử lí phù hợp với tốn để có kết khả quan 57 KẾT LUẬN Luận văn trình bày cách khái quát sở xử lí song song, mơ hình song song thường sử dụng Nội dung chủ yếu luận văn tập trung vào việc hệ thống hóa thuật tốn xếp nghiên cứu, phân tích đặc điểm thuật toán, đưa nhìn bao qt thuật tốn xếp Lấy chủ đề để nghiên cứu luận văn, luận văn đưa với cấu trúc gồm có chương Trong đó, chương luận văn trình bày cách tổng quan lý thuyết xử lí song song, mơ hình song song phổ biến tập trung mô tả tốn xếp, việc hệ thống hóa lại hầu hết thuật toán xếp đưa so sánh thuật toán xếp điểm bật chương Chương luận văn tập trung vào việc tìm hiểu vấn đề song song hóa thuật tốn xếp Đây vấn đề trọng tâm luận văn Các thuật tốn xếp song song trình bày chi tiết từ tư tưởng đến thuật tốn ví dụ minh họa để làm rõ nét thuật tốn Với ba thuật tốn điển hình Parallel Quicksort, HyperQuicksort PSRS, ba thuật toán giúp cải thiện tốc độ việc xếp cách tốt thực hệ thống song song Qua trình tính tốn thực nghiệm, luận văn đưa kết để khẳng định việc song song hóa thuật tốn hồn tồn xác thu thời gian xử lí tốt giải thuật có nhiều Với kiến thức thân chưa cao chưa có nhiều thời gian để nghiên cứu nhiều thuật tốn song song khác, tương lai, em tiếp tục tìm hiểu thuật tốn song song khác, không áp dụng tốn xếp mà áp dụng nhiều lĩnh vực khác để từ bổ sung thêm kiến thức kinh nghiệm cho thân khả phân tích xử lí toán hệ thống song song để áp dụng lĩnh vực mà xã hội cần 58 TÀI LIỆU THAM KHẢO Tiếng việt [1] Lê Huy Thập (2010), “ Cơ sở lý thuyết song song”, NXB Công nghệ thông tin truyền thông , Hà Nội [2] Lê Minh Hồng (2009), “Giải thuật lập trình”, Đại học sư phạm Hà Nội I Tiếng anh [3] Grama A., A Gupta, G Karypis, V Kumar (2003), “Introduction to Parallel Computing”, Addison Wesley [4] M J Quinn(2003), “Parallel Programming in C with MPI and OpenMP”, Tata McGraw Hill Publications [5] Madhavi Desai, Viral Kapadiya, “Performance Study of Efficient Quick Sort and Other Sorting Algorithms for Repeated Data”, National Conference on Recent Trends in Engineering & Technology, 13-14 May 2011 [6] D E Knuth(1998), “The Art of Computer Programming”, Volume 3: Sorting and Searching, Second ed Boston, MA: Addison-Wesley [7] I.S Rajput, B Kumar, TinKu Singh, “Performance comparison of Sequential Quicksort and Parallel Quicksort Algorithms”, International Journal of Computer Applications (0975-8887) Volume 57_No9, November 2012 [8] Quinn M.J (1989), “Analysis and Benchmarking of two parallel sorting algorithms: HyperQuicksort and QuickMerge”, University of New Hampshire, Durham, NH 03824, USA [9] Xiaobo Li, Paul Lu, Jonathan Schaeffer, John Shillington, Pok Sze Wong (2004), “On the Versatility of parallel sorting by Regular Sampling”, University of Alberta, EdmonTon, Alberta, Canada 59 ... cao việc nâng cao tính hiệu giải thuật xếp ngày trở nên quan trọng Từ vấn đề trên, đề tài Nâng cao hiệu toán xếp với giải thuật song song” tập trung vào nghiên cứu việc song song hóa thuật toán. .. hóa lại thuật toán xếp tuần tự, thuật toán phổ biến quen thuộc Mỗi thuật toán thể rõ hai khía cạnh tư tưởng thuật toán độ phức tạp thuật toán Việc cải tiến song song hóa số thuật tốn giới thiệu... toán xếp 29 2.2 Thuật toán xếp song song phát triển dựa thuật toán 30 2.2.1 Thuật toán xếp hoán vị chẵn lẻ 30 2.2.2 Thuật toán Shellsort 32 2.2.3 Thuật toán Parallel QuickSort

Ngày đăng: 10/04/2020, 08:53

Từ khóa liên quan

Mục lục

  • LỜI CẢM ƠN

  • Danh mục viết tắt

  • MỞ ĐẦU

  • CHƯƠNG 1. TỔNG QUAN VỀ XỬ LÝ SONG SONG

    • 1.1 Tổng quan về xử lí song song

      • 1.1.1 Tính toán tuần tự và tính toán song song

      • Hình 1.1 Minh họa quá trình xử lí tuần tự

      • Hình 1.2 Minh họa quá trình xử lí song song

        • 1.1.2 Kiến trúc máy tính song song

        • Hình 1.3 Phân loại Flynn về các kiến trúc song song

          • 1.1.3 Một số mạng kết nối trên hệ thống song song

            • 1.1.3.1 Mạng liên kết tuyến tính và liên kết vòng

            • Hình 1.4 Mạng liên kết tuyến tính và mạng vòng

              • 1.1.3.2 Mạng liên kết lưới hai chiều (Two-Dimentional mesh)

              • Hình 1.5 Mạng liên kết lưới hai chiều

                • 1.1.3.3 Mạng liên kết hình khối (Hypercube Network)

                • Hình 1.6 Mạng liên kết khối

                  • 1.1.4 Cơ sở đánh giá giải thuật song song

                    • 1.1.4.1 Thời gian thực hiện

                    • 1.1.4.2 Hệ số tăng tốc và độ hiệu quả giải thuật

                    • 1.2 Tổng quan về bài toán sắp xếp

                      • 1.2.1 Bài toán sắp xếp.

                      • 1.2.2 Các cấu trúc dữ liệu cho bài toán sắp xếp

                      • 1.2.3 Phân lớp các thuật toán sắp xếp dựa trên độ phức tạp

                        • 1.2.3.1 Lớp thuật toán có độ phức tạp O(n2)

                          • a. Thuật toán sắp xếp chọn (SelectionSort)

                          • b. Thuật toán sắp xếp chèn (InsertionSort)

                          • c. Thuật toán Shellsort

                          • d. Thuật toán sắp xếp nổi bọt (BubbleSort)

                          • e. Thuật toán sắp xếp hoán vị chẵn lẻ (OddEvenSort)

                          • f. Thuật toán sắp xếp Gnome

                          • 1.2.3.2 Lớp thuật toán có độ phức tạp O(nlogn)

                            • a.Thuật toán sắp xếp nhanh (QuickSort)

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan