A Scheduling Framework for a Heterogeneous Parallel Architecture