Re: [OMPI users] More on AlltoAll
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
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
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
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