1. In a computing environment, a method of reshaping an array from a range-partitioned flattened representation to a local, reshaped representation of the array, where different portions of the array are stored in different locales of a distributed system, the method comprising: an act of identifying a block length parameter that describes the number of data blocks in the range-partitioned flattened representation of the array that appear consecutively in each locale; an act of identifying a stride parameter that describes the amount of separation between data blocks in the range-partitioned flattened representation of the array that appear consecutively in a plurality of locales; based on the identified block length parameter and the stride parameter, an act of determining which of the data blocks on the plurality of locales are to be sent to one or more other locales to produce a local version of the reshaped array; an act of initiating the data block transfer between the data blocks of the various locales; an act of receiving one or more data blocks from the plurality of locales in the distributed system; and an act of reconstructing the array based on the received blocks to create a local version of the reshaped array.