Bài tập thực hành MPI - Lab 2: Parallel Programming with MPI


Point-to-Point Communication (1)
1. Mục tiêu
 SV tìm hiểu và sử dụng các hàm truyền thông gửi/nhận dữ liệu trong thư viện MPI
 Một số hàm giao tiếp nhóm SV cần tìm hiểu :
o MPI_Init(), MPI_Comm_rank, MPI_Comm_size, MPI_Finalize
o MPI_Send, MPI_Ssend, MPI_Bsend, MPI_Rsend, MPI_Isend
o MPI_Recv, MPI_Irecv
o MPI_Wtime(), MPI_Get_count, MPI_Get_elements, MPI_Wait, MPI_Test 
pdf 5 trang thamphan 26/12/2022 2120
Bạn đang xem tài liệu "Bài tập thực hành MPI - Lab 2: Parallel Programming with MPI", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_tap_thuc_hanh_mpi_lab_2_parallel_programming_with_mpi.pdf

Nội dung text: Bài tập thực hành MPI - Lab 2: Parallel Programming with MPI

  1. Lab 2 Parallel Programming with MPI Point-to-Point Communication (1) 1. Mục tiêu SV tìm hiểu và sử dụng các hàm truyền thông gửi/nhận dữ liệu trong thư viện MPI Một số hàm giao tiếp nhóm SV cần tìm hiểu : o MPI_Init(), MPI_Comm_rank, MPI_Comm_size, MPI_Finalize o MPI_Send, MPI_Ssend, MPI_Bsend, MPI_Rsend, MPI_Isend o MPI_Recv, MPI_Irecv o MPI_Wtime(), MPI_Get_count, MPI_Get_elements, MPI_Wait, MPI_Test 2. Nội dung 2.1 Giới thiệu Sự giao tiếp giữa 1 nhóm process trong cùng communicator Mỗi process đều phải gọi hàm giao tiếp nhóm SV tìm hiểu xem mỗi hàm giao tiếp nhóm có chức năng gì và thực hiện các chương trình mẫu trong mục 2.2 Bài tập thực hành MPI – Bộ môn Hệ Thống & Mạng Máy Tính, Khoa KH&KTMT Trang 1
  2. Kết quả in ra: Hello MPI from process rank: 0 of 2 Hello MPI from process rank: 1 of 2 2.2.2 Chương trình sử dụng pPoint.c #include #include #include int main(int argc, char argv){ int rank,size, tag; double a,b,s; double t; MPI_Status status; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&rank); MPI_Comm_size(MPI_COMM_WORLD,&size); fprintf(stdout,"\n Process %d of %d processes starts \n", rank, size); t = MPI_Wtime(); if(rank == 1) { b = 12.2; MPI_Recv(&a,1,MPI_DOUBLE,MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD, &status); s = b - a ; fprintf(stdout," The result is : %f \n", s); } else { a = rank; tag=1; MPI_Send(&a, 1, MPI_DOUBLE, 1, tag, MPI_COMM_WORLD); Bài tập thực hành MPI – Bộ môn Hệ Thống & Mạng Máy Tính, Khoa KH&KTMT Trang 3
  3. 3. Bài tập SV hiện thực các bài tập: Bài 3.1. Viết chương trình nhân hai vector. Bài 3.2. Tính tích phân của hàm f(x) > 0 và liên tục trong khoảng [a, b] bằng phương pháp chia miền này thành N hình thang nhỏ. Sai số tùy thuộc vào số lượng hình thang này. a b LƯU Ý: SV PHẢI NỘP SOURCE CODE CÁC BÀI TẬP LÊN SAKAI ĐÚNG HẠN Bài tập thực hành MPI – Bộ môn Hệ Thống & Mạng Máy Tính, Khoa KH&KTMT Trang 5