Skip to content

An implementation of task scheduling algorithms for a University of Auckland Software Engineering project. Group comprised of Eugene Bulog (Team Leader), Harpreet Singh, Nikhil Donthireddy, Shane Barboza, and Matthew Frost. Winner of the Parallel Speed category in a competition against the rest of the UoA third-year Software Engineering cohort

Notifications You must be signed in to change notification settings

Ormulsoft/Task-Scheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Group 15 - Task Scheduling Project

Javadocs here

Brief

The purpose of this project is to create a system that schedules a set of tasks onto an arbitrary number of processors. The input is in the form of a .DOT file, which contains a directed acyclic graph of all the tasks and their dependencies. The system is required to output an optimal schedule, that is, a valid schedule with the earliest finishing time, while retaining all the dependencies of the original graph.

Design

The design of this system uses dedicated IO classes, and object-oriented hierarchical structures for the various graphing and algorithm components. This design is exlpored in detail within the Wiki.

Algorithm

The currently implemented branch-and-bound algorithm uses a cost function calculated by computational bottom level, idle time and lastest finishing time when finding an optimal schedule.

Running

To install this project, please download the runnable JAR File submitted.
Enter the following on the command line: java -jar <filename.jar> <input_graph.DOT> <num_processors> <options...>

Building from source

To build from source, run a maven update command on the project, then run the io.main class (make sure the command-line arguments from the Running/Options section are specified in the run configuration)

Options

The following options are supported by the system:

  • -p <numberCores> The number of processor cores to use
  • -o <output_filename> The file to output to.
  • -v Flag to visualise or not.

About

An implementation of task scheduling algorithms for a University of Auckland Software Engineering project. Group comprised of Eugene Bulog (Team Leader), Harpreet Singh, Nikhil Donthireddy, Shane Barboza, and Matthew Frost. Winner of the Parallel Speed category in a competition against the rest of the UoA third-year Software Engineering cohort

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 5