On May 24, 2012, at 9:28 AM, Jeff Squyres wrote:
> So I checked them all, and I found SCATTERV, GATHERV, and REDUCE_SCATTER all had the issue. Now fixed on the trunk, and will be in 1.6.1.
I forgot to mention -- this issue exists waaay back in the Open MPI code base. I spot-checked Open MPI 1.2.0 and see it there, too.
To be clear: this particular bug only shows itself when you invoke ALLGATHERV, GATHERV, SCATTERV, or REDUCE_SCATTER on an intercommunicator where the sizes of the two groups are unequal. Whether the problem shows itself or not is rather random (i.e., it depends on how "safe" the memory is after the recvcounts array). FWIW, you can workaround this bug by setting the MCA parameter "mpi_param_check" to 0, which disables all MPI function parameter checking. That may not be attractive in some cases, of course.
More specifically: since this problem has been in the OMPI code base for *years* (possibly since 1.0 -- but I'm not going to bother to check), it shows how little real-world applications actually use this specific functionality. Don't get me wrong -- I'm *very* thankful to the mpi4py community for raising this issue, and I'm glad to get it fixed! But it does show that there are dark, dusty corners in MPI functionality where few bother to tread. :-)
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/