1. A computing method, comprising: accepting a definition of a computing task, which comprises multiple Processing Elements (PEs) having execution dependencies; compiling the computing task for concurrent execution on a multiprocessor device, by arranging the PEs in a series of two or more invocations of the multiprocessor device, including assigning the PEs to the invocations depending on the execution dependencies; and invoking the multiprocessor device to run software code that executes the series of the invocations, so as to produce a result of the computing task, wherein the multiprocessor device completes a preceding invocation before beginning a subsequent invocation in the series, such that outputs of the PEs in the preceding invocation are available as input to the PEs in the subsequent invocation.