1. A computer implemented method for scalable scheduling of tasks in heterogeneous systems, the computer implemented method comprising: fetching a set of tasks to form a received input; producing a set of ordered tasks from the received input to form a task list; and assigning an identified task from the task list to an identified machine, thereby scheduling the identified task.