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 recognition tasks, and a plurality of data sets; generating a dependency network for the plurality of recognition tasks by identifying a plurality of dependencies between inputs and outputs of respective recognition tasks; creating a schedule to perform a set of recognition tasks from the plurality of recognition tasks on a data set from the plurality of data sets in order to generate the desired output; dividing the schedule into a plurality of phases based on the plurality of dependencies among the set of recognition tasks in the dependency network; assigning the set of recognition tasks to a plurality of processors in a multi-processor system to be performed in a plurality of processing threads based on the schedule; performing the set of recognition tasks in the plurality of processors based on the schedule; and generating the desired output, wherein mutually independent tasks of the set of recognition tasks are distributed to a same phase, wherein tasks of the set of recognition tasks having equivalent earliest possible starting times are distributed to the same phase; wherein the data set comprises data representative of an image comprising a plurality of graphical structures, the image being generated by a medical imaging device, further wherein the desired output comprises an identification of a specified plurality of graphical structures of the plurality of graphical structures, the identification being obtained by performing the set of recognition tasks according to the schedule.