ĐÁNH GIÁ HIỆU NĂNG THUẬT TOÁN MERGR SORT SỬ DỤNG MPI

22 6 0
ĐÁNH GIÁ HIỆU NĂNG THUẬT TOÁN MERGR SORT SỬ DỤNG MPI

Đ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

Trong những năm gần đây, mặc dù nền Công nghệ thông tin của thế giới ngày một phát triển. Tốc độ xử lí máy tính ngày càng tăng lên. Tuy nhiên, chúng ta cũng gặp phải khó khăn trong một số bài toán có dữ liệu đầu vào lớn (bài toán dự báo thời tiết, dự báo động đất, ...). Với dữ liệu đầu vào là một con số rất lớn, dù máy tính có tốc độ lớn, bộ nhớ nhiều vẫn vấp phải yêu cầu phải giải quyết bài toán thời gian chấp nhận được. Trong nhiều năm qua, các nhà khoa học đã nghĩ ra biện pháp giải quyết hiệu quả đó là chia nhỏ bài toán ra thành nhiều bài toán. Việc giải quyết các bài toán nhỏ được tiến hành đồng thời tất cả các bài toán với nhiều máy tính. Kết quả của bài toán lớn sẽ được giải quyết khi tất cả các bài toán nhỏ được làm. Các máy tính tiến hành xử lí song song được kết nối với nhau thành các cụm tính toán tốc độ cao. Điều này đã mở ra một lĩnh vực mới trong ngành công nghệ thông tin, đó là lập trình song song và tính toán phân tán. Lập trình song song cho phép chúng ta tận dụng tối đa sức mạnh của các hệ thống đa lõi và đa máy tính, trong khi tính toán phân tán giúp chúng ta xử lý dữ liệu lớn mà không cần phải tập trung tất cả dữ liệu đó vào một nơi. Các công nghệ như Hadoop và Spark đã được phát triển để giải quyết các vấn đề này, cho phép chúng ta xử lý và phân tích dữ liệu lớn một cách hiệu quả.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN  - BÁO CÁO THỰC NGHIỆM Học phần: Tính tốn hiệu cao ĐÁNH GIÁ HIỆU NĂNG THUẬT TOÁN MERGR SORT SỬ DỤNG MPI Giáo viên hướng dẫn: TS Hà Mạnh Đào Nhóm sinh viên thực hiện: Nhóm Nguyễn Hồng Vũ MSV: 2021605818 Võ Trung Hiếu MSV: 2021603327 Hoàng Thân Anh Quý MSV: 2021602169 Mã Lớp: 20231IT6069001 Hà Nội - Năm 2023 MỤC LỤC MỤC LỤC LỜI MỞ ĐẦU NỘI DUNG .5 I MÔ TẢ GIẢI THUẬT SONG SONG Giới thiệu Nguyên lý thiết kế thuật toán song song II MƠ HÌNH LẬP TRÌNH TRUYỀN THƠNG ĐIỆP CHUẨN MPI Giới thiệu Các khái niệm Cấu trúc chương trình MPI III BÀI TOÁN SẮP XẾP .8 Sắp xếp bọt Sắp xếp chèn Sắp xếp chọn Sắp sếp trộn .9 Sắp xếp vun đống Sắp xếp nhanh IV ỨNG DỤNG LẬP TRÌNH SONG SONG VÀO BÀI TOÁN SẮP XẾP BẰNG PHƯƠNG PHÁP TRỘN(MERGESORT) 10 Phát biểu toán 10 Mã nguồn .11 Đánh giá thời gian chạy với số CPU khác 14 KẾT LUẬN 19 TÀI LIỆU THAM KHẢO 21 LỜI MỞ ĐẦU Trong năm gần đây, Công nghệ thông tin giới ngày phát triển Tốc độ xử lí máy tính ngày tăng lên Tuy nhiên, gặp phải khó khăn số tốn có liệu đầu vào lớn (bài toán dự báo thời tiết, dự báo động đất, ) Với liệu đầu vào số lớn, dù máy tính có tốc độ lớn, nhớ nhiều vấp phải yêu cầu phải giải toán thời gian chấp nhận Trong nhiều năm qua, nhà khoa học nghĩ biện pháp giải hiệu chia nhỏ toán thành nhiều toán Việc giải toán nhỏ tiến hành đồng thời tất tốn với nhiều máy tính Kết toán lớn giải tất tốn nhỏ làm Các máy tính tiến hành xử lí song song kết nối với thành cụm tính tốn tốc độ cao Điều mở lĩnh vực ngành công nghệ thơng tin, lập trình song song tính tốn phân tán Lập trình song song cho phép tận dụng tối đa sức mạnh hệ thống đa lõi đa máy tính, tính tốn phân tán giúp xử lý liệu lớn mà không cần phải tập trung tất liệu vào nơi Các cơng nghệ Hadoop Spark phát triển để giải vấn đề này, cho phép xử lý phân tích liệu lớn cách hiệu Tuy nhiên, việc lập trình song song tính tốn phân tán lúc dễ dàng Cần có hiểu biết sâu sắc cách thức hoạt động hệ thống cách liệu phân chia xử lý Điều đòi hỏi đổi cách đào tạo lập trình viên, với nhấn mạnh mạnh mẽ vào kỹ liên quan đến lập trình song song tính tốn phân tán Chúng ta cần phải phát triển cơng cụ ngơn ngữ lập trình để giúp đơn giản hóa q trình làm cho trở nên dễ tiếp cận với lượng lớn lập trình viên Với nỗ lực này, hy vọng vào tương lai mà việc xử lý liệu lớn khơng cịn rào cản lớn NỘI DUNG I MÔ TẢ GIẢI THUẬT SONG SONG Giới thiệu Hiện nay, để giải toán lớn người ta thường nghĩ đến việc sử dụng siêu máy tính việc kết hợp nhiều máy tính với để tính tốn Tuy nhiên, với phương pháp lập trình cổ điển khơng thể phát triển chương trình tận dụng sức mạnh hệ thống Đó lý lập trình song song đời Lập trình song song cơng việc phức tạp so với lập trình thơng thường, người phát triển phải thực trình "song song hóa", biến đổi chương trình thành chương trình song song có khả tận dụng tối đa sức mạnh hệ thống Nguyên lý thiết kế thuật toán song song 2.1 Cách thức xây dựng chương trình song song phân bố Phát triển thuật toán phần quan trọng việc giải vấn đề sử dụng máy tính Một thuật toán song song phương pháp giải vấn đề dựa việc sử dụng nhiều xử lý Tuy nhiên đề thuật toán song song không đơn giản bước cụ thể, mà mức độ thuật tốn song song phải thêm vào tính đồng thời người thiết kế thuật toán phải tập hợp bước xử lý đồng thời, điều tận dụng khả tính tốn máy tính song song Trên thực tế việc thiết kế thuật toán song song phức tạp, gồm công việc: - Chỉ phần cơng việc thực thi đồng thời - Ánh xạ phần công việc vào nhiều xử lý chạy song song - Phân tán liệu nhập, xuất trung gian với chương trình - Quản lý truy cập vào liệu chung xử lý - Đồng hóa xử lý thực thi chương trình song song 2.2 Thiết kế thuật toán song song Thuật toán song song tập tiến trình (process) tác vụ (task) thực đồng thời trao đối liệu với để kết hợp giải toán đặt Thiết kế giải thuật song song chia toán thành toán nhỏ gán toán nhỏ cho vi xử lý khác để thực song song Quá trình thiết kế giải thuật song song q trình song song hóa tốn Ngun lý thiết kế giải thuật song song bao gồm: 2.2.1 Nguyên lý lập lịch: Giảm tối thiểu xử lý sử dụng thuật toán cho thời gian tính tốn khơng tăng (xét theo khía cạnh độ phức tạp) Nghĩa là, độ phức tạp tính tốn thuật tốn O(f(n)) thời gian thực chương trình tăng số xử lý giảm, thời gian tính tốn tổng thể tăng lên số O(f(n)) 2.2.2 Nguyên lý hình ống: Nguyên lý áp dụng toán xuất dãy thao tác {T1, T2, …, Tn}, Ti + thực sau Ti kết thúc 2.2.3 Nguyên lý chia để trị: Tức chia toán thành phần nhỏ tương đối độc lập với giải chúng cách song song Tạo mơ hình phân cấp để phân cấp q trình truyền thơng tính tốn - Tăng tính song song so với mơ hình trước - Thời gian chạy giảm từ O(n) xuống O(logn) 2.2.4 Nguyên lý đồ thị phụ thuộc liệu: Phân tích mối quan hệ liệu tính tốn để xây dựng đồ thị phụ thuộc liệu dựa vào đề xây dựng thuật toán song song 2.2.5 Nguyên lý điều kiện tương tranh: Nếu hai tiến trình muốn truy cập vào mục liệu chia sẻ chúng phải tương tranh với nhau, nghĩa chúng cản trở lẫn II MƠ HÌNH LẬP TRÌNH TRUYỀN THƠNG ĐIỆP CHUẨN MPI Giới thiệu Có nhiều ngơn ngữ lập trình thư viện xây dựng nên để dành cho lập trình song song Mơ hình lập trình truyền thơng điệp mơ hình cổ sử dụng rộng rãi mơ hình dùng cho lập trình máy tính song song Mơ hình có hai tính chất quan trọng là: giả sử khơng gian địa phân chia hỗ trợ song song hóa tường minh Mơi trường truyền thông điệp LAM/MPI phiên nguồn mở, cung cấp miễn phí với chuẩn MPI Chuẩn MPI (Message Passing Interface) kết sau năm thảo luận MPI Forum, nhóm gồm khoảng 60 người từ 40 tổ chức khác đại diện cho nhà phân phối hệ thống song song, phịng thí nghiệm quốc gia trường đại học danh tiếng MPI thư viện hàm chèn vào mã nguồn để truyền liệu tiên trình Các khái niệm - Communicator: Một nhóm tiến trình truyền thống với Một tiến trình thuộc nhiều Communicator - Rank: Mỗi tiến trình communicator có định danh, gọi Rank, đánh số Một tiến trình rank khác thuộc communicator khác - Group: nhóm xử lý - Process (tiến trình hay xử lý): với kiểu lập trình máy có xử lý process coi tiến trình chương trình có khơng gian địa riêng hệ điều hành cung cấp - Send/receive: Vì chương trình sử dụng phương pháp lập trình Message passing không chia sẻ vùng nhớ chung, hay biến cục mà tất liệu phải giao tiếp thơng qua truyền thơng Do MPI định nghĩa Send/receive chế gửi nhận thông điệp xử lý máy khác Cấu trúc chương trình MPI Các tập tin thư viện: liên quan đến hàm thủ tục, kiểu liệu Bao gồm tập tin.h mpi.h, mpio.h, Cấu trúc chương trình MPI: Các tập tin thư viện Khởi tạo mơi trường MPI Thực thủ tục hàm MPI Thoát khỏi mơi trường III BÀI TỐN SẮP XẾP Trong tốn học, khoa học máy tính tốn xếp dãy số cho trước thành dãy số tăng giảm gọi toán xếp Việc xếp giúp ích nhiêu cơng việc tìm kiếm thơng tin sống Một số thuật toán xếp tương đối đơn giản như: Sắp xếp bọt Sắp xếp nồi bọt (bubble sort) phương pháp xếp đơn giản, dễ hiểu thường dạy khoa học máy tính Giải thuật đầu tập liệu Nó so sánh hai phần tử đầu, phần tử đứng trước lớn phần tử đứng sau đồi chỗ chúng cho Tiếp tục làm với cặp phần tử cuối tập hợp liệu Sau quay lại với hai phần tử đầu khơng cịn cần phải đồi chỗ Sắp xếp chèn Sắp xếp chèn (insertion sort) thuật toán xếp hiệu với danh sách nhỏ Nó lấy phần tử danh sách chèn vào vị trí thích hợp danh sách Sắp xếp chọn Sắp xếp chọn (select sort) phương pháp xếp cách chọn phần tử bé xếp vào vị trí thứ nhất, tương tự với phần tử nhỏ thứ hai, thứ ba, Sắp sếp trộn Sắp xếp trộn (merge sort) với xếp nhanh hai thuật toán xếp dựa vào tư tưởng "chia để trị" (divide and conquer) Thủ tục bàn việc trộn hai danh sách xếp vào danh sách theo thứ tự Nó bắt đầu trộn cách so sánh hai phần tử (chẳng hạn phần tử thứ với phần từ thứ hai, sau thứ ba với thứ tư ) sau kết thúc bước chuyển sang bước Ở bước trộn danh sách hai phần tử thành danh sách bốn phần tử Cứ hai danh sách cuối trộn thành Sắp xếp vun đống Sắp xếp vun đống (heapsort) phương pháp xếp chọn Ở bước xếp chọn ta chọn phần từ lớn (hoặc nhỏ nhất) đặt vào cuối (hoặc đầu) danh sách, sau tiếp tục với phần cịn lại danh sách Thông thường xếp chọn chạy thời gian O(n2) Nhưng heapsort giảm độ phức tạp cách sử dụng cầu trúc liệu đặc biệt gọi đồng (heap) Đồng nhị phân mà trọng số đỉnh cha lớn trọng số đỉnh Một danh sách liệu vun thành đống, gốc phần từ lớn nhất, thuật tốn giài phóng khỏi đống đề đặt vào cuối danh sách Sắp xếp vun đồng chạy thời gian O(nlogn) Sắp xếp nhanh Sắp xếp nhanh (quicksort) thuật tốn theo tư tưởng chia để trị, dựa thủ tục phân chia sau: đề chia dãy ta chọn phần tử gọi "chốt" (pivot), chuyển tất phần tử nhỏ chốt trước chốt, chuyển tất phần tử lớn chốt sau Thủ tục thực thời gian tuyến tính Tiếp tục phân chia dãy cho đền dãy phân tử Điểm khác biệt xếp nhanh xếp trộn xếp trộn việc xác định thứ tự xác định "trộn", tức khâu tổng hợp lời giải sau toán giải, xếp nhanh quan tâm đến thứ tự phần tử phân chia danh sách thành hai danh sách Ngồi cịn nhiều giải thuật xếp khác, nhiều giải thuật xếp cải tiến từ giải thuật Trong sau giải thuật liệt kê trên, ta thường coi giải thuật chèn, chọn, nồi bọt giải thuật bản, độ phức tạp trường hợp trung bình chúng O(n2) Ba giải thuật cịn lại thường coi giải thuật cao cấp, độ phức tạp tính tốn trung bình chúng nIn(n) IV ỨNG DỤNG LẬP TRÌNH SONG SONG VÀO BÀI TỐN SẮP XẾP BẰNG PHƯƠNG PHÁP TRỘN(MERGESORT) Phát biểu tốn Giả sử có hai danh sách xếp a[1.m] b[1 n.] (trong m n số lớn) Ta trộn chúng lại thành danh sách c[1 m + n] xếp theo cách sau: So sánh hai phần tử đứng đầu hai danh sách, lấy phần từ nhỏ cho vào danh sách Tiếp tục hai danh sách rỗng Khi hai danh sách rỗng ta lấy phần lại danh sách cho vào cuối danh sách Ví dụ: Cho hai danh sách a = (1,3,7,9), b = (2,6), q trình hịa nhập diễn sau: Danh sách a Danh sách b So sánh Danh sách c 1,3,7,9 2,6 1

Ngày đăng: 12/01/2024, 19:37

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

Tài liệu liên quan