If the data we wish to write as a VDC is not divided amongst processors in single rectangular prisms, I don't believe the API, as written, is robust enough to work.  For instance (2D for simplicity), if we have a 10 x 10 array and processor N has all of the first row and some of the second, we have no way to specify the data to VDCWrite() (which just asks for a min and max coordinate for the data).  Similarly, if processor N has the upper 2x2 component and the lower 2x2 component, we can specify each individually, but we cannot specify both of them.

This would be solvable (though more complex) by first specifying all the data (through a new function VDCData() or some-such), and then calling VDCWrite() on all processors to write it.  When the write is initialized, it is important to have all the data locations specified--if this is not the case, some of the logic will fail.  I expect that it is not incredibly important (and it does complicate things by a reasonable amount), since most data will likely divided among processors in single rectangular prisms.  It is probably worth noting, still.

  • No labels