# FTQ

(Added links to the ftqviz tool and a screenshot) |
(Added ftq download link) |
||

(10 intermediate revisions by 2 users not shown) | |||

Line 1: | Line 1: | ||

− | |||

− | |||

= Fixed Time Quanta (FTQ) = | = Fixed Time Quanta (FTQ) = | ||

− | The FTQ benchmark takes a time based approach, rather than a workload based, approach to analyzing deterministic processing behavior of operating systems. | + | The FTQ benchmark takes a time based approach, rather than a workload based, approach to analyzing deterministic processing behavior of operating systems. |

− | + | Simply put, rather than doing a fixed unit of work, and measuring how long that work took; FTQ measures | |

− | + | the amount of work done in a fixed time quantum. The time quantum is short, typically around | |

+ | one microsecond, and many | ||

+ | measurements are taken. The benchmark is carefully designed to | ||

+ | ensure that the time interval is closely adhered to, and the code is also careful to ensure that the | ||

+ | sample intervals start at well-defined, periodic intervals. In other words, given a time | ||

+ | interval T, we ensure that sampling starts at t, t+T, t+2T, ... and so on. This last property is | ||

+ | key to producing good statistics for use in post-processing. We correctly manage the problems that occur when the process is interrupted at, e.g., t+2.5T, and restarted at, e.g., t+5T. | ||

+ | What's the difference, you might wonder, between measuring the time to do a fixed piece of | ||

+ | work and the amount of work that can be done in a fixed piece of time? As it happens, it's all | ||

+ | the difference in the world! Consider how hard it would be, for example, to reason about | ||

+ | audio frequency in terms of seconds per cycle. It would be difficult at best to compare different noises by their spectra, as we do now. Instead, once we characterize audio sounds by cycles per second, we can easily compare them. It is natural to think of periodic phenomena in time-based terms. | ||

− | = Visualization Tools = | + | By making time the independent variable, and work the dependent variable, we can look for frequency artifacts -- such as daemons waking up as the select loop times out -- and their impact on system performance. The time based approach allows for more advanced analysis of the results than workload based benchmarks. For example, with results in the format of "units of work per fixed time period" rather than "amount of time per fixed workload", the analysis can examine the frequency domain and point to periodic problems. In practice we can see interference artifacts of up to several Khz. |

+ | |||

+ | == FTQ In the Industry == | ||

+ | |||

+ | FTQ has found usage in a number of computer firms (including IBM) and is going to be used | ||

+ | to characterize future computer systems being purchased by a government agency (more when | ||

+ | that is released). | ||

+ | |||

+ | == Download FTQ == | ||

