1. A method of dispatching tasks in a dispatcher within a multi-processor computing environment comprising the steps of: receiving job properties for a plurality of jobs, including multi-task jobs, to be processed in the multi-processor computing environment, each job comprising at least one task, wherein the job properties comprise an estimated processing time for each task, and the job properties for each multi-task job comprise an estimated critical path length, an estimated total processing time, and precedence constraints among tasks; employing an initial dispatching rule from a plurality of dispatching rules to assign an initial subset of tasks to processors within the multi-processor computing environment; monitoring system status of the multi-processor computing environment; selecting a second dispatching rule from the plurality of dispatching rules in response to a change in the system status; and employing the second dispatching rule to assign a second subset of tasks to the processors.