next up previous
Next: Overloaded communication operations Up: Open Issues Previous: Derived data types

Multidimensional arrays

Some specific support for communicating multidimensional arrays would be desirable. In the current proposal, sending a multidimensional array involves either sending one row at a time or using Java object serialization, both of which will introduce performance bottlenecks. For instance, our experience has shown that MPIJ sends a 200x200 array of doubles over Fast Ethernet much faster when multidimensional array support is included than when individual rows are sent. More detailed analysis of this problem is presented in [4,13].

Trying to fix the problem for standard Java multidimensional arrays is probably the wrong approach. There is a deeper problem that the Java ``array-of-arrays'' model for multidimensional arrays is not especially well-suited for ``scientific'' computation. This issue is being actively addressed by other groups in the Java Grande Forum. In particular the work by IBM on the Array package [18], which has been adopted by the Java Grande Numerics working group, is very relevant. A more complete MPJ specification should probably include mechanisms for efficiently communicating standardized ``scientific'' arrays, and their sections.

In fact, if a standard like the Array package were adopted, and if it supported description of array sections (without copying elements), it is quite likely that the remaining arguments in favour of keeping an MPI-like derived data type mechanism would go away.


next up previous
Next: Overloaded communication operations Up: Open Issues Previous: Derived data types
Bryan Carpenter 2004-04-24