Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <mpi.h>
- #include <iostream>
- int main (int argc, char *argv[]) {
- // Объявляем переменные
- int i, rank, size, namelen;
- char name[MPI_MAX_PROCESSOR_NAME];
- MPI::Status stat;
- // Инициализируем подсистему MPI
- MPI::Init(argc, argv);
- // Получаем информацию о процессе
- size = MPI::COMM_WORLD.Get_size ();
- rank = MPI::COMM_WORLD.Get_rank ();
- MPI::Get_processor_name (name, namelen);
- int temp = 0;
- if (rank == size - 1) {
- std::cout << "last process" << std::endl;
- MPI::COMM_WORLD.Recv(&temp, 1, MPI_INT, rank - 1, 1, stat);
- } else {
- std::cout << "process rank " << rank << std::endl;
- if (rank != 0) {
- MPI::COMM_WORLD.Recv(&temp, 1, MPI_INT, rank - 1, 1, stat);
- std::cout << "recieved in " << rank << " message " << temp << std::endl;
- }
- temp = rank;
- MPI::COMM_WORLD.Send(&temp, 1, MPI_INT, rank + 1, 1);
- }
- // Освобождаем подсистему MPI
- MPI::Finalize ();
- return (0);
- }
Add Comment
Please, Sign In to add comment