Scheduling task dependence graphs with variable task execution times onto heterogeneous multiprocessors