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
[Homo Scachorum] Giỏi cờ vua hơn không đồng nghĩa với thông minh hơn
[Homo Scachorum] Giỏi cờ vua hơn không đồng nghĩa với thông minh hơn
Trong các bài trước chúng ta đã biết rằng vào thời kì Cờ vua Lãng mạn, cờ vua được coi như một công cụ giáo dục không thể chối cãi
Thời điểm “vàng” để giáo dục giới tính cho trẻ
Thời điểm “vàng” để giáo dục giới tính cho trẻ
Khi nói chuyện với con về chủ đề giới tính và tình dục, ba mẹ hãy giải thích mọi thứ phù hợp với độ tuổi, khả năng tiếp thu của con
5 lọ kem chống nắng trẻ hóa làn da tốt nhất
5 lọ kem chống nắng trẻ hóa làn da tốt nhất
Nếu da đã bắt đầu xuất hiện dấu hiệu lão hóa, bạn nên tham khảo 5 lọ kem chống nắng sau
Ngày đầu tiên đi học ở Đức diễn ra như thế nào?
Ngày đầu tiên đi học ở Đức diễn ra như thế nào?
Ngay cả những cha mẹ không được tặng túi quà khi còn nhỏ cũng sẽ tặng lại túi quà cho con cái của họ.