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 assigning the PEs to the invocations comprises evaluating a criterion that aims to maximize a likelihood that the sequence will not be executed and wherein evaluating the criterion comprises dividing the computing tasks into logical cones, wherein a maximum depth or a maximum base size of the logical cones are specified based on the likelihood.