Guest User

Untitled

a guest
Jul 23rd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include <mpi.h>
  2. #include <iostream>
  3.  
  4. int main (int argc, char *argv[]) {
  5. // Объявляем переменные
  6. int i, rank, size, namelen;
  7. char name[MPI_MAX_PROCESSOR_NAME];
  8. MPI::Status stat;
  9. // Инициализируем подсистему MPI
  10. MPI::Init(argc, argv);
  11. // Получаем информацию о процессе
  12. size = MPI::COMM_WORLD.Get_size ();
  13. rank = MPI::COMM_WORLD.Get_rank ();
  14. MPI::Get_processor_name (name, namelen);
  15. int temp = 0;
  16. if (rank == size - 1) {
  17. std::cout << "last process" << std::endl;
  18. MPI::COMM_WORLD.Recv(&temp, 1, MPI_INT, rank - 1, 1, stat);
  19. } else {
  20. std::cout << "process rank " << rank << std::endl;
  21. if (rank != 0) {
  22. MPI::COMM_WORLD.Recv(&temp, 1, MPI_INT, rank - 1, 1, stat);
  23. std::cout << "recieved in " << rank << " message " << temp << std::endl;
  24. }
  25. temp = rank;
  26. MPI::COMM_WORLD.Send(&temp, 1, MPI_INT, rank + 1, 1);
  27. }
  28. // Освобождаем подсистему MPI
  29. MPI::Finalize ();
  30. return (0);
  31. }
Add Comment
Please, Sign In to add comment