Nghiên cứu và đánh giá hiệu năng thuật toán BFS sử dụng MPI

29 8 0
Nghiên cứu và đánh giá hiệu năng thuật toán BFS 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 thời đại ngày nay, nhu cầu về tính toán ngày càng tăng cao, việc phát triển các phương pháp tính toán hiệu năng cao là một thách thức không nhỏ. Cùng với sự tiến bộ của công nghệ và phần cứng cũng như phần mềm, chúng ta đang có những cơ hội mới để nâng cao khả năng xử lý của hệ thống tính toán. Đồng thời, những thách thức cũng đặt ra trước chúng ta, đòi hỏi sự sáng tạo và nghiên cứu sâu rộng về các thuật toán phức tạp, trong đó có BFS. Vì vậy, nhóm chúng em lựa chọn “Nghiên cứu và đánh giá hiệu năng thuật toán BFS sử dụng MPI” làm đề tài nghiên cứu của nhóm mình. Chúng em xác định rằng việc nắm vững thuật toán BFS không chỉ quan trọng lý thuyết mà còn mang lại những kiến thức cơ bản để áp dụng vào những bài toán trong thực tế. Sự kết hợp giữa BFS và MPI cho phép sử dụng sức mạnh của tính toán song song để giải quyết các bài toán lớn và phức tạp. Chúng em xin gửi lời cảm ơn sâu sắc đến Thầy Hà Mạnh Đào đã dành thời gian và kiến thức quý báu để hỗ trợ chúng em trong quá trình nghiên cứu và phát triển đề tài này.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN Học Phần: TÍNH TỐN HIỆU NĂNG CAO ĐỀ TÀI: Nghiên cứu đánh giá hiệu thuật toán BFS sử dụng MPI Giảng viên hướng dẫn : Hà Mạnh Đào Lớp : IT6069.1 - 20231IT6069001 Nhóm thực : Nhóm 11 Đỗ Hoài Phong - 2021603816 Trần Minh Tuấn - 2021606916 Hà Nội - 2023 LỜI NÓI ĐẦU Trong thời đại ngày nay, nhu cầu tính tốn ngày tăng cao, việc phát triển phương pháp tính tốn hiệu cao thách thức khơng nhỏ Cùng với tiến công nghệ phần cứng phần mềm, có hội để nâng cao khả xử lý hệ thống tính tốn Đồng thời, thách thức đặt trước chúng ta, đòi hỏi sáng tạo nghiên cứu sâu rộng thuật toán phức tạp, có BFS Vì vậy, nhóm chúng em lựa chọn “Nghiên cứu đánh giá hiệu thuật toán BFS sử dụng MPI” làm đề tài nghiên cứu nhóm Chúng em xác định việc nắm vững thuật tốn BFS khơng quan trọng lý thuyết mà mang lại kiến thức để áp dụng vào toán thực tế Sự kết hợp BFS MPI cho phép sử dụng sức mạnh tính tốn song song để giải toán lớn phức tạp Chúng em xin gửi lời cảm ơn sâu sắc đến Thầy Hà Mạnh Đào dành thời gian kiến thức quý báu để hỗ trợ chúng em trình nghiên cứu phát triển đề tài Tuy vậy, đề tài chúng em khơng tránh khỏi sai sót Nhóm chúng em mong muốn nhận đóng góp thầy hội đồng Nhóm chúng em xin chân thành cảm ơn! MỤC LỤC LỜI NÓI ĐẦU MỤC LỤC CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Một số khái niệm xử lý song song 1.2 Tính tốn song song .4 1.3 Thuật toán BFS 12 1.3.1 Khái niệm 12 1.3.2 Tư tưởng thuật toán 13 1.3.3 Ứng dụng thuật toán BFS .14 1.4 MPI 14 1.4.1 Giới thiệu MPI 14 1.4.2 Sự cần thiết MPI đề tài 15 1.4.3 Ứng dụng MPI 15 CHƯƠNG 2: Thuật tốn BFS cho tốn tìm đường ngắn đồ thị không trọng số 17 2.1 Khái niệm ví dụ tốn tìm đường ngắn đồ thị không trọng số .17 2.2 Phân tích tốn 17 CHƯƠNG 3: Cài Đặt Thuật Toán 19 3.1 Xây dựng thuật toán BFS cho toán 19 3.2 Thực song song hoá với MPI 21 3.2.1 Cấu hình MPI cho Project .21 3.2.2 Tích hợp hàm MPI cần thiết 22 3.2.3 Chương trình thực song song 23 3.3 Đánh giá độ phức tạp thuật toán BFS 25 CHƯƠNG 4: Kết thực nghiệm .26 4.1 Kết thực nghiệm chương trình chạy 26 4.2 Kết thực nghiệm chương trình chạy song song 26 4.3 Nhận xét đánh giá 26 TÀI LIỆU THAM KHẢO 28 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Một số khái niệm xử lý song song Xử lý song song cách xử lý thông tin việc sử dụng nhiều xử lý để thực nhiều thao tác liệu thời điểm 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 Những thuật toán, có số thao tác thực đồng thời gọi thuật toán song song 1.2 Tính tốn song song Theo nghĩa đơn giản nhất, tính tốn song song việc sử dụng đồng thời nhiều tài ngun tính tốn để giải vấn đề tính tốn:  Một vấn đề chia thành phần riêng biệt giải đồng thời  Mỗi phần chia nhỏ thành loạt hướng dẫn  Các hướng dẫn từ phần thực thi đồng thời xử lý khác  Một chế kiểm soát/phối hợp tổng thể sử dụng Vấn đề tính tốn có thể:  Chia nhỏ công việc rời rạc để giải đồng thời;  Thực nhiều hướng dẫn chương trình lúc nào;  Được giải thời gian ngắn với nhiều tài nguyên điện toán so với tài nguyên điện toán Các tài ngun tính tốn thường là:  Một máy tính có nhiều xử lý/lõi  Một số lượng tùy ý máy tính kết nối mạng Máy tính song song: Hầu tất máy tính độc lập ngày song song từ góc độ phần cứng:  Nhiều đơn vị chức (bộ đệm L1, đệm L2, nhánh, tìm nạp trước, giải mã, dấu phẩy động, xử lý đồ họa (GPU), số nguyên, v.v.)  Nhiều đơn vị thực thi/lõi  Nhiều chủ đề phần cứng  Các mạng kết nối nhiều máy tính độc lập (các nút) để tạo thành cụm máy tính song song lớn Ví dụ, sơ đồ bên hiển thị cụm máy tính song song LLNL điển hình:  Bản thân nút tính tốn máy tính song song đa xử lý  Nhiều nút điện toán nối mạng với mạng Infiniband  Các nút mục đích đặc biệt, xử lý đa năng, sử dụng cho mục đích khác  Phần lớn máy tính song song lớn (siêu máy tính) giới cụm phần cứng sản xuất số (hầu hết) nhà cung cấp tiếng 1.2.1 Mơ hình tính tốn song song Mơ hình tính tốn song song có cách phân loại theo Flynn: SISD: Single Instruction stream Single Data stream  Một máy tính nối tiếp (không song song)  Chỉ lệnh đơn: Chỉ có luồng lệnh CPU thực chu kỳ xung nhịp  Dữ liệu đơn: Chỉ luồng liệu sử dụng làm đầu vào chu kỳ đồng hồ  Thực xác định  Đây loại máy tính lâu đời  Ví dụ: máy tính lớn hệ cũ, máy tính mini, máy trạm PC lõi đơn/bộ xử lý SIMD: Single Instruction stream Multiple Data stream  Một loại máy tính song song  Lệnh đơn: Tất đơn vị xử lý thực lệnh chu kỳ xung nhịp định  Nhiều liệu: Mỗi đơn vị xử lý hoạt động phần tử liệu khác  Thích hợp cho vấn đề chuyên biệt đặc trưng mức độ đặn cao, chẳng hạn xử lý đồ họa/hình ảnh  Thực thi đồng (lockstep) xác định  Hai loại: Mảng xử lý Đường ống Vector MISD: Multiple Instruction stream Single Data stream  Một loại máy tính song song  Nhiều lệnh: Mỗi đơn vị xử lý hoạt động liệu cách độc lập thông qua luồng lệnh riêng biệt  Dữ liệu đơn: Một luồng liệu đưa vào nhiều đơn vị xử lý  Rất (nếu có) ví dụ thực tế loại máy tính song song tồn  Một số cách sử dụng hiểu là: Thuật tốn tìm kiếm theo chiều rộng sử dụng danh sách để chứa đỉnh “chờ” thăm Tại bước, ta thăm đỉnh đầu danh sách, loại khỏi danh sách cho đỉnh kề với chưa thăm xếp hàng vào cuối danh sách Thuật toán kết thúc danh sách rỗng 1.3.3 Ứng dụng thuật toán BFS   BFS giúp ta giải tốt số tốn thời gian khơng gian tối thiểu Đặc biệt tốn tìm kiếm đường ngắn từ đỉnh gốc tới tất đỉnh khác Trong đồ thị khơng có trọng số tất trọng số nhau, thuật tốn ln trả đường ngắn Ngồi ra, thuật tốn cịn dùng để tìm thành phần liên thông đồ thị, kiểm tra đồ thị hai phía, … 1.4 MPI 1.4.1 Giới thiệu MPI   Thơng thường, hầu hết chương trình tính toán thiết kế để chạy lõi, cách tính tốn (serial computation) Để chạy chương trình cách hiệu hệ thống máy tính CPU đa lõi, phải tiến hành song song hóa chương trình Việc lập trình song song thực thơng qua hàm thư viện (ví dụ: mpi.h) 14 đặc tính tích hợp chương trình biên dịch song song liệu MPI viết tắt Message Passing Interface Đó thư viện hàm C Fortran cho phép chèn vào code để thực trao đổi liệu tiến trình MPI thường sử dụng cho hệ thống có kiến trúc nhớ phân tán (hệ thống máy tính phân cụm (cluster))), nhiên hoạt động bình thường hệ thống kiến trúc chia sẻ nhớ Chương trình MPI dịch chạy tảng có hỗ trợ chuẩn MPI Trong mơ hình lập trình MPI, tiến trình truyền thơng cách gọi hàm thư viện để gửi nhận thông điệp với tiến trình khác Trong hầu hết chương trình MPI, số xử lí cố định khởi tạo chương trình, tiến trình tạo xử lí Tuy nhiên, tiến trình chạy chương trình khác Một chương trình MPI bao gồm nhiều chương trình có trao đổi liệu với thơng qua việc gọi hàm thư viện 1.4.2 Sự cần thiết MPI đề tài MPI giúp tận dụng sức mạnh tính tốn nhiều máy tính, làm tăng tốc độ thực thi thuật toán BFS dự án lớn có độ phức tạp cao MPI chuẩn phổ biến hỗ trợ nhiều tảng kiến trúc khác nhau, điều giúp đảm bảo tính mở rộng nghiên cứu đánh giá hiệu năng, không phụ thuộc vào hệ thống cụ thể MPI hỗ trợ chức đồng hóa, giúp đảm bảo liệu truyền xử lý cách đồng bộ, tránh tình trạng đọc/ghi khơng an tồn 15 1.4.3 Ứng dụng MPI MPI có ứng dụng chính: - Tính tốn Phân tán (Distributed Computing): MPI lựa chọn phổ biến cho ứng dụng u cầu tính tốn phân tán, nơi nhiều máy tính cộng tác để giải vấn đề lớn Điều bao gồm việc phân phối liệu, tính tốn đồng thời, gửi/nhận thông tin nút - Xử lý Song song Tính tốn Đa luồng (Parallel Processing and Multithreading): Trong mơi trường song song đa luồng, MPI tích hợp với kỹ thuật song song khác để tăng cường hiệu suất tính tốn   16 CHƯƠNG 2: Thuật tốn BFS cho tốn tìm đường ngắn đồ thị không trọng số 2.1 Khái niệm ví dụ tốn tìm đường ngắn đồ thị khơng trọng số Bài tốn tìm đường ngắn đồ thị không trọng số sử dụng BFS thường yêu cầu tìm số bước (hoặc đường ngắn nhất) từ điểm đầu đến điểm cuối Bên cạnh đó, đường điểm thường có chung trọng số (và thường 1) Phổ biến dạng cho bảng N×M, có qua khơng qua Bảng mê cung, sơ đồ, thành phố thứ thứ tương đương Ví dụ tốn tìm đường ngắn đồ thị khơng trọng số: Đề bài: Cho bảng hình chữ nhật chia thành lưới vng kích thước M×N (1 ≤ M, N ≤ 100) Mỗi ô mang giá trị sau : ‘.’ , ‘*’ , ‘B’ , ‘C’ Cơ bị Bessie đứng C cần đến B Mỗi bước Bessie từ ô vuông sang ô vuông khác kề cạnh không vào ô * hay khỏi bảng Hãy tìm số bước để Bessie đến ô B Đảm bảo có B C bảng, tồn đường từ C đến B 2.2 Phân tích tốn Theo mối quan hệ xây dựng đề bài, Bessie di chuyển từ ô vuông sang ô vuông khác kề cạnh Từ đó, ta xây dựng mơ hình đồ thị tốn: - Gọi đỉnh đồ thị tương ứng với ô lưới ô vuông.Tồn cạnh nối cặp đỉnh (u, v) từ ô tương ứng với đỉnh u có 17 thể di chuyển đến ô tương ứng với đỉnh v (đồng nghĩa, ô tương ứng với đỉnh u kề cạnh với ô tương ứng với đỉnh v ô ô * ) - Sau xây dựng đồ thị, tốn quy sau: Tìm đường ngắn từ đỉnh tương ứng với ô C đến đỉnh tương ứng với ô B Độ dài đường ngắn số bước mà Bessie cần thực => Vậy để tìm kết toán, ta áp dụng thuật toán BFS 18 CHƯƠNG 3: Cài Đặt Thuật Toán 3.1 Xây dựng thuật toán BFS cho toán Chương trình thực tuần tự: 19

Ngày đăng: 12/01/2024, 20:18

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

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

Tài liệu liên quan