1. A method of executing an application on a parallel computer, the parallel computer comprising a plurality of compute nodes connected together through a data communications network, the application carried out by a plurality of tasks, the method comprising: executing, by a current compute node, a current task of the application, including producing results; determining, by the current compute node in dependence upon current network characteristics and application characteristics, whether to transfer the results to a next compute node for further processing by a next task on the next compute node or to execute the next task for further processing of the results on the current compute node; transferring, by the current compute node, the results to the next compute node for further processing by the next task on the next compute node if the determination specifies transferring the results to the next compute node; and executing, by the current compute node, the next task for further processing of the results if the determination specifies executing the next task on the current compute node.