Re: [OMPI users] More on AlltoAll

2008-03-20 Thread Terry Frankcombe
If the data distribution was sufficiently predictable and long-lived
through the life of the application, could one not define new
communicators to clean up the calls?


> After reading the previous discussion on AllReduce and AlltoAll, I
> thought I would ask my question. I have a case where I have data
> unevenly distributed among the processes (unevenly means that the
> processes have differing amounts of data) that I need to globally
> redistribute, resulting in a different uneven distribution. Writing the
> code to do the redistribution using AlltoAll is straightforward.
>
> The problem though is that there are often special cases where each
> process only needs to exchange data with it neighbors. So the question
> is that when two processors don't have data to exchange, is the OpenMPI
> AlltoAll is written in such a way so that they don't do any
> communication? Will the AlltoAll be as efficient (or at least nearly as
> efficient) as direct send/recv among neighbors?
>   Thanks!
> Dave
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>




Re: [OMPI users] More on AlltoAll

2008-03-20 Thread Dave Grote





Sorry - my mistake - I meant AlltoAllV, which is what I use in my code.

Ashley Pittman wrote:

  On Thu, 2008-03-20 at 10:27 -0700, Dave Grote wrote:
  
  
After reading the previous discussion on AllReduce and AlltoAll, I 
thought I would ask my question. I have a case where I have data 
unevenly distributed among the processes (unevenly means that the 
processes have differing amounts of data) that I need to globally 
redistribute, resulting in a different uneven distribution. Writing the 
code to do the redistribution using AlltoAll is straightforward.

The problem though is that there are often special cases where each 
process only needs to exchange data with it neighbors. So the question 
is that when two processors don't have data to exchange, is the OpenMPI 
AlltoAll is written in such a way so that they don't do any 
communication? Will the AlltoAll be as efficient (or at least nearly as 
efficient) as direct send/recv among neighbors?

  
  
AlltoAll takes a single size of message and communictes that amount of
data from everybody to everybody.  You might want to look at AlltoAllw
and AlltoAllv, neither of which I have any experience of however.

Ashley,

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

  





Re: [OMPI users] More on AlltoAll

2008-03-20 Thread Ashley Pittman

On Thu, 2008-03-20 at 10:27 -0700, Dave Grote wrote:
> After reading the previous discussion on AllReduce and AlltoAll, I 
> thought I would ask my question. I have a case where I have data 
> unevenly distributed among the processes (unevenly means that the 
> processes have differing amounts of data) that I need to globally 
> redistribute, resulting in a different uneven distribution. Writing the 
> code to do the redistribution using AlltoAll is straightforward.
> 
> The problem though is that there are often special cases where each 
> process only needs to exchange data with it neighbors. So the question 
> is that when two processors don't have data to exchange, is the OpenMPI 
> AlltoAll is written in such a way so that they don't do any 
> communication? Will the AlltoAll be as efficient (or at least nearly as 
> efficient) as direct send/recv among neighbors?

AlltoAll takes a single size of message and communictes that amount of
data from everybody to everybody.  You might want to look at AlltoAllw
and AlltoAllv, neither of which I have any experience of however.

Ashley,



[OMPI users] More on AlltoAll

2008-03-20 Thread Dave Grote


After reading the previous discussion on AllReduce and AlltoAll, I 
thought I would ask my question. I have a case where I have data 
unevenly distributed among the processes (unevenly means that the 
processes have differing amounts of data) that I need to globally 
redistribute, resulting in a different uneven distribution. Writing the 
code to do the redistribution using AlltoAll is straightforward.


The problem though is that there are often special cases where each 
process only needs to exchange data with it neighbors. So the question 
is that when two processors don't have data to exchange, is the OpenMPI 
AlltoAll is written in such a way so that they don't do any 
communication? Will the AlltoAll be as efficient (or at least nearly as 
efficient) as direct send/recv among neighbors?

 Thanks!
   Dave