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
257 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
- Two different numbers in an array which their sum equals to a given value
- Given two arrays of positive numbers, re-arrange them to form a resulting array, resulting array contains the elements in the same given sequence
- Time complexity of the algorithm?
- Find a MST in O(V+E) Time in a Graph
- Why k and l for LSH used for approximate nearest neighbours?
- How to count the number of ways of choosing of k equal substrings from a List L(the list of All Substrings)
- Issues with reversing the linkedlist
- Finding first non-repeating number in integer array
- Finding average of an array
- How to check for duplicates with less time in a list over 9000 elements by python
- How to pick a number based on probability?
- Insertion Sort help in javascript -- Khan Academy
- Developing a Checkers (Draughts) engine, how to begin?
- Can Bellman-Ford algorithm be used to find shorthest path on a graph with only positive edges?
- What is the function for the KMP Failure Algorithm?
Related Questions in PARALLEL-PROCESSING
- Async vs Horizontal scaling
- Scattered indices in MPI
- How to perform parallel processes for different groups in a folder?
- Julia parallel programming - Making existing function available to all workers
- Running scala futures somewhat in parallel
- running a thread in parallel
- How to make DGEMM execute sequentially instead of in parallel in Matlab Mex Function
- Running time foreach package
- How to parallelize csh script with nested loop
- SSIS ETL parallel extraction from a AS400 file
- Fill an array with spmd in Matlab
- Distribute lines of code to workers
- Java 8 parallelStream for concurrent Database / REST call
- OutOfRangeException with Parallel.For
- R Nested Foreach Parallelization not Working
Related Questions in JOB-SCHEDULING
- Javascript: Schedule HTTP requests for later
- Scheduling multiple instance of a single java process
- Automate an Ant Script to run at set times
- How to integrate spring-xd batch jobs with Control-M scheduler
- quartz job suspended while creating httpclient
- Greedy algorithm: highest value first vs earliest deadline first
- Defining node agenda jobs for these use cases
- Cannot create bean when start the application
- If I use both @PostConstruct and @Scheduled on a bean method what will be the consequences
- Get feedback from a scheduled job while it is processed
- Is it possible to run jobs on remote executors with APScheduler?
- job scheduler not working in xiaomi android
- UC4 Job Execution with Webservice
- How can one store a mutable set of items `(t, p)` so that queries for the `k` items with minimized `(n-t)*p` for some `n` are efficient?
- How to create a async Oracle job to run in multiple instances
Related Questions in PARALLELISM-AMDAHL
- Why Amdahl Law on serial and parallel fractions does not provide a theoretical speedup of 4 on quad-core CPU?
- Working through an example of Amdahl's Law with respect to percentage speedup
- Why is a Compare-And-Swap operation limited by Amdahl's law?
- Is it legal to use Amdahl's law in the inverse way? How many threads should I use?
- How to parallelize a class method in python?
- Negative speed up in Amdahl's law?
- Evaluating methods in parallel
- What is the performance of 100 processors capable of 2 GFLOPs running 2% sequential and 98% parallelizable code?
- CPU utilization calculation in Amdahl's law
- Is it beneficial to parallelize variable declaration?
- Why my code runs so much slower with joblib.Parallel() than without?
- Very slow example parallel code in python, slower then serial
- Does python's Pool() for parallelization prevent writing to global variables?
- Why python multiprocessing takes more time than serial code? How to speedup this?
- RegCM, MPICH, Computer Clustering
Related Questions in OCCAM-PI
- Occam text animation
- N-jobs on M-machines with Precedence Graph and different execution times
- Really can't understand why my program isn't working
- How to do a bubble sort in Occam
- Introduction to Occam 2
- occam-pi: extended rendezvous
- Why do CSP implementations only cover channels?
- What is the simplest way of terminating (poisoning) a producer process in occam?
- What are the common characteristics in occam and csp?
- Print the amount of characters that is given in the input
- 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 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.