1. A computer system including instructions recorded on a computer-readable medium and executable by at least one processor, the system comprising: a scheduler configured to cause the processor to receive a plurality of jobs for scheduling of execution thereof on a plurality of computing nodes; an evaluation module configured to cause the processor to provide a common interface for each of a plurality of scheduling algorithms; an algorithm selector configured to cause the processor to utilize the evaluation module in conjunction with benchmark data for a plurality of jobs of varying types to associate one of the plurality of scheduling algorithms with each job type; and a job comparator configured to cause the processor to compare a current job for scheduling against the benchmark data to determine a current job type of the current job, wherein the evaluation module is further configured to schedule the current job for execution on the plurality of computing nodes, based on the current job type and the associated scheduling algorithm, and wherein the system further includes a task scheduler configured to cause the at least one processor to implement, after the scheduling of the current job on a selected computing node, at least one scheduling algorithm of the plurality of scheduling algorithms to obtain a task schedule for individual tasks of the current job on the selected computing node, the task scheduler being further configured to identify a task as a stalling candidate requiring task data over a network and associated with an execution gap caused by a network delay in obtaining the task data, define a completion timeline for the task schedule including discrete time units, expand a search space for scheduling the individual tasks including one or both of increasing a length of the completion timeline or decreasing a length of the discrete time units, and execute the at least one scheduling algorithm of the plurality of scheduling algorithms, including using the execution gap to schedule a separate task of a separate job being executed in parallel with the current job, to thereby obtain the task schedule.