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[]) {
- int rang;
- MPI::Request zahtjev[6];
- MPI::Status status;
- double x[5], y[10];
- MPI::Init(argc, argv); /* Zapocni MPI */
- rang = MPI::COMM_WORLD.Get_rank(); /* Get rank */
- int n = MPI::COMM_WORLD.Get_size();
- if( rang == 0 ) {
- for(int i=0;i<5;i++)
- x[i]=i+2;
- for(int i=0;i<n-1;i++){
- zahtjev[i]=MPI::COMM_WORLD.Isend(x, 5, MPI::DOUBLE, i+1, i+1);
- }
- int k=1;
- for(int i=0;i<10;i++){
- y[i]=k;
- k+=2;
- }
- for(int i=0;i<n-1;i++){
- zahtjev[i].Wait(status);
- }
- for(int i=0;i<10;i++)
- cout<<y[i]<<endl;
- }
- else {
- zahtjev[0] = MPI::COMM_WORLD.Irecv(x, 5, MPI::DOUBLE, MPI::ANY_SOURCE, MPI::ANY_TAG);
- zahtjev[0].Wait(status);
- cout << "Proces rang= "<<rang<<" primio je poruku oznake " << status.Get_tag() << " od procesa ranga " << status.Get_source() << endl;
- }
- MPI::Finalize(); /* Zavrsi MPI */
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement