New Issue: [Patterns] How should elements be added to a distributed list?

18967, "lydia-duncan", "[Patterns] How should elements be added to a distributed list?", "2022-01-11T23:20:17Z"

This issue is part of a series of issues to design the interface for collections across serial, parallel, and distributed contexts. Our goal is to determine what we think is reasonable to support and what doesn't seem useful. Additional patterns welcome (but it would be best to put them in their own issue for discussion, likely)

Would it make sense to provide a block or cyclic "distribution" for lists? It seems like cyclic would be the easiest to support in a load balanced manner, while maybe blockcyclic would make more sense than block since the end size of the list won't likely be known ahead of time (otherwise maybe the user would use an array)

var l1 = new DistributedList(...);

for loc in Locales {
  on loc { // Should this have an impact on where the data will ultimately live?
    for x in 0..19 {
      l1.append(x); // Note: should append be callable in parallel?  It won't lead to a deterministic ordering . . .
    }
  }
}