MPI
MPI (Message Passing Interface) bir bilgisayar iletişim protokolüdür. Dağıtık bellekli bir sistemde paralel program koşan düğümlerin arasındaki iletişim için kullanılan fiilen standart bir protokoldür. MPI uygulamaları Fortran, C, C++ ve Ada programlarından çağrılan kütüphane yordamlarından oluşur. MPI 'ın diğer eski mesaj geçirmeli kütüphanelere olan üstünlüğü taşınabilir (MPI pek çok dağıtık bellekli mimari üzerinde uygulanmıştır) ve hızlı (çünkü her bir uygulama üzerinde çalıştığı hardware için optimize edilmektedir) olmasıdır.
Aşağıda bir "Merhaba Dünya" uygulaması görülmektedir. Her bir işlemciye "Merhaba" mesajı yollanmakta bu mesaj işlendikten sonra sonuçlar ana işlemciye dönmekte ve çıktı mesajları ekrana yazılmaktadır.
// MPI Testi #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(" %d tane islemcim var\n", numprocs); for(i=1;i<numprocs;i++) { sprintf(buff, "Merhaba %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, "Islemci %d ", myid); strcat(buff, idstr); strcat(buff, "goreve hazir\n"); MPI_Send(buff, 128, MPI_CHAR, 0, 0, MPI_COMM_WORLD); } MPI_Finalize(); return 0; }
Dış bağlantılar
- MPI dokümantasyon15 Nisan 2006 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
- Open MPI Sitesi2 Temmuz 2006 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.