New Issue: Bring Cyclic to parity with Block

17764, "bradcray", "Bring Cyclic to parity with Block", "2021-05-17T23:24:12Z"

Our Block distribution has received a lot of attention over the years in terms of capabilities and optimizations; by contrast, the Cyclic distribution has not received nearly as much attention. However, Cyclic can sometimes be more powerful in terms of load balancing or growing arrays over time, and it has the advantage of being nearly as simple as Block.

This issue proposes that we should bring the two into parity, in terms of:

  • features: anything a user can do on Block they should also be able to do on Cyclic, within reason
    • e.g., iteration, slicing, queries — I think these are mostly close to parity, but don't feel confident
    • sparse subdomains: I'm fairly certain that this is not supported for Cyclic yet
  • performance: generally, Cyclic should behave as similarly to Block as possible for idioms that are independent of distribution, such as:
    • embarrassingly parallel computations (e.g., stream variants)
    • random access (local vs. remote)