1. A method for scheduling a plurality of tasks to produce a desired output, comprising: receiving an input, the input comprising a desired output, a plurality of tasks, and a plurality of data sets; generating a dependency network for the plurality of tasks; creating a schedule according to the dependency network to perform, on data from the data sets, a set of tasks comprised in the plurality of tasks to generate the desired output; and assigning the set of tasks to a plurality of processors in a multi-processor system to be performed in a plurality of processing threads, wherein at least one of the data sets comprises data representative of an image generated by a medical imaging device.