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
258 Views Asked by Flontis At
2
There are 2 best solutions below
4
btilly
On
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.
Related Questions in ALGORITHM
- MCNP 6 - Doubts about cells
- Given partially sorted array of type x<y => first apperance of x comes before first of y, sort in average O(n)
- What is the algorithm behind math.gcd and why it is faster Euclidean algorithm?
- Purpose of last 2 while loops in the merge algorithm of merge sort sorting technique
- Dots and Boxes with apha-beta pruning
- What is the average and worst-case time complexity of my string searching algorithm?
- Building a School Schedule Generator
- TC problem 5-2:how to calculate the probability of the indicator random variable?
- LCA of a binary tree implemented in Python
- Identify the checksum algorithm
- Algorithm for finding a subset of nodes in a weighted connected graph such that the distance between any pair nodes are under a postive number?
- Creating an efficent and time-saving algorithm to find difference between greater than and lesser than combination
- Algorithm to find neighbours of point by distance with no repeats
- Asking code suggestions about data structure and algorithm
- Heap sort with multithreading
Related Questions in PARALLEL-PROCESSING
- How to calculate Matrix exponential with Tailor series PARALLEL using MPI c++
- Efficiently processing many small elements of a collection concurrently in Java
- Parallelize filling of Eigen Matrix in C++
- Memory efficient parallel repeated rarefaction with subsequent matrix addition of large data set
- How to publish messages to RabbitMQ by using Multi threading?
- Running a C++ Program with CMake, MPI and OpenCV
- Alternative approach to io.ReadAll to store memory consumption and send a PUT Request with valid data
- Parallelize nested loop with running sum in Fortran
- Can I use parfor within a parfeval in Matlab R2019b and if yes how?
- Parallel testing with cucumber, selenium and junit 5
- Parallel.ForEach vs ActionBlock
- Passing variable to foreach-object -parallel which is with in start-job
- dbatools SQL Functions Not Running In Parallel While SQL Server queries do in Powershell
- How do I run multiple instances of my Powershell function in parallel?
- Joblib.parallel vs concurrent.futures
Related Questions in JOB-SCHEDULING
- OR Tools cp model performance for flexible job shop scheduling with transitions
- OR Tools problem with 'scheduling_with_transitions_sat' job shop scheduling example from GitHub
- OR Tools Job Shop Scheduling for multiple machines with setup times
- How to redirect the output of Start-ThreadJob with -StreamingHost parameter to a variable in PowerShell?
- SQL Server Job execution after the job stopped
- recovering jobs after server shutdown in Quartz
- How to chain jobs in Dagster?
- Will it be alright if I put a multithreaded (OMP) job and a multiprocess (MPI) job together on the same node (2 cpu sockets)?
- Bot telegram didnt work on dev environment
- Can you pass multiple arguments into jobs.put?
- oracle job "next run date"
- Count Number of Non Consecutive Occurrence of values in Google sheets
- Retrieve a List of all the CAWA Applications
- JupyterLab Job Scheduler
- Constraint Progrraming No solution
Related Questions in PARALLELISM-AMDAHL
- OpenMP-based loop with reduction scales poorly
- Is it legal to use Amdahl's law in the inverse way? How many threads should I use?
- Calculating theoretical speedup using Amdahl's Law
- Determining the Parallel and Serial Region of Code and Calculating Speedup using Amdahl's Law
- CPU utilization calculation in Amdahl's law
- What is the performance of 100 processors capable of 2 GFLOPs running 2% sequential and 98% parallelizable code?
- Evaluating methods in parallel
- Very slow example parallel code in python, slower then serial
- Why my code runs so much slower with joblib.Parallel() than without?
- How to call same function in parallel with executor service in JAVA?
- Performance measure on data sizes and identical resources
- Trying to understand Amdahl's Law
- How to apply Amdahl's law on a given piece of code?
- What is Gustafson's law trying to argue?
- Processor Speedup Calculation Difference
Related Questions in OCCAM-PI
- N-jobs on M-machines with Precedence Graph and different execution times
- Print the amount of characters that is given in the input
- How to do a bubble sort in Occam
- What are the common characteristics in occam and csp?
- What is the simplest way of terminating (poisoning) a producer process in occam?
- Why do CSP implementations only cover channels?
- Really can't understand why my program isn't working
- occam-pi: extended rendezvous
- Occam text animation
- Introduction to Occam 2
- Is Occam-pi a good language to learn to program LEGO MINDSTORMS & Surveyor Corporation SRV-1?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
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/
ALTs 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.