Tiểu luận môn PHÂN TÍCH & THIẾT KẾ GIẢI THUẬT NÂNG CAO Ứng dụng lập trình song song với MPI trong bài toán nhân hai ma trận

15 1K 5
Tiểu luận môn PHÂN TÍCH & THIẾT KẾ GIẢI THUẬT NÂNG CAO Ứng dụng lập trình song song với MPI trong bài toán nhân hai 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

Ứng dụng lập trình song song với MPI toán nhân hai ma trận Lê Phước Khiêm, Trần Quốc Lịnh, Phan Minh Nhật, Nguyễn Thái Hùng, Võ Đăng Khoa, and Đinh Hồng Văn Bửu Thịnh Tóm tắt nội dung Bài báo giới thiệu kiến thức tính tốn song song lập trình song song Ngồi cịn trình bày khái niệm MPI (Message Passing Interface), nguyên tắc lập trình song song với MPI Sử dụng thư viện hàm MPI lập trình minh họa toán nhân hai ma trận thuật toán Fox Rút kết luận thời gian chạy chương trình giải thuật giải thuật song song Key words: MPI, thuật toán Fox, lập trình song song, nhân ma trận Giới thiệu Sự phát triển mở rộng phạm vi ứng dụng công nghệ thông tin gặp phải hai thách thức lớn khơng gian nhớ tốc độ xử lí máy tính Một số tốn thực tiễn nghiên cứu lý thuyết đặt đòi hỏi phải xử lý nhanh sở liệu đồ sộ, đặc biệt lĩnh vực trí tuệ nhân tạo, nhận dạng, xử lí ảnh, điều khiển tự động, mơ phỏng, tốn dự báo mà phương pháp cơng cụ tính tốn truyền thống đáp ứng Trong trường hợp ấy, ta tìm cách phân rã tốn thành tốn có kích thước quy mơ liệu nhỏ Tuy nhiên điều khơng phải thực Xử lí song song (parallel processing) giải pháp giúp ta xử lý tình nêu Hiện có nhiều chuẩn hỗ trợ lập trình song song MPI hỗ trợ lập trình song song nhớ phân tán, OpenMP hỗ trợ lập trình nhớ chia chung, Pthread hỗ trợ lập trình luồng Trong khn khổ báo giới thiệu MPI ứng dụng MPI vào lập trình song song tốn nhân hai ma trận thuật toán Fox Phần giới thiệu tổng quan xử lý song song cần thiết phải xử lý song song Phần giới thiệu tổng quan MPI cho biết MPI gì, nguyên tắc lập trình MPI Phần mơ tả tốn nhân hai ma trận thuật toán Fox ứng dụng MPI việc giải tốn 2.1 Tính tốn song song Tính tốn song song gì? Tính tốn song song việc sử dụng đồng thời đa xử lý để giải vấn đề Việc hoàn thành cách tách vấn đề thành nhiều phần độc lập sau xử lý chạy thuật tốn đồng thời với khác Các phận xử lý khác bao gồm dạng tài nguyên như: máy tính đơn gồm nhiều đa xử lý, nhiều máy tính kết nối mạng, phần cứng chuyên biệt, kết hợp dạng trên.[5] 2.2 Tại phải xử lý song song? Do yêu cầu thực tế ngày có nhiều tốn với kích thước lớn u cầu xử lý tính tốn phải nhanh Tuy nhiên thực tế lại khơng tồn máy tính có nhớ vô hạn khả xử lý vô hạn Và có nhiều tốn mà với giải thuật khơng thể giải Do việc sử dụng hệ thống có nhiều xử lý giải thuật song song để giải toán vô cần thiết 2.3 – – – – Các thành phần liên quan đến tính tốn song song Kiến trúc máy tính song song Phần mềm hệ thống Giải thuật song song Ngơn ngữ lập trình song song Trong khuôn khỗ báo không giới thiệu chi tiết thành phần liên quan đến tính tốn song song mà giới thiệu thư viện MPI hỗ trợ việc lập trình xử lý song song Fortran 77 C Phần giới thiệu tổng quan MPI 3.1 Tổng quan MPI MPI MPI, Message Passing Interface, dạng giao thức kết nối máy tính MPI thư viện hàm hay thủ tục chuẩn hóa hỗ trợ lập trình song song gọi từ ngơn ngữ Fortran, C, C++ hay Ada 3.2 Mơ hình lập trình message passing Mơ hình lập trình message passing phát triển dựa ý tưởng lập trình song song Trong tốn chia thành nhiều phần nhỏ, phần giải processor với nhớ riêng Các phần giao tiếp với qua nhiều mạng để giải vấn đề tốn Ứng dụng lập trình song song với MPI toán nhân hai ma trận [5] Hình Mơ hình lập trình message passing 3.3 Các giao thức MPI – Giao thức point to point Giao thức point to point giao thức đơn giản truyền thông điệp Một thông điệp truyền từ processor tới processor hai processor biết thông tin thông điệp – Giao thức collective Giao thức collective cho phép nhiều processor trao đổi thông điệp 3.4 Nguyên tắc lập trình MPI – Tất chương trình sử dụng MPI phải bắt đầu với hàm MPI_Init kết thúc với hàm MPI_Finalize MPI_Init gọi lần tồn chương trình 3.5 Các hàm MPI thường dùng Tên hàm MPI_Init() MPI_Finalize() MPI_Comm_size( MPI_COMM_WORLD, &size) MPI_Comm_rank( MPI_COMM_WORLD, &rank) MPI_Finalized(&flag) MPI_Barrier() MPI_Wtime() MPI_Wtick() MPI_Reduce(void *local, void *global, int count, MPI_Datatype type, MPI_Op operator, int root, MPI_Comm comm) MPI_Send() MPI_Receive() 3.6 Ý nghĩa Khởi tạo môi trường thực thi MPI, hàm phải gọi trước tất hàm MPI khác, gọi lần Dùng để kết thúc môi trường thực thi MPI Hàm phải gọi cuối tất hàm MPI Xác định số lượng tiến trình tham gia vào giao tiếp, thơng thường, dùng giao tiếp MPI_COMM_WORLD giao tiếp xây dựng sẵn, bao gồm tất tiến trình tham gia vào chương trình Xác định thứ tự tiến trình giao tiếp Lúc ban đầu tiến trình gán cho số thứ tự từ tới n-1 giao tiếp MPI_COMM_WORLD Kiểm tra xem hàm MPI_Init() gọi hay chưa Đồng tất tiến trình hệ thống, hàm gọi, tất tiến trình chờ tiến trình cuối thực đến bước tất thực câu lệnh vào thời điểm Xác định thời gian hệ thống Xác định độ xác thời gian hệ thống Hàm tình gộp, dùng để gộp kết tiến trình vào kết chung Trong đó, local kết cục bộ, global kết nhận sau tính gộp kết cục bộ, type kiểu liệu tính gộp, operator thao tác tính gộp, root thứ tự tiến trình nhận kết global, comm giao tiếp Các kiểu thường dùng với MPI Ứng dụng lập trình song song với MPI toán nhân hai ma trận Tên Kiểu liệu C tương đương MPI_CHAR signed char MPI_DOUBLE double MPI_FLOAT Float MPI_INT Int MPI_LONG Long MPI_LONG_DOUBLE long double MPI_SHORT Short MPI_UNISIGNED_CHAR unsigned char MPI_UNISIGNED unsigned int MPI_UNSIGNED_LONG unsigned long MPI_UNSIGNED_SHORT unsigned short Bài toán nhân ma trận thuật toán Fox 4.1 Bài toán nhân hai ma trận với thuật toán Định nghĩa toán nhân hai ma trận đơn giản Cho ma trận A có kích thước m x n, ma trận B có kích thước n x p Ma trận C có kích thước m x p kết phép toán nhân ma trận A B có phần tử hàng thứ i cột thứ j xác định bởi: n X aik bkj cij = k=1 Cách giải trực tiếp máy tính dùng vịng lặp: for (i=0; i

Ngày đăng: 23/03/2015, 07:51

Từ khóa liên quan

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

Tài liệu liên quan