#include <stdio.h> #include "mpi.h" #define TAG 0 #define COUNT 25 #define SOURCE 0 #define DEST 1 int main(int argc, char *argv[]) { int rank, size; MPI_Status status; char Msg[]="Komunikat od procesu 0"; // treść komunikatu przesyłanego między procesami char Recv[COUNT];
MPI_Init(&argc,&argv); // inicjalizacja środowiska MPI manual MPI_Comm_size(MPI_COMM_WORLD,&size); // liczba procesów w grupie zapisywana jest w zmiennej size manual MPI_Comm_rank(MPI_COMM_WORLD,&rank); // rank bieżącego procesu zapisywany jest w zmiennej rank manual if (size > 1) { // sprawdzane jest czy istnieje minimalna liczba procesów // Komunikat przesyłany jest od procesu o numerze rank = 0 (SOURCE) // do procesu o numerze rank = 1 (DEST) if (rank == DEST) // jeżeli procesem jest proces odbierający komunikat:
printf ("process %d of %d waiting for message from %d\n", rank, size, SOURCE); // odbiór komunkatu i zapis zawartości do bufora Recv manual MPI_Recv(Recv, COUNT, MPI_CHAR, SOURCE, TAG, MPI_COMM_WORLD, &status);