Boost logo

Boost Users :

Subject: Re: [Boost-users] [mpi] - why this code hangs on gather?
From: tomasz jankowski (tomasz_jacek_at_[hidden])
Date: 2009-10-27 09:32:04


Thank You Matthieu for reply,

> If I understood your code correctly, you are sending every piece of
> data through rank 0 and then it waits for the completion of the
> operations. Then, every rank receives data, as well as the first rank.

I'm sending from 0 to 1,2,3,4,5,6,7
I.m not sending from 0 to 0 (what I understand could cause problems)

> But the first rank is waiting for ots own receive to finish, which can
> never happen. You should put the wait all after the receptions.

(what do you mean "first rank"? 1 or 0?)

1. I removed waiting after isend - still hangs on

2. I dont need wait in 0. i need wait in rest of ranks because I need
data for calculation
so I modified like
mpi::request recv;
recv = world.irecv(0, 0, recvmol);
recv.wait();

to

world.recv(0, 0, recvmol);

- still hangs on

3. I did also like
I removed waiting after isend and put it before gather in 0

  if( world.rank() == 0 ){
    mpi::wait_all(reqs, reqs + nProcs - 1);
    gather(world,res,allRes,0);
  } else {
    gather(world,res,0);
  }

still hangs on (doesnt matter with irecv or recv)...

tom

----------------------------------------------------
Film Solista: 9/10 Jak dla mnie rewelacyjny!
Piêkny wzruszaj±cy g³êboki!
Trudna tematyka, ale pokazana w mistrzowski sposób.
http://klik.wp.pl/?adr=http%3A%2F%2Fcorto.www.wp.pl%2Fas%2Fsolista.html&sid=900


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net