TRƯỜNG ĐẠI HỌC CẦN THƠKHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG LẬP TRÌNH SONG SONG VỚI MPI PASSING INTERFACE CHO BÀI TOÁN NHÂN 2 MESSAGE-MA TRẬN NHÓM 7: GVHD: PGS.TS TRẦN CAO ĐỆ BÁO CÁO
Trang 1TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
LẬP TRÌNH SONG SONG VỚI MPI PASSING INTERFACE) CHO BÀI TOÁN NHÂN 2
(MESSAGE-MA TRẬN
NHÓM 7: GVHD: PGS.TS TRẦN CAO ĐỆ
BÁO CÁO ĐỒ ÁN MÔN HỌC PHÂN TÍCH & THIẾT KẾ GIẢI THUẬT NÂNG CAO
Trang 2NỘI DUNG TRÌNH BÀY
Cài đặt giải thuật nhân 2 ma trận
Trang 4Giới thiệu (tt)
Mục đích:
Nghiên cứu này nhằm kiểm chứng rằng giải thuật song song cho bài toán nhân 2 ma trận hiệu quả hơn giải thuật tuần tự
Trang 5ở hàng thứ i, cột thứ j được xác định bởi:
ci,j = ai,1 b1,j + ai,2b2,j + … + ai,nbn,j
Trang 6Giới thiệu (tt)
Các giải thuật tuần tự
Cài đặt trực tiếp, sử dụng công thức:
kj ik
C
1
Trang 7Giới thiệu (tt)
Giải thuật Strassen (1969)
Chỉ cần 7 phép nhân đệ qui n/2 x n/2 ma trận và O(n 2 ) phép cộng trừ vô hướng.
12 11
22 21
12 11
22 21
12 11
b b
b b
a a
a a
= c
c
c c
Trang 8Lập trình song song với MPI
Xử lý song song là gì?
Xử lý gồm nhiều tiến trình được kích hoạt đồng thời để giải quyết một bài toán
Xử lý được thực hiện trên những hệ thống đa bộ xử lý
Mục đích xử lý song song?
Dùng nhiều hơn 1 processor để tính toán nhanh hơn
Giải quyết tốt các bài toán lớn: dự báo thời tiết, mô phỏng, xử lý ảnh,…
Trang 9Lập trình song song với MPI (tt)
Phân biệt xử lý song song và xử lý tuần tự
Xử lý
tuần tự Tại mỗi thời điểm chỉ thực hiện
được một phép toán
Tốc độ chậm Phù hợp với bài
Tốc độ nhanh Phù hợp với bài
toán lớn
Trang 10Lập trình song song với MPI (tt)
Mô hình song song
Giải thuật
Tính toán tuần tự theo hàm mũ: NO
Tính toán tuần tự lớp P: OK
Tính toán tuần tự lớp NP-Complete: NO
Một phần bài toán có thể song song hóa OK
Lập trình song song
Trang 11Lập trình song song với MPI (tt)
chương trình song song trên
bộ nhớ chia sẻ được phân phối
- MPI bao gồm một thư viện các thủ tục gọi được từ các chương trình Fortran, C, C++
hay Ada
Trang 12Lập trình song song với MPI (tt)
- MPI thực thi cho hầu hết các kiến trúc bộ nhớ phân phối
- Mỗi thủ tục được tối ưu hóa cho phần cứng
Trang 13Cài đặt MPI
Trang 14Cài đặt MPI (tt)
Trang 16Lập trình song song với MPI (tt)
MPI_Init() MPI_Wtime() MPI_Finalize() MPI_Wtick()
MPI_Comm_size(MPI_CO MM_WORLD, &size)
MPI_Reduce(void *local, void *global, int count, MPI_Datatype type, MPI_Op operator, int root, MPI_Comm comm)
MPI_Comm_rank(MPI_CO MM_WORLD, &rank) MPI_Send()MPI_Finalized(&flag) MPI_Receive()
Trang 17Lập trình song song với MPI (tt)
Tên Kiểu dữ liệu C tương đương
Trang 18CÀI ĐẶT GIẢI THUẬT NHÂN 2 MA TRẬN
Trang 19GIẢI THUẬT TUẦN TỰ (tt)
Trang 20GIẢI THUẬT Fox’s
Trang 21GIẢI THUẬT Fox’s (tt)
Trang 22GIẢI THUẬT Fox’s (tt)
Trang 24GIẢI THUẬT Fox’s (tt)
Trang 25GIẢI THUẬT Fox’s (tt)
Trang 26BẢNG SỐ LIỆU THỰC NGHIỆM nxn Tuần tự 1 Core 4 Core
Trang 27Tuần tự
Trang 28Kết luận và hướng phát triển
Giải thuật song song nhân 2 ma trận hữu hiệu hơn giải thuật tuần tự So sánh độ phức tạp về thời gian ta thấy:
Có thể mở rộng giải thuật song song cho nhiều bài toán lớn khác trong thực tế để vừa tăng tốc độ tính toán, vừa tận dụng được khả năng của những hệ thống máy
O(n 2 ) <O(n lg7 ) < O(n 3 )
Trang 29Tài liệu tham khảo
- Bài giảng Phân tích & Thiết kế giải thuật nâng cao – PGS.TS Trần Cao Đệ -ĐHCT - 2012
-
http://auriza.site40.net/notes/mpi/mpich2-on-wi ndows-xp/
- Fox's Matrix Multiply Algorithm:
http://auriza.site40.net/notes/mpi/
- https://computing.llnl.gov/tutorials/mpi/
polaris.cs.uiuc.edu/~padua/cs320/mpi/tutorial.pdf
Trang 30Xin chân thành cám ơn !