/tasks_time

Expected time until all tasks in an intree are processed.

Primary LanguageTeX

tasks_time
===========

This is a collection of tools that is used to research scheduling 
strategies for intrees of tasks that are exponentially distributed.
Other distributions and/or task dependency layouts (such as DAGs)
can be incorporated, but are currently not part of the program.

Components
----------

* tasks: A program that can be used to generate a DAG of snapshots
  and to generate visualization of that DAG. Use `--tikz` and 
  `--dagview` as command line arguments to generate visualization.
* dagviewer.py: A small tool to research the visual output generated
  by the tasks program (`--dagview`) and to adjust and examine the 
  scheduling strategy on demand.

Requirements
------------

* It is probably highly advantageous to build and run this stuff
  on a linux system. It *may* work on a windows machine with only minor
  modifications.
* scons to build the program, just invoke `scons` to build with
  default parameters. Invoke `scons -h` to get an overview about the
  compilation options.
* gcc4.9 (might work with earlier versions and other compilers, though)
* Boost::program_options
* Boost::spirit (used to parse input descriptions of trees)

Optional
--------

* Boost::rational (only if built with `MYFLOAT=2` or `MYFLOAT=3`)
* gmp library (only if built with `MYFLOAT=4`)
* Boost::python (only if built with `PYTHON_TESTS=1`)
* Boost::filesystem (only if built with `PYTHON_TESTS=1`)

Building
--------

If you are impatient, just run `scons` from within the `src` directory. By
default, the program is built with quite heavy optimization and uses floats
to represent probabilities and expectancies.  
The resulting program is `build/tasks`.  
Run `scons -h` to get an overview about the possible options.

Running
-------

To see a list of options, run `build/tasks -h`.