A list scheduling heuristic for allocating the task graph to multiprocessors