1. A flow based scheduling method, comprising: receiving, at a computing device of a job scheduler, information pertaining to a plurality of tasks; generating, by the computing device of the job scheduler, a network flow graph using the plurality of tasks; determining, by the computing device of the job scheduler, a solution to the network flow graph; determining, by the computing device of the job scheduler, an assignment of the plurality of tasks to at least one compute node comprised within a computer cluster; and identifying a task of the plurality of tasks to run and a compute node of the at least one compute node that is to run the identified task based on the assignment, by the computing device of the job scheduler.