Let's assume I have n jobs and m machines. The jobs have precedence constraints (given in a directed, acyclic graph) and different execution times. The schedule must NOT be preemptive. What's the best algorithm to schedule them? Any suggestions? I know it's NP-hard in general, so heuristics are also okay. I would consider Hu Level Scheduling as given here http://web.cecs.pdx.edu/~mperkows/temp/0002.scheduling2.pdf but if I understand it right, it assumes equal execution times.
N-jobs on M-machines with Precedence Graph and different execution times
236 Views Asked by Flontis At
2
There are 2 best solutions below
4

I would suggest a greedy heuristic.
Suppose that your jobs have an execution_time
and children. Let the dependency_time
be execution_time
for leaf jobs, and execution_time + max(dependency_time for children)
for other jobs.
At every step, schedule the available job with the largest dependency_time
.
Example of Solution
This was used by ESA Giotto Satellite to fly into deep Space: the Halley Comet.
Pioneered by prof. C. A. R. Hoare a new, deterministic (unless external events/stimuli/
ALT
s present) scheduling was made possible for solving concurrency problems.Based on a π-calculus driven scheduling, the π-algebra solves dependencies for
N
-jobs onM
-resources given DAG dependencies and permits both variable job-duration and inter-process-communications ( using a pioneered technique of separating jobs, keeping them pair-interconnected with cheap, fast and exclusive-use CSP-channels, if needs exist, to exchange pieces of information in a still deterministic and scheduling non-devastating manner ).This
main()
used an exemplified case of DAG-defined dependencies for~ 21
-jobs having variable durations and was run on-line:The code is made runnable online for any experimentation with true-
[PARALLEL]
system designs - the only pity is, that InMOS Transputers got substituted by their platform's x86-CPU-core(s) with restricted powers for "wilder"PAR
-sections.Enjoy any further hacking into π-calculus driven scheduling:
Credit : credit goes to @bazza for reminding of this memorable Occam-pi space mission.