this afternoon - everybody read the contents

Ken on the fly agenda:
 


Issue 1: carrying gdo dimensions through everywhere
Jon: why can't we have an interface that violates this rule? Problem is that when you do a DRI_Distribution_get_blockinfo it is strictly ordered so that each entry corresponds to global data dimensions specified earlier. This could be very inconvenient for traversing through the local memory, because the Blockdim structure for the most contiguously organized dimension could end up being anywhere in the array of Blockdim structures.

Possible solution is to have another output array of integers[ndims] returned to provide a mapping back to the layout specification (dims[] order does not change from what it is today)

Second possible solution is to change the dims[] order (so that dims[0] corresponds to most contiguous dim, ...) and then have a mapping back to global data dimension.
Ken: in this second approach the gdo map essentially is your original layout specification, right? Yes, but we'll return it in an integer array form, instead of the object form
Decision: let's call the new array layout_order
 

local dimensions of the buffer (in an array), but whose elements do not correspond to the earlier global data dimensions and the layout array specification. Reason for doing this is so it is not awkward to access the "most contiguous" dimension of data
 

Issue 2: Arkady
We can't provide a beginning offset parameter (seems to be a memory layout type of input) that defines the first place in the linear memory buffer where real data starts. Problem is that this input quantity would be dimensionless, but DRI_Layouts can only be created on a per-dimension basis

Issue 3: DRI_Blockinfo structure and handling "pathological cases" (e.g., 5 columns, split over 4 processes, specify left and right overlap of 2, and pad zeros)
Process 2 (where process ranks are 0,1,2,3) will have 1 real column of overlap on the right, and 1 pad column of overlap on the right.

Need to have more information coming back than the lov and rov (which are simply what the user specified originally) - because the situation is a little more complex than that. You need to know (for left and right) the following information:

solution: DRI_Blockdim structure contents shall be: we need to consider how to put this into the DRI_Blockinfo struture
 

Candidates for tomorrow's continuation:

Typos:

1. In change summary, number 2 DRI_Distribution_get_nublocks

2.  need to change DRI_OVERLAP_PAD_ZEROS to ZERO, REPLICATED to REPLICATE (globally)

page 14/30 orderngs

15/30 caculates

change undivided to indivisible (globally)

15/30 casesthat (no sp)
15/30 dimensionalitythat(nosp)

17/30 add "simple" onto signature of DRI_Distribution_create_simpl
 

Significant discussion about changing communication granularity to be on blocks, not on buffers. Issues include: