I receive the following message when I call MPI::COMM_WORLD.Gatherv with large data :
Assertion failed in file ../../i_rtc_cache.c at line 631: buf_end_palign > buf_start_palign
internal ABORT - process 1
[0:node0066] unexpected disconnect completion event from [1:node0067]
Assertion failed in file ../../dapl_conn_rc.c at line 1128: 0
internal ABORT - process 0
It seems that this assertion occurs only if the total received data is larger than 2^31 bytes, even if the numbers inside the arrays of displacement and number of received data are less than 2^31.
My array of displacement contains : 0 and 65450474
My array of number of received data contains : 65450474 and 295138626.
So the total number of received data is 360589100 and the object type is MPI::LONG used for the transfert.
I compile in 64 bit (the utility "file" reports "ELF 64-bit LSB executable").
Does MPI_GATHERV has a limit on the length of the array ?
Currently, the Intel® MPI Library does not support messages larger than 2 GB. The current limitation of the 2 GB maximum message size is due to the type 'int' used by the MPI standard to designate a message size parameter. On the LP64 programming model, which is used overwhelmingly in engineering software, int is 32 bits long, which drives the limitation. The development team has decided to stay with the LP64 model at this time. They will be improving the error message displayed when the message size is beyond the limitation.
Technical Consulting Engineer
Intel® Cluster Tools