+ | * [http://sourceforge.net/project/showfiles.php?group_id=166157 Sourceforge Chamatools Download] | ||

+ | |||

+ | = FTQ Visualization Tools = | ||

The output if FTQ is raw data in two files, containing time in one and corresponding units of work in the other. Any number of scientific analysis packages can be used to visualize and interpret these results. I have put together a frequency domain visualization tool which plots the time plot and the fast fourier transform of a pair of output files. It uses [http://www.python.org/ python], [http://numpy.scipy.org/ numpy], [http://matplotlib.sourceforge.net/ pylab], and [http://www.scipy.org/ scipy], to present interactive plots. | The output if FTQ is raw data in two files, containing time in one and corresponding units of work in the other. Any number of scientific analysis packages can be used to visualize and interpret these results. I have put together a frequency domain visualization tool which plots the time plot and the fast fourier transform of a pair of output files. It uses [http://www.python.org/ python], [http://numpy.scipy.org/ numpy], [http://matplotlib.sourceforge.net/ pylab], and [http://www.scipy.org/ scipy], to present interactive plots. | ||

− | I am certainly not a Signals and Systems expert, I'd welcome any input on the approaches taken to portray the frequency domain of the results. In particular, the interpolation approach I've taken to ensure the sampling period is uniform is something I would like some expert feedback on. | + | {{Todo|Need Input}} I am certainly not a Signals and Systems expert, I'd welcome any input on the approaches taken to portray the frequency domain of the results. In particular, the interpolation approach I've taken to ensure the sampling period is uniform is something I would like some expert feedback on. |

== Requirements == | == Requirements == | ||

Line 19: | Line 38: | ||

* [http://www.scipy.org/ scipy scipy] (debian package: python-scipy) | * [http://www.scipy.org/ scipy scipy] (debian package: python-scipy) | ||

* [http://matplotlib.sourceforge.net pylab] (debian package: python-matplotlib) | * [http://matplotlib.sourceforge.net pylab] (debian package: python-matplotlib) | ||

+ | |||

+ | Octave can also be used to process FTQ output, and some examples are provided in the FTQ distribution. | ||

== Screenshots == | == Screenshots == | ||

− | [[http://www.kernel.org/pub/linux/kernel/people/dvhart/realtime/tools/ftqviz/ftqviz_screenshot.png Screenshot 0]] | + | * [[http://www.kernel.org/pub/linux/kernel/people/dvhart/realtime/tools/ftqviz/ftqviz_screenshot.png Screenshot 0]] |

== Download ftqviz == | == Download ftqviz == | ||

* [http://www.kernel.org/pub/linux/kernel/people/dvhart/realtime/tools/ftqviz/ftqviz.py ftqviz.py] | * [http://www.kernel.org/pub/linux/kernel/people/dvhart/realtime/tools/ftqviz/ftqviz.py ftqviz.py] |

## Latest revision as of 23:16, 18 October 2007

## Contents |

# [edit] Fixed Time Quanta (FTQ)

The FTQ benchmark takes a time based approach, rather than a workload based, approach to analyzing deterministic processing behavior of operating systems.

Simply put, rather than doing a fixed unit of work, and measuring how long that work took; FTQ measures the amount of work done in a fixed time quantum. The time quantum is short, typically around one microsecond, and many measurements are taken. The benchmark is carefully designed to ensure that the time interval is closely adhered to, and the code is also careful to ensure that the sample intervals start at well-defined, periodic intervals. In other words, given a time interval T, we ensure that sampling starts at t, t+T, t+2T, ... and so on. This last property is key to producing good statistics for use in post-processing. We correctly manage the problems that occur when the process is interrupted at, e.g., t+2.5T, and restarted at, e.g., t+5T.

What's the difference, you might wonder, between measuring the time to do a fixed piece of work and the amount of work that can be done in a fixed piece of time? As it happens, it's all the difference in the world! Consider how hard it would be, for example, to reason about audio frequency in terms of seconds per cycle. It would be difficult at best to compare different noises by their spectra, as we do now. Instead, once we characterize audio sounds by cycles per second, we can easily compare them. It is natural to think of periodic phenomena in time-based terms.

By making time the independent variable, and work the dependent variable, we can look for frequency artifacts -- such as daemons waking up as the select loop times out -- and their impact on system performance. The time based approach allows for more advanced analysis of the results than workload based benchmarks. For example, with results in the format of "units of work per fixed time period" rather than "amount of time per fixed workload", the analysis can examine the frequency domain and point to periodic problems. In practice we can see interference artifacts of up to several Khz.

## [edit] FTQ In the Industry

FTQ has found usage in a number of computer firms (including IBM) and is going to be used to characterize future computer systems being purchased by a government agency (more when that is released).

## [edit] Download FTQ

# [edit] FTQ Visualization Tools

The output if FTQ is raw data in two files, containing time in one and corresponding units of work in the other. Any number of scientific analysis packages can be used to visualize and interpret these results. I have put together a frequency domain visualization tool which plots the time plot and the fast fourier transform of a pair of output files. It uses python, numpy, pylab, and scipy, to present interactive plots.

TODO |
Need Input |

## [edit] Requirements

- python (debian package: python)
- numpy (debian package: python-numeric)
- scipy scipy (debian package: python-scipy)
- pylab (debian package: python-matplotlib)

Octave can also be used to process FTQ output, and some examples are provided in the FTQ distribution.