Message Passing Interface

Kategori: Parallel Programming , 22 Ekim 2019 , JanFranco


MPI, Message Passing Interface, bir iletişim protokolüdür. Bir bilgisayarda processler arası yapılabilir, bilgisayarlar arası da yapılabilir. Alt yapısında bir çok IPC methodunu çalıştırır (pipes, fifos, message queues, semaphores vs.) MPI'ın kullanımı IPC'ye göre çok daha kolaydır ve sadece 6 fonksiyonla MPI kullanılabilir:

1- MPI_Init

MPI ortamını oluşturur.

2- MPI_Comm_size

Process sayıdır. MPI ortamının büyüklüğüdür.

3- MPI_Comm_rank

Process id'leri olarak düşünülebilir. 4- MPI_Send

Data gönderim fonksiyonudur.

5- MPI_Recv

Data alım fonksiyonudur.

6- MPI_Finalize

MPI ortamını sonlandırır. Basit bir örnek yapalım:


#include <mpi.h>
#include <stdio.h>

int main(int argc, char** argv) {

    MPI_Init(NULL, NULL);	// MPI ortamını kurduk

    int world_size;
    MPI_Comm_size(MPI_COMM_WORLD, &world_size);	// MPI ortamının büyüklüğünü belirledik ve world_size değişkenine atadık

    int world_rank;
    MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); // Her bir process bu kodları çalıştıracak ve bu fonksiyon ile process ID'sini world_rank değişkenine atayacak

    char processor_name[MPI_MAX_PROCESSOR_NAME];
    int name_len;
    MPI_Get_processor_name(processor_name, &name_len);	// Opsiyonel olarak process isimlerini aldık ve processor_name değişkenine atadık

    printf("Hello world from processor %s, rank %d out of %d processors\n",
           processor_name, world_rank, world_size);	// Her bir processin bilgilerini konsola bastırdık

    MPI_Finalize();	// MPI ortamını sonlandırdık
}


Sonraki Yazı: MPI - Send, Receive
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın