ĐÁNH GIÁ HIỆU NĂNG THUẬT TOÁN CANNON SỬ DỤNG MPI TRONG NHÂN MA TRẬN

30 4 0
ĐÁNH GIÁ HIỆU NĂNG THUẬT TOÁN CANNON SỬ DỤNG MPI TRONG NHÂN MA TRẬN

Đ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 suốt bốn thập kỷ gần đây, tiến bộ của công nghệ máy tính đã mở ra những khả năng mới đầy hứa hẹn. Sự gia tăng về hiệu suất của vi xử lý, theo xu hướng tăng theo thời gian, đã tạo ra bước tiến quan trọng, đánh dấu sự xuất hiện của nhiều đổi mới công nghệ. Các lĩnh vực như trí tuệ nhân tạo, internet vạn vật và nhiều lĩnh vực khác đã mở rộng và phát triển nhờ vào sự nâng cao này. Tuy nhiên, như mọi thứ khác, sự phát triển này cũng đối mặt với những thách thức. Giới hạn về vật lý và sự hạn chế trong việc tăng cường hiệu suất phần cứng đặt ra một câu hỏi quan trọng: Làm thế nào chúng ta có thể tiếp tục cải thiện khả năng tính toán? Trong bối cảnh này, tính toán song song trở thành một hướng đi quan trọng. Thay vì chỉ tập trung vào việc cải thiện tốc độ của phần cứng, chúng ta đang nghiên cứu cách thức tính toán có thể được tối ưu hóa. Tính toán song song, một chiến lược đã tồn tại từ lâu, là một trong những phương pháp quan trọng nhất trong lĩnh vực này. Trong nghiên cứu này, chúng em sẽ mô phỏng sức mạnh của tính toán song song thông qua việc giải quyết bài toán nhân ma trận trên cả hai mô hình và đưa ra so sánh về hiệu suất. Mặc dù đã nỗ lực hết sức để tránh những sai sót, nhưng chúng em nhận thức rằng có thể vẫn tồn tại những khuyết điểm nhỏ và mong nhận được sự thông cảm.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THƠNG TIN ======***====== BÁO CÁO BTL THUỘC HỌC PHẦN: TÍNH TOÁN HIỆU NĂNG CAO ĐÁNH GIÁ HIỆU NĂNG THUẬT TOÁN CANNON SỬ DỤNG MPI TRONG NHÂN MA TRẬN GVHD: Ths Hà Mạnh Đào Nhóm – Lớp: 11 – 2023IT6069001 Thành viên: Nguyễn Hoàng Giang Nguyễn Tiến Nam Đỗ Trung Quân Hà Nội, 2023 2021603232 2021600859 2021600969 LỜI MỞ ĐẦU Trong suốt bốn thập kỷ gần đây, tiến công nghệ máy tính mở khả đầy hứa hẹn Sự gia tăng hiệu suất vi xử lý, theo xu hướng tăng theo thời gian, tạo bước tiến quan trọng, đánh dấu xuất nhiều đổi công nghệ Các lĩnh vực trí tuệ nhân tạo, internet vạn vật nhiều lĩnh vực khác mở rộng phát triển nhờ vào nâng cao Tuy nhiên, thứ khác, phát triển đối mặt với thách thức Giới hạn vật lý hạn chế việc tăng cường hiệu suất phần cứng đặt câu hỏi quan trọng: Làm tiếp tục cải thiện khả tính tốn? Trong bối cảnh này, tính tốn song song trở thành hướng quan trọng Thay tập trung vào việc cải thiện tốc độ phần cứng, nghiên cứu cách thức tính tốn tối ưu hóa Tính tốn song song, chiến lược tồn từ lâu, phương pháp quan trọng lĩnh vực Trong nghiên cứu này, chúng em mô sức mạnh tính tốn song song thơng qua việc giải toán nhân ma trận hai mơ hình đưa so sánh hiệu suất Mặc dù nỗ lực để tránh sai sót, chúng em nhận thức tồn khuyết điểm nhỏ mong nhận thông cảm Chúng em muốn bày tỏ lòng biết ơn đặc biệt đến TS Hà Mạnh Đào, người đồng hành hỗ trợ chúng em suốt trình thực đề tài MỤC LỤ LỜI MỞ ĐẦU CHƯƠNG 1: CƠ SỞ TÍNH TỐN SONG SONG 1.1 Khái niệm .6 1.2 Tài nguyên 1.3 Vấn đề tính tốn 1.4 Ứng dụng 1.5 Lợi ích CHƯƠNG 2: TỔNG QUAN VỀ MPI 2.1 Khái niệm .9 2.2 Lập trình MPI .9 2.2.1 Mơ hình lập trình 2.2.2.Lập trình MPI 2.3 Truyền thơng nhóm (Communicators and Groups) 10 2.4 Rank 10 2.5 Các hàm quản lý môi trường 11 2.6 Các hàm MPI thông dụng 11 CHƯƠNG 3: BÀI TOÁN NHÂN MA TRẬN 13 3.1 Ma trận .13 3.1.1 Khái niệm 13 3.1.2 Ứng dụng nhân ma trận 14 3.2 Thuật toán nhân ma trận 15 3.3 Thuật toán Canon .18 CHƯƠNG 4: KẾT LUẬN 27 4.1 Kết đánh giá ma trận khác 27 4.1.1 Thông số hệ thống 27 4.1.2 Thiết lập toán 27 4.1.3 Thống kê thời gian 27 4.1.4 Nhận xét 28 TỔNG KẾT 29 TÀI LIỆU THAM KHẢO 30 DANH MỤC HÌNH ẢN Hình 1.2 Minh họa thuật toán song song Hình 2.1 Minh họa mpi Hình 2.2 Minh họa header file Hình 2.3 Cấu trúc chương trình mpi .10 Hình 2.4 Truyền thơng nhóm 10 Hình 3.1 Ma trận 13 Hình 3.2 Minh họa tích ma trận .14 Hình 3.2 Ví dụ ma trận 14 Hình 3.3 Minh họa trình nhân ma trận 14 Hình 3.4 Code nhân ma trận .16 Hình 3.5 Code nhân ma trận .17 Hình 3.6 Hàm cài đặt cannon 19 Hình 3.7 Hàm khởi tạo ma trận 20 Hình 3.8 Khởi tạo 2d cartesian .20 Hình 3.9 Hàm kiểm tra số tiến trình bình phương hồn hảo 21 CHƯƠNG 1: CƠ SỞ TÍNH TỐN SONG SONG 1.1 Khái niệm Tính tốn song song (parallel computing) phương pháp tính tốn mà nhiều tác vụ tính tốn thực đồng thời Thay thực tác vụ tính tốn theo trình tự thứ tự, tính toán song song cho phép chúng thực lúc nhiều tài ngun tính tốn độc lập, xử lý đa lõi, máy tính đa nịng mạng máy tính phân tán So sánh tính tốn song song tính tốn tuần tự:     Tính tốn (serial computation) Được chạy máy tính đơn với xử lý trung tâm (CPU) Mộ toán (problem) chia thành chuỗi câu lệnh rời rạc Các câu lệnh thực cách Tại thời điểm thực câu lệnh Hình 1.1 Minh họa thuật toán     Tính tốn song song (parallel computing) Để chạy nhiều CPU Một toán chia thành phần riêng biệt mà giải đồng thời Mỗi phần chia nhỏ dãy câu lệnh Các câu lệnh phần thực thi đồng thời CPU khác Hình 1.2 Minh họa thuật toán song song 1.2 Tài nguyên Các nguồn tài ngun tính tốn bao gồm: - Một máy tính đơn với nhiều vi xử lý (CPU) - Một máy tính đơn với nhiều CPU số tài nguyên chuyên dụng GPU, FPGA … - Một số lượng tuỳ ý máy tính kết nối mạng máy tính - Hoặc kết hợp hai loại 1.3 Vấn đề tính tốn Vấn đề tính tốn thường thể qua đặc điểm khả năng: - Chia thành phần riêng biệt cơng việc để giải lúc - Thực thi nhiều câu lệnh chương trình nhiều thời điểm - Giải tốn thời gian với nhiều tài ngun tính tốn thực thi tài ngun tính tốn 1.4 Ứng dụng - Tính tốn song song tiến hố tính tốn để cố gắng mơ trạng thái diễn giới tự nhiên: phức tạp, kiện liên quan xảy thời điểm, chuỗi Ví dụ: + Quỹ đạo hành tinh thiên hà + Các mơ hình thời tiết đại dương + Kiến tạo địa chất + Các hoạt động hàng ngày doanh nghiệp +… - Tính tốn song song coi “tính tốn hiệu cao” động lực để mô cho hệ thống phức tạp giải “các lớn” như: + Dự báo thời tiết khí hậu + Các phản ứng hoá học hạt nhân + Các toán sinh học gen người + Các hoạt động địa chất + Các thiết bị khí – chân tay giả cho tàu vũ trụ + Các mạch điện tử + Các quy trình sản xuất - Ngày ứng dụng thương mại động lực thúc đẩy nhà phát triển máy tính phần mềm tạo máy tính có tốc độ nhanh Vì ứng dụng yêu cầu xử lý số lượng lớn liệu có độ tinh vi phức tạp cao Ví dụ ứng dụng: + Các sở liệu song song, data mining + Thăm dị dầu khí + Các máy chủ tìm kiếm, dịch vụ thương mại + Máy tính trợ giúp chuẩn đoán y học + Quản lý tập đoàn quốc gia đa quốc gia + Cải tiến đồ hoạ ảo hoá + Video mạng công nghệ đa phương tiện + Môi trường làm việc cộng tác 1.5 Lợi ích - Tiết kiệm thời gian - Giải toán lớn - Xử lý đồng thời lúc - Tận dụng nguồn tài ngun khai thác tài ngun tính tốn có sẵn mạng diện rộng, chí sử dụng Internet tài nguyên cục hạn chế - Tiết kiệm chi phí – sử dụng nhiều tài nguyên máy tính “rẻ” thay phải đầu tư siêu máy tính - Khắc phục hạn chế nhớ - Các máy tính đơn có tài ngun nhớ hữu hạn Đối với toán lớn, sử dụng nhớ nhiều máy tính vượt qua trở ngại CHƯƠNG 2: TỔNG QUAN VỀ MPI 2.1 Khái niệm Là viết tắt Message Passing Interface, dạng giao thức kết nối máy tính Nó nằm chuẩn “de facto” cho kết nối nút chạy chương trình song song nhớ phân tán Tập MPI thi hành bao gồm thư viện thủ tục cho gọi từ chương trình Fortran, C, C++ hay Ada 2.2 Lập trình MPI 2.2.1 Mơ hình lập trình MPI đời mục đích dành cho hệ thống máy tính có nhớ phân tán Tuy nhiên MPI triển khai hệ thống máy tính có nhớ chia sẻ Hình 2.1 Minh họa MPI 2.2.2.Lập trình MPI Header file: Yêu cầu cho chương trình lập trình MPI Định dạng hàm MPI Hình 2.2 Minh họa Header file Cấu trúc chương trình MPI Hình 2.3 Cấu trúc chương trình MPI 2.3 Truyền thơng nhóm (Communicators and Groups) Communicators Group tập hợp tất processes giao tiếp với Phần lớn hàm thư viện MPI yêu cầu tham số Communicator MPI_COMM_WORLD định nghĩa sẵn 10 Vòng Lặp Chính: Vịng lặp ngồi (i) duyệt qua hàng ma trận kết Vòng lặp (j) duyệt qua cột ma trận kết Vòng lặp bên (k) duyệt qua phần tử hàng i ma trận A cột j ma trận B Tại bước, giá trị result[i][j] cập nhật cộng dồn tích phần tử A[i][k] B[k][j] Kết Quả: Ma trận result sau chứa giá trị tích ma trận A B In Ra Kết Quả: Một hàm in console sử dụng để hiển thị ma trận kết Code nhân ma trận (c++): Hình 3.4 Code nhân ma trận 16 Hình 3.5 Code nhân ma trận Đánh giá độ phức tạp thuật toán: Độ phức tạp thuật toán nhân ma trận theo đánh giá cách xem xét số lần thực phép toán (so sánh, gán giá trị, nhân, cộng) Để đánh giá độ phức tạp, xem xét thành phần thuật toán: Số Lần Thực Hiện Phép Nhân: Trong vịng lặp đầy đủ, ta có ba phép nhân: result[i][j] += A[i][k] * B[k][j] Vịng lặp ngồi (i) chạy m lần Vòng lặp (j) chạy p lần Vòng lặp bên (k) chạy n lần Tổng số lần thực phép nhân m * p * n Tổng Số Phép Toán Cơ Bản: Số phép toán bao gồm phép nhân phép cộng vòng lặp bên Trong vịng lặp bên trong, có phép cộng phép nhân Tổng số phép toán * m * p * n 17 Độ Phức Tạp Thời Gian: Độ phức tạp thời gian thuật toán O(m * p * n) Điều có nghĩa thời gian chạy thuật tốn tăng theo tỉ lệ với kích thước ma trận Độ Phức Tạp Bộ Nhớ: Thuật toán khơng sử dụng nhớ phụ đặc biệt có độ phức tạp không gian O(1), tức không phụ thuộc vào kích thước ma trận Ưu Điểm Hạn Chế: Ưu điểm: Thuật toán đơn giản dễ hiểu, phù hợp cho ma trận có kích thước nhỏ đến trung bình Hạn chế: Độ phức tạp tăng nhanh kích thước ma trận lớn 3.3 Thuật tốn Canon Thuật toán Canon MPI thuật toán song song sử dụng tính tốn phân tán để thực phép tính cụm máy tính có nhiều nút xử lý Thuật tốn thiết kế để phân chia tác vụ lớn thành phần nhỏ thực tính tốn song song phần Thuật toán nhân ma trận Cannon: Xác định tổng số nút xử lý cụm tính tốn (p) Tạo lưới sqrt(p) x sqrt(p) nút xử lý (được xếp thành hàng cột) Chia liệu cần tính tốn thành sqrt(p) cột sqrt(p) hàng Trong pha di chuyển liệu: a Di chuyển liệu hàng theo chiều ngang (gửi liệu sang nút xử lý bên phải) nhận liệu từ nút xử lý bên b Lặp lại bước a sqrt(p) lần để đảm bảo liệu cuối đưa đến vị trí Trong pha tính tốn: a Mỗi nút xử lý thực phép tính phần liệu b Phép tính tính tốn độc lập phần liệu phép tính phức tạp yêu cầu tương tác nút xử lý Trong pha di chuyển kết quả: a Di chuyển liệu hàng theo chiều ngang (gửi kết sang nút xử lý bên 18 trên) nhận kết từ nút xử lý bên phải b Lặp lại bước a sqrt(p) lần để đảm bảo kết cuối trả nút xử lý ban đầu Hồn thành thuật tốn thu thập kết Hình 3.6 Hàm cài đặt Cannon - Trong đó: + psa psb hai ma trận cần nhân + process: Số hiệu tiến trình 19 + numprocs: Tổng số tiến trình communicator cartComm Đây số lượng tiến trình mà thuật tốn Cannon chạy + cartComm: Communicator 2D Cartesian mà tiến trình tham gia Trong ngữ cảnh này, tạo để định vị tiến trình lưới 2D + left_neigh, right_neigh, up_neigh, down_neigh: Số hiệu hàng xóm trái, hàng xóm phải, hàng xóm trên, hàng xóm tiến trình lưới 2D Cartesian Các giá trị xác định MPI_Cart_shift sử dụng để gửi nhận liệu hàng xóm q trình thực thuật tốn Cannon Bằng cách này, hàm cannonAlgorithm thực thuật tốn Cannon dựa thơng tin vị trí hàng xóm tiến trình lưới 2D Cartesian Hình 3.7 Hàm khởi tạo ma trận Hình 3.8 Khởi tạo 2D Cartesian - Để thuận tiện việc tổ chức phân phối liệu thuật tốn Cannon, u cầu số lượng tiến trình số bình phương hồn hảo: VD: 4, 9,… 20

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

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

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

Tài liệu liên quan