Project

General

Profile

Bug #854

RRMap broken for >1D chare arrays

Added by Sam White almost 4 years ago. Updated about 2 years ago.

Status:
Merged
Priority:
High
Assignee:
Category:
-
Target version:
Start date:
09/29/2015
Due date:
% Done:

0%


Description

The built-in RRMap CkArrayMap only does a true round-robin mapping for 1D arrays. For >1D arrays it hashes the indices of each element modulo a big prime number and the number of PEs. This leads to unbalanced mappings of chares to PEs (some PEs might not get any chares in some cases or some PEs will have more than others), and the behavior is not true to the API.
This is seemingly because the map interface does not know the extent of the array dimensions, only the indices of each chare array element.

History

#1 Updated by Sam White over 3 years ago

  • Target version set to 6.8.0

#2 Updated by Nikhil Jain over 3 years ago

  • Assignee changed from Sam White to Nikhil Jain

#3 Updated by Sam White over 2 years ago

  • Assignee deleted (Nikhil Jain)

Abandoned patch for this: https://charm.cs.illinois.edu/gerrit/#/c/1053/

BlockLB similarly does not take into account the dimensionality of a chare array.

CkArrayOptions already provides an interface (opts.setBounds()) to let users gives us the number of chares per dimension of their array, but this information is not passed through the location manager to the ArrayMap and LB objects.

A further cleanup for this issue is that section 13.2.1 of the manual should be rewritten to encourage users to use setBounds and the other things that CkArrayOptions exposes.

#4 Updated by Eric Bohm over 2 years ago

  • Assignee set to Eric Mikida

#5 Updated by Sam White over 2 years ago

  • Subject changed from RRMap doesn't do true round-robin for >1D chare arrays to RRMap and BlockLB broken for >1D chare arrays

#6 Updated by Sam White over 2 years ago

  • Assignee changed from Eric Mikida to Dong Hun Lee

The real work here is in passing the bounds from CkArrayOptions through to CkArrayMap, so that RRMap can linearize the index space of multidimensional arrays for a true round-robin mapping.

The case of BlockLB is basically the same, BlockLB needs to know the bounds but currently doesn't.

#7 Updated by Dong Hun Lee over 2 years ago

  • % Done changed from 0 to 50

RRMap using Nikhil's previous code.
https://charm.cs.illinois.edu/gerrit/#/c/2421/

#8 Updated by Dong Hun Lee over 2 years ago

  • Status changed from New to In Progress
  • % Done changed from 50 to 0

#9 Updated by Phil Miller about 2 years ago

  • Priority changed from Normal to High

#10 Updated by Sam White about 2 years ago

Note that the patch implements this for RRMap, and adds the mechanism to do it in BlockLB, but I think BlockLB will need to explicitly be fixed too.

#11 Updated by Sam White about 2 years ago

  • Status changed from In Progress to Implemented
  • Subject changed from RRMap and BlockLB broken for >1D chare arrays to RRMap broken for >1D chare arrays

#12 Updated by Phil Miller about 2 years ago

  • Status changed from Implemented to Merged

Also available in: Atom PDF