Giao thức truyền thông điệp

Thuật ngữ MPI là viết tắt của Message Passing Interface, chỉ một dạng giao thức kết nối của máy tính. Nó nằm trong chuẩn de facto cho kết nối giữa các nút chạy một chương trình song song trên bộ nhớ chia sẻ được phân phối. Tập MPI thi hành bao gồm một thư viện các thủ tục sao cho có thể gọi được từ các chương trình Fortran, C, C++ hay Ada. Lợi thế của MPI so với các thư viện cũ là nó vừa thuận tiện (vì MPI thực thi cho hầu hết các kiến trúc bộ nhớ phân phối) vừa nhanh (vì mỗi thủ tục được tối ưu hóa cho phần cứng mà nó đang chạy). Thường được so sánh với PVM và có thể kết hợp nó để tạo thành PVMMPI.

Chương trình mẫu

[sửa | sửa mã nguồn]

Dưới đây là chương trình "Hello World" dùng MPI trong ngôn ngữ C. Chúng ta gửi thông điệp hello đến mỗi chip, chạy như bình thường, gửi kết quả trở lại chip chính, cuối cùng in ra.

 /*
  Test of MPI
 */
 #include <mpi.h>
 #include <stdio.h>
 #include <string.h>
 
 int main(int argc, char *argv[])
 {
   char idstr[32];
   char buff[128];
   int numprocs;
   int myid;
   int i;
   MPI_Status stat; 
 
   MPI_Init(&argc,&argv); 
   MPI_Comm_size(MPI_COMM_WORLD,&numprocs); 
   MPI_Comm_rank(MPI_COMM_WORLD,&myid); 
 
   if(myid == 0)
   {
     printf("We have %d processors\n", numprocs);
     for(i=1;i<numprocs;i++)
     {
       sprintf(buff, "Hello %d! ", i);
       MPI_Send(buff, 128, MPI_CHAR, i, 0, MPI_COMM_WORLD);
     }
     for(i=1;i<numprocs;i++)
     {
       MPI_Recv(buff, 128, MPI_CHAR, i, 0, MPI_COMM_WORLD, &stat);
       printf("%s\n", buff);
     }
   }
   else
   {
     MPI_Recv(buff, 128, MPI_CHAR, 0, 0, MPI_COMM_WORLD, &stat);
     sprintf(idstr, "Processor %d ", myid);
     strcat(buff, idstr);
     strcat(buff, "reporting for duty\n");
     MPI_Send(buff, 128, MPI_CHAR, 0, 0, MPI_COMM_WORLD);
   }
 
   MPI_Finalize();
   return 0;
 }

Liên kết ngoài

[sửa | sửa mã nguồn]

Tham khảo

[sửa | sửa mã nguồn]
Chúng tôi bán
Bài viết liên quan
Sự cần thiết của Tự mình suy tư vấn đề
Sự cần thiết của Tự mình suy tư vấn đề
Trước đây, mình hay có thói quen hễ thấy vấn đề gì khó xíu là chạy đi tham khảo Google cho tiện
Vật phẩm thế giới Five Elements Overcoming - Overlord
Vật phẩm thế giới Five Elements Overcoming - Overlord
Five Elements Overcoming Hay được biết đến với cái tên " Ngũ Hành Tương Khắc " Vật phẩm cấp độ thế giới thuộc vào nhóm 20 World Item vô cùng mạnh mẽ và quyền năng trong Yggdrasil.
Đấu thần vương Shion trong Tensei Shitara Slime Datta Ken
Đấu thần vương Shion trong Tensei Shitara Slime Datta Ken
Shion (紫苑シオン, lit. "Aster tataricus"?) là Thư ký thứ nhất của Rimuru Tempest và là giám đốc điều hành trong ban quản lý cấp cao của Liên đoàn Jura Tempest
5 lọ kem dưỡng bình dân cho da dầu
5 lọ kem dưỡng bình dân cho da dầu
Nhiều người sở hữu làn da dầu không biết rằng họ vẫn cần dùng kem dưỡng ẩm, để cải thiện sức khỏe tổng thể, kết cấu và diện mạo của làn da