В каждом процессе дано целое число. С помощью функций MPI_Send и MPI_Recv осуществить для всех процессов циклический сдвиг данных с шагом 1, переслав число из процесса 0 в процесс 1, из процесса 1 в процесс 2, …, из последнего процесса в процесс 0. В каждом процессе вывести полученное число.
#include <windows.h>
#pragma hdrstop
#include "mpi.h"
#include "pt4.h"
void Solve()
{
Task("MPIBegin18");
int flag;
MPI_Initialized(&flag);
if (flag == 0)
return;
int rank, size;
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Status s;
int n;
pt >> n;
//Show(n);
for (int i = 0; i < size; ++i)
{
MPI_Send(&n, 1, MPI_INT, i, 0, MPI_COMM_WORLD);
}
}
вот что есть, будь то массив сделал бы без проблем, а тут что-то нету идей. Помогите если не сложно