1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình song song với thư viện lập trình MPICHMPI và ứng dụng

31 222 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 1,45 MB

Nội dung

Lập trình song song với thư viện lập trình MPICH/MPI ứng dụng 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 MPICH / MPI Mơ hình trùn thơng điệp Chương trình song song 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ập trì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ập trì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ập trì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ập trì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ập trì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ập trình SIMD MIMD Đỗ Huy Quang MPICH / MPI 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 chun 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 điệp: C/C++, Fortran 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 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ập trì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

Ngày đăng: 21/02/2019, 23:15

TỪ KHÓA LIÊN QUAN

w