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.