[mpich-discuss] The max amount of data each process can send in MPI_Alltoallv

Rob Latham robl at mcs.anl.gov
Tue Dec 17 10:25:46 CST 2013

On Fri, Dec 13, 2013 at 07:02:47PM -0600, Rajeev Thakur wrote:
> You can create a contiguous datatype of size 1GB and then send 1G items of that size :-).

... as long as you are running a very recent MPICH, such as a clone from
git or one of the pre-releaseses.  3.0.4 is *not* new enough.

Until my "large count / large datatype" stuff went in a couple months
ago, this much-advertised approach would give MPICH headaches.


> On Dec 13, 2013, at 5:18 PM, Huiwei Lu <huiweilu at mcs.anl.gov> wrote:
> > Hi, folks,
> > 
> > What’s the max amount of data each process can send in MPI_Alltoallv? http://www.mcs.anl.gov/research/projects/mpi/www/www3/MPI_Alltoallv.html
> > 
> > As I understand, the input parameter of sendcnts is an array of int, so the amount of data each process can send is limited to MAX_INT (approximately 2G).
> > 
> > What if I want to use MPI_Alltoallv-like MPI routines to send a buffer of data that exceeds 2GB? Does it need to cut the data buffers to smaller sizes? Is there an easy way to do this? The reason I am asking is one of my distributed sort algorithm uses MPI_Alltoallv to distribute data after partitioning; it crashed when I tried to send in each process more than 2GB data.

Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA

More information about the discuss mailing list