Advertisement
Guest User

Лабораторная работа 1

a guest
Oct 23rd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. #include <iostream>
  2. #include "mpi.h"
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc, char **argv) {
  7.     setlocale(LC_ALL, "rus");
  8.     int rank, size;
  9.     MPI_Init(&argc, &argv);
  10.     MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  11.     MPI_Comm_size(MPI_COMM_WORLD, &size);
  12.     if (size == 1) {
  13.         cout << "Число потоков должно быть строго больше 1" << endl;
  14.         MPI_Finalize();
  15.         return 0;
  16.     }
  17.     int message = rank;
  18.     MPI_Status status;
  19.     if (!(rank % 2)) {
  20.         if (rank < size - 1)
  21.             MPI_Send(&message, 1, MPI_INT, rank + 1, 0, MPI_COMM_WORLD);
  22.     } else {
  23.         MPI_Recv(&message, 1, MPI_INT, rank - 1, 0, MPI_COMM_WORLD, &status);
  24.         cout << "Сообщение " << message << " принято от " << rank - 1 <<
  25.             "-го потока" << endl;
  26.     }
  27.     MPI_Finalize();
  28.     return 0;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement