Takeaway: when performing an AllGather (or a ReduceScatter or AllReduce) in a throughput-bound regime, the actual communication time depends only on the size of the array and the available bandwidth, not the number of devices over which our array is sharded!
ok nice, this means that we could (if ICI keeps constant) scale up the number of shards arbitrarily, and therefore have arbitrarily large arrays? wait wait wiat no n ono no nono, as we still need to be able to keep the weights on any one tpu at once awww manne