1. A method for configuring a system comprising a plurality of computation units interconnected by an interconnection network, the method comprising: receiving by a computing system an initial partitioning of instructions into initial subsets corresponding to different portions of a program; forming by the computing system a refined partitioning of the instructions into refined subsets each including one or more of the initial subsets, including: determining whether to combine a first subset and a second subset of the initial subsets to form a third subset based at least in part on a comparison of a communication cost between the first subset and second subset to a load cost of the third subset that is based at least in part on a number of instructions issued per cycle by a computation unit; and assigning each refined subset of instructions to one of the computation units for execution on the assigned computation unit.