Model . SchedulerParallel - SeanSpires/Project1-306-Team-Stonks GitHub Wiki
This class finds the optimal schedule using parallelisation by utilising multiple threads to search through different schedules.
| Method | Purpose |
|---|---|
| Node createOptimalSchedule(List tasks, int numProc, int numCores, MenuController controller) | Creates multiple threads to search through different schedules Once one thread finds the optimal schedules, the other threads are killed and optimal schedule is returned |
| boolean containsParents(Node node, Task t) | Checks whether parent tasks of task t are scheduled |
| int calcMakeSpan(Node node) | Finds the end time of the schedule |
| long calcLowerBound(Node node, int numProc) | Calculates the end time if the rest of the tasks were to be scheduled directly one after the other. |
| long calcUpperBound(Node node, int numProc) | Calculates a greedy estimate of a completed schedule from the current node |
| Task PickGreedyTask(Node node) | Picks task with smallest weight provided all its dependencies are fulfilled |
| int getStartTime(int proc, Task task, Node node) | Finds start time for a task on a given a process and schedule |