1. A computer-implemented method of calculating routing costs for a multi-step computation in a multiprocessor computing system, comprising: calculating a link cost at a current step of the computation, wherein said link cost comprises: a communication cost of routing data from a current processor configured to execute the current step of the computation to a subsequent processor configured to execute a subsequent step of the computation; and a link cost at the subsequent step of the computation multiplied by a ratio of data input rates to data output rates at the current processor; determining whether multiple paths of execution of the computation exist from the current step; and if multiple paths of execution exist from the current node, adjusting the calculated link cost by a probability that execution of the computation will follow a path proceeding directly from the current step to the subsequent step.