Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <mpi.h>
- #include <iostream>
- #include <vector>
- using namespace std;
- void vectorSend(vector<int> &vec, int procNumber);
- vector<int> vectorRecv(int procNumber);
- int main(int argc, char** argv){
- MPI::Init(argc, argv);
- int rank = MPI::COMM_WORLD.Get_rank();
- //int size = MPI::COMM_WORLD.Get_size();
- if(rank==0){
- vector<int> myVector;
- myVector.push_back(5);
- myVector.push_back(10);
- myVector.push_back(15);
- vectorSend(myVector,1);
- }
- if(rank==1){
- vector<int> vec = vectorRecv(0);
- for (vector<int>::iterator it = vec.begin(); it != vec.end(); ++it){
- std::cout << *it << ' ';
- }
- cout << endl;
- }
- MPI::Finalize();
- return 0;
- }
- void vectorSend(const vector<int> &vec, int procNumber){
- int mySize = vec.size();
- MPI::COMM_WORLD.Send(&mySize,1,MPI::INT,procNumber,1234);
- MPI::COMM_WORLD.Send(&vec[0],vec.size(),MPI::INT,procNumber,1234);
- }
- vector<int> vectorRecv(int procNumber){
- int mySize;
- MPI::COMM_WORLD.Recv(&mySize,1,MPI::INT,procNumber,1234);
- vector<int> buffer;
- buffer.resize(mySize);
- MPI::COMM_WORLD.Recv(&buffer[0],mySize,MPI::INT,procNumber,1234);
- return buffer;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement