ĐÁNH GIÁ HIỆU NĂNG BÀI TOÁN GIẢI PHƯƠNG TRÌNH TUYẾN TÍNH SỬ DỤNG MPI

22 4 0
ĐÁNH GIÁ HIỆU NĂNG BÀI TOÁN GIẢI PHƯƠNG TRÌNH TUYẾN TÍNH 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

Hiện nay, sự phát triển của khoa học máy tính là một trong những lĩnh vực được phát triển hàng đầu với việc triển khai rộng rãi các ứng dụng cho các ngành nghề, tổ chức và xã hội. Cùng với đó là nhu cầu tính toán trong lĩnh vực khoa học công nghệ ngày càng được đề cao bởi vậy nó cũng trở thành một thách thức lớn khi phương pháp xử lý tuần tự không thể giải quyết được bài toán khó này. Trong thời điểm ấy, nghiên cứu trong lĩnh vực tính toán hiệu năng cao ra đời (High Performance Computing) hình thành và trở nên rất cần thiết. Để tiếp nối giải quyết các vấn đề về tính toán, nhóm em lựa chọn đề tài “đánh giá hiệu năng cao bài toán giải phương trình tuyến tính sử dụng MPI” mà nhóm chúng em đã nghiên cứu và xây dựng trong bài tập sau đây sẽ là phần nào giúp cho các bài toán sử dụng tuyến tính với MPI trở nên dễ dàng hơn. Trong thời gian hoàn thành công việc có thể sẽ có những thiếu sót mà chúng em chưa thể hoàn thành một cách trọn vẹn. Kính mong quý thầy cùng các bạn nhận xét, đóng góp ý kiến cho chúng em. Chúng em xin chân thành cảm ơn.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ···🙞🙞🙞🙞🙞··· BÁO CÁO BÀI TẬP LỚN THUỘC HỌC PHẦN TÍNH TỐN HIỆU NĂNG CAO ĐỀ TÀI: ĐÁNH GIÁ HIỆU NĂNG BÀI TỐN GIẢI PHƯƠNG TRÌNH TUYẾN TÍNH SỬ DỤNG MPI Giáo viên hướng dẫn : Ts Hà Mạnh Đào Nhóm : 20 Tên thành viên : Phạm Mạnh Cường- 2020605601 Nguyễn Việt Hưng- 2020606349 Phạm Cao Lương- 2020605264 Lớp: 20231IT6069001 Hà Nội - 2023 LỜI MỞ ĐẦU Hiện nay, phát triển khoa học máy tính lĩnh vực phát triển hàng đầu với việc triển khai rộng rãi ứng dụng cho ngành nghề, tổ chức xã hội Cùng với nhu cầu tính tốn lĩnh vực khoa học công nghệ ngày đề cao trở thành thách thức lớn phương pháp xử lý giải tốn khó Trong thời điểm ấy, nghiên cứu lĩnh vực tính tốn hiệu cao đời (High Performance Computing) hình thành trở nên cần thiết Để tiếp nối giải vấn đề tính tốn, nhóm em lựa chọn đề tài “đánh giá hiệu cao tốn giải phương trình tuyến tính sử dụng MPI” mà nhóm chúng em nghiên cứu xây dựng tập sau phần giúp cho toán sử dụng tuyến tính với MPI trở nên dễ dàng Trong thời gian hồn thành cơng việc có thiếu sót mà chúng em chưa thể hồn thành cách trọn vẹn Kính mong quý thầy bạn nhận xét, đóng góp ý kiến cho chúng em Chúng em xin chân thành cảm ơn MỤC LỤC LỜI MỞ ĐẦU Phần I: PHẦN MỞ ĐẦU .5 1.1 Tên đề tài 1.2 Giới thiệu đề tài 1.3 Kiến thức cần có 1.4 Các kỹ có để thực đề tài nghiên cứu 1.5 Phương trình tuyến tính 1.5.1 Định nghĩa 1.5.2 Nghiệm số 1.5.3 Trường hợp đặc biệt 1.6 MPI tính tốn hiệu 1.6.1 Định nghĩa 1.6.2 Phương thức giao tiếp 1.6.3 Mơ hình lập trình 1.6.4 Cấu trúc chương trình MPI .9 1.6.5 Hạn chế 1.7 Visual studio 2019 10 1.7.1 định nghĩa 10 1.7.2 Tính 11 1.8 Chức môn học 13 1.8.1 Hoàn cảnh đời 13 1.8.2 Định nghĩa 14 1.8.3 Các thách thức 14 Phần II: KẾT QUẢ NGHIÊN CỨU 15 Tìm hiểu thuật toán thuật toán song song .15 1.1 Khái niệm 15 1.2 Sự khác thuật toán song song thuật toán .15 Cài đặt chương trình 16 2.1 Thuật toán 16 2.2 Thuật toán song song 17 Kết cài đặt chương trình 19 3.1 Kết thuật toán 19 3.2 Thời gian chạy thuật toán 19 3.3 Thời gian chạy thuật toán song song .19 3.4 So sánh hiệu 20 Phần III: KẾT LUẬN VÀ BÀI HỌC KINH NGHIỆM 20 3.1 Nội dung thực .20 3.2 Hướng phát triển .21 3.2 Bài học kinh nghiệm 21 TÀI LIỆU THAM KHẢO 21 Phần I: PHẦN MỞ ĐẦU 1.1 Tên đề tài Tên đề tài: Đánh giá hiệu tốn giải phương trình tuyến tính sử dụng MPI 1.2 Giới thiệu đề tài Từ kiến thức dạy thầy đề tài thầy giao cho Nhóm em tìm hiểu nghiên cứu tốn giải phương trình tuyến tính việc sử dụng MPI để đánh giá hiệu thuật toán Bằng việc áp dụng kiến thức MPI học lớp tài liệu tìm mạng Để hoàn thiện sản phẩm thành viên nhóm cần có kiến thức, hiểu biết tốn giải trình tuyến tính thư viện MPI Bài báo cáo thành tất ba thành viên nhóm em sau tìm hiểu nghiên cứu việc đánh giá hiệu tốn giải phương trình tuyến tính sử dụng MPI 1.3 Kiến thức cần có  Kiến thức tốn giải phương trình tuyến tính  Kiến thức MPI  Lập trình chương trình ứng dụng Visual Studio 2019 1.4 Các kỹ có để thực đề tài nghiên cứu  Kỹ tổng hợp kiến thức: tổng hợp kiến thức học từ lớp mạng để hoàn thiện tập lớn  Khả đọc hiểu tài liệu tiếng Anh 1.5 Phương trình tuyến tính 1.5.1 Định nghĩa - Phương trình tuyến tính (hay cịn gọi phương trình bậc hay phương trình bậc nhất) phương trình đại số có dạng:  b số (hay hệ số bậc 0)  a hệ số bậc - Phương trình bậc gọi phương trình tuyến tính đồ thị phương trình (xem hình bên) đường thẳng 1.5.2 Nghiệm số Nghiệm số phương trình : 1.5.3 Trường hợp đặc biệt - Phương trình khơng có nghiệm b khác khơng, có vơ số nghiệm (mọi số x) b Trên thực tế, a 0, phương trình khơng cịn phương trình bậc nữa; trở thành phương trình bậc Khi a khác 0, phương trình ln có nghiệm 1.6 MPI tính tốn hiệu 1.6.1 Định nghĩa - MPI (Message Passing Interface) giao diện lập trình (API) phát triển từ lâu MPI cung cấp thư viện cho việc tổ chức chương trình song song theo kiểu đa tiến trình Chúng bao gồm câu lệnh để khởi tạo môi trường MPI, phân chia xử lý vào đoạn mã song song, phần chạy tiến trình; câu lệnh để trao đổi liệu tiến trình; câu lệnh đồng hóa tiến trình - Mơ hình xử lý thường dùng tiến trình (master) nhiều tiến trình phụ (slave) Thơng thường, tiến trình máy (hoặc CPU) nguyên thủy ban đầu, làm nhiệm vụ khởi tạo chương trình, phân chia cơng việc nhận kết tính tốn từ tiến trình phụ Các tiến trình phụ chạy máy (hoặc CPU) phụ, tiến trình nhận liệu ban đầu tiến trình chính, thực việc tính tốn giao gửi kết tiến trình - Hiện MPI chuẩn công nghiêp, 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 - Với kiến trúc nhớ chia sẻ, thực thi MPI thường không sử dụng giao tiếp tác vụ qua mạng mà thay vào chúng sử dụng nhớ chia sẻ (bản nhớ) lý hiệu - 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 1.6.2 Phương thức giao tiếp MPI cung cấp ba phương thức giao tiếp khác mà quy trình MPI sử dụng để giao tiếp với nhau: Truyền thông điểm điểm(Point-to-Point) Truyền thông cộng tác(Collective) Truyền thông chiều(One-sided) 1.6.3 Mơ hình lập trình - Ban đầu MPI thiết kế cho kiến trúc nhớ phân tán, kiến trúc phổ biến thời kỳ 1980 đến đầu năm 1990 - Xu hướng công nghệ thay đổi, nhớ chia sẻ kết hợp với mạng máy tính tạo dạng lai hai hệ thống nhớ chia sẻ nhớ phân tán - Thực thi MPI tương thích với hai kiểu kiến trúc tương thích với kiểu kết nối giao thức khác - Ngày MPI chạy hầu hết tảng phần cứng:  Bộ nhớ chia sẻ  Bộ nhớ phân tán  Dạng lai loại 1.6.4 Cấu trúc chương trình MPI 1.6.5 Hạn chế - Tuy có khả cung cấp hiệu cao chạy kiến trúc sử dụng nhớ chia sẻ lẫn phân tán, chương trình MPI địi hỏi người lập trình phải tự phân chia chương trình thành khối cho tiến trình phụ câu lệnh tường minh Các công việc khác gửi nhận liệu, đồng hóa tiến trình… cần rõ câu lệnh tham số cụ thể Điều gây khó khăn địi hỏi nhiều cơng sức người lập trình, thể qua ba khía cạnh lớn Thứ MPI địi hỏi phải tổ chức từ đầu chương trình thành theo cấu trúc song song mơ hình master-slave, việc phức tạp nhiều so với việc tổ chức chương trình vốn quen thuộc với tư đa số lập trình viên - Thứ hai MPI sử dụng để song song hoá chương trình phá vỡ nghiêm trọng cấu trúc ban đầu chương trình Điều khó khăn thứ ba gây nên rắc rối câu lệnh MPI, với loạt tham số khó hiểu cho câu lệnh Do ba khó khăn vừa nêu, có hiệu cao cung cấp cách thức lập trình trừu tượng hóa MPI xem assembler việc lập trình song song 1.7 Visual studio 2019 1.7.1 định nghĩa - Microsoft Visual Studio mơi trường phát triển tích hợp (IDE) từ Microsoft Microsoft Visual Studio gọi "Trình soạn thảo mã nhiều người sử dụng giới ", dùng để lập trình C++ C# Nó sử dụng để phát triển chương trình máy tính cho Microsoft Windows, trang web, ứng dụng web dịch vụ web Visual Studio sử dụng tảng phát triển phần mềm Microsoft Windows API, Windows Forms, Windows Presentation Foundation, Windows Store Microsoft Silverlight Nó sản xuất hai ngôn ngữ máy mã số quản lý - Visual Studio bao gồm trình soạn thảo mã hỗ trợ IntelliSense cải tiến mã nguồn Trình gỡ lỗi tích hợp hoạt động trình gỡ lỗi mức độ mã nguồn gỡ lỗi mức độ máy Cơng cụ tích hợp khác bao gồm mẫu thiết kế hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp thiết kế giản đồ sở liệu Nó chấp nhận plug-in nâng cao chức hầu hết cấp bao gồm thêm hỗ trợ cho hệ thống quản lý phiên (như Subversion) bổ sung thêm công cụ biên tập thiết kế trực quan cho miền ngôn ngữ cụ thể cơng cụ dành cho khía cạnh khác quy trình phát triển phần mềm - Visual Studio hỗ trợ nhiều ngơn ngữ lập trình khác cho phép trình biên tập mã gỡ lỗi để hỗ trợ (mức độ khác nhau) ngôn ngữ lập trình Các ngơn ngữ tích hợp gồm có C,[4] C++ C++/CLI (thông qua Visual C++), VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#) F# (như Visual Studio 2010[5]) Hỗ trợ cho ngôn ngữ khác J+ +/J#, Python Ruby thông qua dịch vụ cài đặt riêng rẽ Nó hỗ trợ XML/XSLT, HTML/XHTML, JavaScript CSS 1.7.2 Tính 1.7.2.1 Biên tập mã - Giống IDE khác, bao gồm trình soạn thảo mã hỗ trợ tơ sáng cú pháp hoàn thiện mã cách sử dụng IntelliSense không cho biến, hàm phương pháp mà cịn cấu trúc ngơn ngữ vòng điều khiển truy vấn IntelliSense hỗ trợ kèm theo cho ngôn ngữ XML, Cascading Style Sheets JavaScript phát triển trang web ứng dụng web Các đề xuất tự động hoàn chỉnh xuất hộp danh sách phủ lên đỉnh trình biên tập mã Trong Visual Studio 2008 trở đi, tạm thời bán suốt để xem mã che khuất Các trình biên tập mã sử dụng cho tất ngơn ngữ hỗ trợ - Các trình biên tập mã Visual Studio hỗ trợ cài đặt dấu trang mã để điều hướng nhanh chóng Hỗ trợ điều hướng khác bao gồm thu hẹp khối mã lệnh tìm kiếm gia tăng, ngồi việc tìm kiếm văn thơng thường tìm kiếm Biểu thức quy Các trình biên tập mã bao gồm bìa kẹp đa mục danh sách cơng việc Các trình biên tập mã hỗ trợ lưu lại đoạn mã lặp lặp lại nhằm để chèn vào mã nguồn sử dụng sau Một công cụ quản lý cho đoạn mã xây dựng tốt Những công cụ lên cửa sổ trơi thiết lập để tự động ẩn không sử dụng neo đậu đến cạnh hình Các trình biên tập mã Visual Studio hỗ trợ cải tiến mã nguồn bao gồm tham số xếp lại, biến phương pháp đổi tên, khai thác đóng gói giao diện lớp thành viên bên trạng thái thứ khác - Visual Studio có tính biên dịch (còn gọi biên dịch gia tăng) Như mã viết, Visual Studio biên dịch để cung cấp thông tin phản hồi cú pháp biên dịch lỗi, đánh dấu gạch gợn sóng màu đỏ Biên dịch khơng tạo mã thực thi, địi hỏi trình biên dịch khác để sử dụng tạo mã thực thi Biên dịch ban đầu giới thiệu với Microsoft Visual Basic mở rộng cho tất ngơn ngữ 1.7.2.2 Trình gỡ lỗi - Visual Studio có trình gỡ lỗi hoạt động vừa trình gỡ lỗi cấp mã nguồn trình gỡ lỗi cấp máy Nó hoạt động với hai mã quản lý ngơn ngữ máy sử dụng để gỡ lỗi ứng dụng viết ngôn ngữ hỗ trợ Visual Studio Ngồi ra, đính kèm theo quy trình hoạt động theo dõi gỡ lỗi quy trình Nếu mã nguồn cho q trình hoạt động có sẵn, hiển thị mã chạy Nếu mã nguồn khơng có sẵn, hiển thị tháo gỡ Các Visual Studio debugger tạo bãi nhớ tải chúng sau để gỡ lỗi Các chương trình đa luồng cao cấp hỗ trợ Trình gỡ lỗi cấu hình đưa ứng dụng chạy ngồi Visual Studio bị treo mơi trường - Trình gỡ lỗi cho phép thiết lập breakpoint (mà cho phép thực thi tạm thời dừng lại vị trí định) watch (trong giám sát giá trị biến việc thực tiến bộ) Breakpoint có điều kiện, nghĩa chúng kích hoạt điều kiện đáp ứng Mã biểu diễn, tức chạy dịng (của mã nguồn) thời điểm Nó có bước sang chức để gỡ lỗi bên nó, nhảy qua nó, tức là, việc thực chức khơng có sẵn để kiểm tra thủ cơng Trình gỡ lỗi hỗ trợ Edit and Continue, nghĩa là, cho phép mã chỉnh sửa sửa lỗi (chỉ có 32 bit, không hỗ trợ 64 bit) Khi gỡ lỗi, trỏ chuột di chuyển lên biến, giá trị hiển thị phần giải ("chú thích liệu"), nơi mà thay đổi muốn Trong trình viết mã, trình gỡ lỗi Visual Studio cho phép số chức gọi tay từ cửa sổ công cụ Immediate Các thông số cho phương thức cung cấp cửa sổ Immediate 1.8 Chức mơn học 1.8.1 Hồn cảnh đời Các tốn phức tạp địi hỏi tính tốn lớn ln tìm thấy ngành khoa học hóa học, vật lý hạt nhân, vũ trụ học, lưu chất, sinh học, y học Một số tốn có độ phức tạp lớn nên gọi “các toán thách đố” (Grand Challenge Problems) Các tốn thách đố khơng thể giải khoảng thời gian chấp nhận sử dụng loại máy tính có ngày Vấn đề phức tạp tốn địi hỏi việc mơ hiển thị mơ hình đồ họa Mặt khác yêu cầu thời gian xử lý tốn quan trọng khơng Ví dụ toán dự báo thời tiết giải ngày kết dự báo thời tiết ngày khơng có ý nghĩa Chính u cầu tính tốn phức tạp thúc đẩy máy tính song song có khả tính tốn mạnh đời 1.8.2 Định nghĩa - Tính toán hiệu cao (High Performance Computing - HPC) sở hệ thống siêu máy tính thành phần cốt lõi phát triển đánh dấu cho thay đổi bước chuyển hóa nghiên cứu dựa cơng cụ tính tốn lớn HPC coi siêu máy tính tập hợp nhiều máy chủ với kết hợp sức mạnh tính tốn giúp hiệu có vượt trội nhiều so với máy tính truyền thống 1.8.3 Các thách thức - Sự địi hỏi sức mạnh tính tốn máy tính khơng ngừng tăng lên nhằm để giải tốn lĩnh vực khoa học cơng nghệ Các vấn đề nhiều lĩnh vực đa số đưa mơ hình số mơ Tùy theo độ lớn toán cần giải hay độ xác kết tốn mà khối lượng tính tốn lớn đến mức Ví dụ toán dự báo thời tiết phương pháp số, để có kết dự báo xác ta phải giải tốn khơng gian rộng số lượng phép tính nhiều - u cầu thời gian tính tốn yếu tố cần sức mạnh tính tốn máy tính Điều thường thấy qui trình sản xuất cơng nghiệp Trong qui trình sản xuất phối hợp hoạt động phận quan trọng Vì việc tính tốn chậm phận làm ảnh hưởng phận khác Bài toán dự báo thời tiết lĩnh vực khoa học địi hỏi thời gian tính tốn Để có kết dự báo xác, ta khơng thể chạy chương trình hai ngày để dự báo thời tiết cho ngày hôm sau - Trong thực tế cịn nhiều tốn có độ phức tạp lớn mà sức mạnh siêu máy tính chưa giải Vì người ta gọi thách đố Hiện có nhiều lĩnh vực khoa học cần khoa học tính tốn hóa học, vật lý hạt nhân, vũ trụ học, lưu chất, sinh học, y học Khoa học tính tốn giúp giải nhiều vấn đề mơ hình toán để tiên đoán trước kết thử nghiệm giúp rút ngắn trình thử nghiệm Nhiều tốn cần giải mơi trường tính tốn lưới cho thấy cần thiết sức mạnh tính tốn lĩnh vực khoa học công nghệ Phần II: KẾT QUẢ NGHIÊN CỨU Tìm hiểu thuật tốn thuật tốn song song 1.1 Khái niệm -Thuật toán thuật toán thực - lần, từ đầu đến cuối, khơng có q trình xử lý khác thực - trái ngược với đồng thời song song -Thuật tốn song song thuật tốn thực đồng thời nhiều lệnh thiết bị xử lý khác nhau, sau kết hợp tất đầu riêng lẻ để tạo kết cuối 1.2 Sự khác thuật toán song song thuật toán Thuật toán Thuật toán song song -Mỗi thời điểm thực phép toán -Mỗi thời điểm thực nhiều phép tốn -Thời gian thực phép toán chậm -Thời gian thực phép tốn nhanh Cài đặt chương trình 2.1 Thuật tốn #include #include #include #include int main(int argc, char** argv) { double tstart, tend, time; // khai báo biế" n tstart, tend, mytime kiế$ u số"thực MPI_Init(&argc, &argv); //khở $ i tạo mối trường mpi // Nhập số"lượng phưởng trình bậc int n = 10000; // Nhập giá trị a, b cho phưởng trình bậc double* a = (double*)malloc(n * sizeof(double)); double* b = (double*)malloc(n * sizeof(double)); printf("Nhap gia tri a, b cho cac phuong trinh bac 1: "); for (int i = 0; i < n; i++) { a[i] = rand()%(1000 - 100 + 1)+ 100; b[i] = rand() % (1000 - 100 + 1) + 100; } // Lấ" y thời gian tstart = MPI_Wtime(); // Tính giá trị x cu $a phưởng trình bậc double* x = (double*)malloc(n * sizeof(double)); for (int i = 0; i < n; i++) { x[i] = -b[i] / a[i]; } // Lấ" y thời gian tend = MPI_Wtime(); time = tend - tstart; // In kế" t qua $ printf("Ket qua:\n"); for (int i = 0; i < n; i++) { printf("x[%d] = %lf\n", i, x[i]); } // In thời gian chạy cu $a thuật toán tuấL n tự printf("Thoi gian chay cua thuat toan tuan tu la: %lf\n", time); return 0; } 2.2 Thuật toán song song #include #include #include #define n 10000 int main(int argc, char** argv) { float** coeffs; // Khở $ i tạo MPI MPI_Init(NULL, NULL); // Lấ" y rank size cu $a mốO i trình int world_rank; MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); int world_size; MPI_Comm_size(MPI_COMM_WORLD, &world_size); // Số"lượng phưởng trình mốO i trình gia $i int num_eqns_per_process = n / world_size; double tstart, tend, time; // Ma $ng chứa hệ số"cu $a phưởng trình /*Cấ" p phát nhớ động cho ma $ng mẹ gốL m num_eqns_per_process phấL n tư$ , đế$chứa địa $ tưởng ứng cu $a y hàng ma $ng chiếL u cấL n tạo*/ /*Gán địa $ ma $ng mẹ vào tro $ coeffs*/ coeffs = (float**)malloc(sizeof(int*) * num_eqns_per_process); /*Cấ" p phát nhớ động cho num_eqns_per_process ma $ng con, mốO i ma $ng gốL m phấL n tư$ , đế$chứa phấL n tư$tưởng ứng hàng cu $a ma $ng chiếL u cấL n tạo*/ /*Gán địa $ cu $a ma $ng vào phấL n tư$cu $a ma $ng mẹ*/ for (int i = 0; i < num_eqns_per_process; i++) { coeffs[i] = (float*)malloc(sizeof(int) * 2); } // Nế" u trình trình 0, nhập hệ số"cu $a tấ" t ca $ phưởng trình if (world_rank == 0) { for (int i = 0; i < n; i++) { coeffs[i][0] = rand() % (1000 - + 1) + 1; coeffs[i][1] = rand() % (1000 - + 1) + 1; } } tstart = MPI_Wtime(); // Gư$ i hệ số"cho trình khác for (int i = 1; i < world_size; i++) { MPI_Send(&coeffs[i * num_eqns_per_process][0], num_eqns_per_process * 2, MPI_FLOAT, i, 0, MPI_COMM_WORLD); } // Nhận hệ số"từ trình if (world_rank != 0) { MPI_Recv(coeffs, num_eqns_per_process * 2, MPI_FLOAT, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); } // Gia $i phưởng trình có ma $ng coeffs float x; for (int i = 0; i < num_eqns_per_process; i++) { float a = coeffs[i][0]; float b = coeffs[i][1]; if (a == 0) { if (b == 0) { printf("Phưởng trình %d có vố số"nghiệm.\n", i); } else { printf("Phưởng trình %d vố nghiệm.\n", i); } } else { x = -b / a; } } tend = MPI_Wtime(); time = tend - tstart; for (int i = 0; i < n; i++) { printf("Nghiệm cu $a phưởng trình %d là: %f\n", i, x); } printf("time taken: %lf", time); // Kế" t thúc MPI MPI_Finalize(); return 0; } Kết cài đặt chương trình 3.1 Kết thuật tốn 3.2 Thời gian chạy thuật toán 3.3 Thời gian chạy thuật toán song song 3.4 So sánh hiệu n 10000 100000 1000000 Tseq 0.000079 0.000414 0.003981 Tp 0.000038 0.000137 0.001176 Tseq /Tp 2.0789 3.0219 3.3852 Tseq /Tp(%) 207.89% 302.19% 338.52% Từ bảng so sánh thấy việc giải toán phương pháp song song cho tốc độ xử lí cao phương pháp với số liệu lớn khác biệt rõ rệt Từ thấy việc ứng dụng thuật toán song song để giải toán phức tạp quan trọng đặc biệt nghiên cứu khoa học, thường xuyên phải xử lý toán với độ phức tạp số liệu lớn Một thuật tốn khơng thể đáp ứng để giải tốn phương pháp song song cần thiết  Cấu hình máy tính Phần III: KẾT LUẬN VÀ BÀI HỌC KINH NGHIỆM 3.1 Nội dung thực

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

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

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

Tài liệu liên quan