Advertisement
Guest User

Untitled

a guest
Apr 20th, 2018
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #include <mpi.h>
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. void vectorSend(vector<int> &vec, int procNumber);
  8. vector<int> vectorRecv(int procNumber);
  9.  
  10. int main(int argc, char** argv){
  11. MPI::Init(argc, argv);
  12.  
  13. int rank = MPI::COMM_WORLD.Get_rank();
  14. //int size = MPI::COMM_WORLD.Get_size();
  15.  
  16. if(rank==0){
  17. vector<int> myVector;
  18. myVector.push_back(5);
  19. myVector.push_back(10);
  20. myVector.push_back(15);
  21. vectorSend(myVector,1);
  22. }
  23.  
  24. if(rank==1){
  25. vector<int> vec = vectorRecv(0);
  26. for (vector<int>::iterator it = vec.begin(); it != vec.end(); ++it){
  27. std::cout << *it << ' ';
  28. }
  29. cout << endl;
  30. }
  31.  
  32. MPI::Finalize();
  33. return 0;
  34. }
  35.  
  36. void vectorSend(const vector<int> &vec, int procNumber){
  37.  
  38. int mySize = vec.size();
  39.  
  40. MPI::COMM_WORLD.Send(&mySize,1,MPI::INT,procNumber,1234);
  41. MPI::COMM_WORLD.Send(&vec[0],vec.size(),MPI::INT,procNumber,1234);
  42. }
  43.  
  44. vector<int> vectorRecv(int procNumber){
  45. int mySize;
  46. MPI::COMM_WORLD.Recv(&mySize,1,MPI::INT,procNumber,1234);
  47.  
  48. vector<int> buffer;
  49. buffer.resize(mySize);
  50.  
  51. MPI::COMM_WORLD.Recv(&buffer[0],mySize,MPI::INT,procNumber,1234);
  52.  
  53. return buffer;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement