ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
87
{
strcpy(message, "Hi, Parallel Programmer!");
/**
*Рассылка сообщения всем процессам, включая рассылающий
процесс
*/
MPI_Bcast(&message, 25, MPI_BYTE, 0, fcomm);
printf("0 send: %s\n", message);
}
else
{
MPI_Bcast(&message, 25, MPI_BYTE, 0, fcomm);
printf("%d received: %s\n", rank_in_group, mes-
sage);
}
/**
* Уничтожает группу, ассоциированную с идентификатором
fcomm
*/
MPI_Comm_free(&fcomm);
/**
* уничтожает группу group:
*/
}
MPI_Group_free(&group);
MPI_Group_free(&MPI_GROUP_WORLD);
MPI_Finalize();
return 0;
}
Пример создания декартовой топологии
#include "mpi.h"
#include <stdio.h>
int main(int argc, char *argv[])
{
MPI_Comm grid_comm;
int dims[2];
int periodic[2];
int reorder = 1, q = 5, ndims = 2, maxdims = 2;
int coordinates[2];
int my_grid_rank;
int coords[2];
MPI_Comm row_comm;
dims[0] = dims[1] = q;
periodic[0] = periodic[1] = 1;
coords[0] = 0;
coords[1] = 1;
/**
*инициализация параллельной части приложения
*/
MPI_Init(&argc, &argv);
/**
1...,79,80,81,82,83,84,85,86,87,88 90,91,92,93,94,95,96,97,98,99,...180