ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
85
Приложение 2
Пересылка простейшего сообщения между двумя процессами
#include <stdio.h>
#include <string.h>
#include "mpi.h"
int main (int argc, char **argv)
{
char message[20]="";
int myrank, count;
MPI_Status status;
/**
*инициализация параллельной части приложения
*/
MPI_Init (&argc, &argv);
/**
*Определение номера процесса в группе
*/
MPI_Comm_rank (MPI_COMM_WORLD, &myrank);
if (myrank==0)
{
strcpy (message, "Hello, there");
printf ("sent: %s.\n", message);
/**
*Блокирующая посылка сообщения
*/
MPI_Send(message, strlen(message), MPI_CHAR, 1, 99,
MPI_COMM_WORLD);
}
else if(myrank==1)
{
/**
*Прием сообщения
*/
MPI_Probe(0, 99, MPI_COMM_WORLD, &status);
MPI_Get_count(&status, MPI_CHAR, &count);
MPI_Recv (message, count, MPI_CHAR, 0, 99,
MPI_COMM_WORLD,
&status);
printf ("received: %s.\n", message);
}
/**
*Завершение параллельной части приложения
*/
MPI_Finalize();
}