tool for the task clustering is a free sofware to minimize the number of real-time tasks by clustering while keeping the task set schedulable. It supports DM and EDF scheduling policies in uniprocessor and multiprocessor partitionned settings. Different criteria (called CostFunctions) may be used as objective function when minimizing the number of tasks.
ttc implements the work described in
Antoine Bertout, Julien Forget, and Richard Olejnik. Minimizing a real-time task set through Task Clustering.
In Proceedings of the 22nd International Conference on Real-Time Networks and Systems (RTNS 2014), Versailles, France, October 2014
ttc requires Scala 2.11 and
- scala-xml_2.11
- scala-parser-combinators_2.11
- scalatest_2.11
- breeze 0.11.2
This project can be built with sbt 0.13. Code is documented.
object Main extends App {
val resourceName = "/taskSet" /* Read file respecting taskSet.ebnf grammar from resource directory */
val taskSet: TaskSet = TaskSetParser.taskSetFromResource(resourceName)
/* Uniprocessor */
val minTaskSet = MonoClustering.cluster(taskSet, DMresponseTimeAnalysis, MinDensity, Some(DMresponseTimeAnalysis))
/* Partitionned multiprocessor */
val taskSetMultiDep = ByLevel(taskSet, 0.65, 0.50)
val minFlows = MultiClustering.cluster(taskSetMultiDep, GlobalHeuristic, EDFqPA, MinDensity, EDFqPA, None)
}
ttc is under CeCILL licence
CeCILL licence is compatible with GNU GPL
Copyright CNRS - CRIStAL Laboratory - Emeraude Team
contributor: Antoine Bertout (2012-2015)
Copyright Antoine Bertout (2015-2016)
Disambiguation : TTC is also the name of a french rap band composed by ideal sons-in-law