Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <mpi.h>
- using namespace std;
- int main(int argc, char* argv[]){
- MPI::Status status;
- //MPI::Request request;
- int rank, size, rankF = 1;
- int data[10], received[10];
- MPI::Init(argc, argv);
- rank = MPI::COMM_WORLD.Get_rank();
- size = MPI::COMM_WORLD.Get_size();
- if(size >= 3){
- if(rank == 0){
- MPI::COMM_WORLD.Isend(&data, 10, MPI::INT, 1, rankF);
- //request.Wait(status);
- cout<<status.Get_source()<<"\n";
- }
- //for(rankF = 1; rankF < size; rankF++){
- if(rankF == size-1){
- MPI::COMM_WORLD.Irecv(&received, 10, MPI::INT, rankF, MPI::ANY_TAG);
- MPI::COMM_WORLD.Isend(&received, 10, MPI::INT, 0, rankF);
- //request.Wait(status);
- cout<<status.Get_source()<<rankF<<"\n";
- }
- else{
- MPI::COMM_WORLD.Irecv(&received, 10, MPI::INT, rankF, MPI::ANY_TAG);
- MPI::COMM_WORLD.Isend(&received, 10, MPI::INT, rankF+1, rankF);
- //request.Wait(status);
- cout<<status.Get_source()<<rankF<<"\n";
- }
- //}
- }
- MPI::Finalize();
- return 0 ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement