Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
1,45 MB
Nội dung
Lậptrìnhsongsongvớithưviệnlậptrình MPICH/MPI ứngdụngThưviệnlậptrìnhsongsong MPI ứngdụng Nội dung chính: - Mơ hình truyền thông điệp - Thưviệnsongsong MPI - Phầm mềm hỡ trợ lập trìnhsongsong MPICH2 Đỗ Huy Quang MPICH / MPI Mơ hình trùn thơng điệp Chương trìnhsongsong Process Process K Prosess N Bài toán chia làm nhiều công việc nhỏ, mỗi cơng việc được thực bởi tiến trình Đỗ Huy Quang MPICH / MPI Đặc điểm mơ hình lậptrình trùn thơng điệp Nhiều tiến trình cùng hoạt đợng Mỗi tiến trình chạy mợt bản copy của mợt chương trình nhất Process Process Process n int A; int A; int A; int B; int B; int C=A+B; int C=A+B; int C=A+B; int D = B-A; int D = B-A; int D = B-A; Đỗ Huy Quang … int B; MPICH / MPI Đặc điểm mơ hình lậptrình trùn thơng điệp Mỗi tiến trình có một không gian địa chỉ riêng độc quyền Đỗ Huy Quang MPICH / MPI Đặc điểm mô hình lậptrình trùn thơng điệp Liên lạc giữa các tiến trình • Mỡi tiến trình có định danh, gọi là hạng (rank) tiến trình nhóm • Việc liên lạc, phân chia công việc, liệu đuợc dựa hạng tiến trình Đỗ Huy Quang MPICH / MPI Đặc điểm mơ hình lậptrình trùn thơng điệp Liên lạc giữa các tiến trình • Gửi nhận liệu : Thơng điệp: gói liệu đuợc truyền các tiến trình Việc gửi/nhận thơng diệp được thực bởi hệ thống truyền thông diệp: message passing system Ðể thực gửi/nhận thông điệp, hệ thống truyền thơng điệp cần: – phía gửi: địa tiến trình nhận, vị trí liệu gửi, kiểu liệu gửi, kích thuớc liệu gửi – phía nhận: địa tiến trình gửi, vị trí liệu nhận, kiểu liệu nhận, kích thuớc liệu nhận Đỗ Huy Quang MPICH / MPI Đặc điểm mơ hình lậptrình trùn thơng điệp Mọi thao tác liên lạc đều cần phối hợp giữa tiến trình: tiến trình có dữ liệu tiến trình cần dữ liệu Kiến trúc lậptrình SIMD MIMD Đỗ Huy Quang MPICH / MPI Môi trường truyền thơng điệp Lậptrìnhsongsong trùn thơng điệp: Thiết kế ngơn ngữ lậptrìnhsongsong chun dụng Vd: OCCAM Phát triển số ngôn ngữ lậptrình bậc cao để điều khiển thơng điệp: C/C++, Fortran M Kết hợp ngơn ngữ lậptrìnhvớithưviện truyền thông điệp (MPI, PVM) Đỗ Huy Quang MPICH / MPI MPI - Message Passing Interface MPI thưviện hỗ trợ việc lậptrìnhsongsong Nó bao gồm thủ tục, kiểu liệu, định nghĩa dùng để đặc tả truyền thông điệp Ưu điểm : Sự chuẩn hoá: dùng cho nhiều nền tảng nhiều ngơn ngữ lậptrình Sự linh hoạt: Không cần thay đổi code biên dịch ở các flatform khác Khai thác tối ưu tảng phần cứng đẩy hiệu suất lên cao nhất Đỗ Huy Quang 10 MPICH / MPI Thủ tục môi trường Ví dụ : đưa rank của tiến trình tại sớ lượng tiến trình Đỗ Huy Quang 17 MPICH / MPI Thủ tục môi trường Đỗ Huy Quang 18 MPICH / MPI Thủ tục truyền thông điểm – điểm Buffered blocking operations Lệnh send(): sender bị khóa cho đến message chép đầy đủ lên bộ đệm nhận Lệnh receive(): receiver bị khóa cho đến message nhận từ bộ đệm Đỗ Huy Quang 19 MPICH / MPI Thủ tục truyền thông điểm – điểm MPI_Send int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest,int msgtag, MPI_Comm comm) Thực nhiệm vụ gửi thông điệp tới tiến trình MPI_Recv int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source,int msgtag, MPI_Comm comm, MPI_Status *status) Thực nhiệm vụ nhận các thông điệp truyền về từ các tiến trình Đỗ Huy Quang 20 MPICH / MPI Thủ tục truyền thông điểm – điểm Đỗ Huy Quang 21 MPICH / MPI Bảng ánh xạ kiểu dữ liệu Đỗ Huy Quang 22 MPICH / MPI Thủ tục truyền thông điểm – điểm MPI_Isend int MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest,int msgtag, MPI_Comm comm, MPI_Request *request) Thủ tục gửi không bị khoá MPI_Irecv int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source,int msgtag, MPI_Comm comm, MPI_Status *request) Thủ tục nhận khơng bị khố Đỗ Huy Quang 23 MPICH / MPI Thủ tục truyền thông điểm – điểm Đỗ Huy Quang 24 MPICH / MPI Thủ tục truyền thông tập hợp MPI_Bcast int MPI_Bcast(void* buf, int count, MPI_Datatype datatype, int root, MPI_Comm comm ) Thực việc gửi mợt thơng điệp từ tiến trình gốc tới tồn bợ các tiến trình lại comm Đỗ Huy Quang 25 MPICH / MPI Thủ tục truyền thông tập hợp Đỗ Huy Quang 26 MPICH / MPI Thủ tục truyền thông tập hợp MPI_Scatter int MPI_Scatter(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm) Phân phối đệm từ tiến trình gốc cho tiến trình lại comm Đỗ Huy Quang 27 MPICH / MPI Thủ tục truyền thông tập hợp MPI_Gather int MPI_Gather(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm) Thu nhận giá trị từ nhóm tiến trình comm tiến trình gốc VD: Gather nhận 100 từ tiến trình lại Đỗ Huy Quang 28 MPICH / MPI Thủ tục truyền thông tập hợp MPI_Reduce int MPI_Reduce(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm) Kết hợp giá trị đơn tiến trình Đỗ Huy Quang 29 MPICH / MPI Thủ tục truyền thông tập hợp Bảng kết hợp các kiểu dữ liệu MPI_Reduce Đỗ Huy Quang 30 MPICH / MPI .. .Thư viện lập trình song song MPI ứng dụng Nội dung chính: - Mơ hình truyền thơng điệp - Thư viện song song MPI - Phầm mềm hỗ trợ lập trình song song MPICH2 Đỗ Huy Quang... Môi trường truyền thông điệp Lập trình song song trùn thơng điệp: Thiết kế ngơn ngữ lập trình song song chuyên dụng Vd: OCCAM Phát triển số ngơn ngữ lập trình bậc cao để điều khiển thông... M Kết hợp ngơn ngữ lập trình với thư viện truyền thơng điệp (MPI, PVM) Đỗ Huy Quang MPICH / MPI MPI - Message Passing Interface MPI thư viện hỗ trợ việc lập trình song song Nó bao gồm