chronovise

chronovise: Measurement-Based Probabilistic Timing Analysis framework - Published in JOSS (2018)

https://github.com/federeghe/chronovise

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

mbpta real-time research-tool wcet
Last synced: 6 months ago · JSON representation

Repository

Measurement-Based Probabilistic Timing Analysis framework

Basic Info
  • Host: GitHub
  • Owner: federeghe
  • License: apache-2.0
  • Language: C++
  • Default Branch: master
  • Size: 19.7 MB
Statistics
  • Stars: 6
  • Watchers: 2
  • Forks: 6
  • Open Issues: 5
  • Releases: 1
Topics
mbpta real-time research-tool wcet
Created over 8 years ago · Last pushed 12 months ago
Metadata Files
Readme License

README.md

chronovise

Logo Chronovise

chronovise is a framework to perform Measurement-Based Probabilistic Timing Analyses (MBPTA). MBPTA is a recent proposed technique in the field of probabilistic real-time computing, that relies on execution time observations to infer the probabilistic Worst-Case Execution Time (pWCET). The framework has been developed to be easily customizable and adaptable by the researcher for both testing new MBPTA algorithms and evaluating the pWCET of a certain system/software.

| Branch | Description | Status | |--------------|----------------|--------------| | master | Stable | Build Status | | master-next | Development | Build Status | | master | Coverage | Coverage Status | | - | Paper | status |

What you need

  • A modern compiler with C++14 support (gcc >= 5.0 or clang/LLVM >= 4.0) and the CMake building tool.
  • The code should be cross-platform because we do not use any Linux-specific feature. However, we usually test it only on Linux. Please fill a bug if it does not work with other operating systems.

Dependencies: * [optional] ceres-solver installed (both libraries and header files). You can use one of the distribution package -- e.g. Ubuntu*, Fedora, Arch Linux -- or build it from the source. Please check the ceres-solver documentation. This package is needed if you want to run Maximum Likelihood Estimation routines. * [optional] Google Test if you want to run the test suite.

* Be aware that the current Ubuntu package has a dependency bug.

Building

To build the main library and the examples, perform the standard git and cmake sequence of commands: bash $ git clone https://github.com/federeghe/chronovise.git $ cd chronovise $ mkdir build $ cd build $ cmake ..

If you do not have access to ceres-solver you can disable modules that depends on it specifying the appropriate macro in cmake command (default: CERES_SOLVER is ON):

$ cmake -DCERES_SOLVER=OFF ..

You can also enable OpenMP to speedup the EVT process (default: USE_OPENMP is OFF):

$ cmake -DUSE_OPENMP=ON ..

In case that you have multiple complilers installed in your system, you can specify a compatible compiler as follows:

$ CC=gcc-5 CXX=g++-5 cmake ..

Then, to compile:

$ make

(you can also specify the appropriate -j option to make to decrease the compilation time).

Test suite

The test suite is based on Google Test, so you need to install it in your machine before proceeding. If you are not going to develop the chronovise framework you don't probably need the test suite and you can skip this section.

Building the test suite (pay attention to tests):

make tests

and run it:

make check

This may take some minutes to complete. Please note that occasionally the test suite can fail: some tests are based on random samples and it can infrequently happen that an unlikely configuration occurs. This is typical of statistical tests that fails with a probability of 5\%. If the test suite provides you a failure, please re-run it a couple of times to check that is not a random spot.

Run the examples

The framework is shipped with two examples automatically compiled with the framework: HelloWorld and SimpleHelloWorld. The source files are located under the samples/ directory. The HelloWorld sample application is available only if ceres-solver is available. You can run them inside the build directory via:

./samples/hello_world

and

./samples/simple_hello_world

If you do not plan to use it as a library, you may also want to check some ready-to-use applications in the directory apps.

Please read the documentation for further details.

Documentation

Goto the documentation index file.

Development & Issues & Support

Can I contribute? Sure!

The code is hosted in mirroring on GitHub and on a private university server. All bug reports and pull requests must be open on the GitHub repository. If you need support or you want to discuss new contributions please ask directly to the head developer: Federico Reghenzani .

License

This code is licensed under Apache-2.0, please refer to the LICENSE file.

The logo is a derivative work of the following original images: * the clock designed by Tkgd2007 from WikimediaCommons; * the vise designed by SmashIcon from Flaticon.

Owner

  • Name: Federico Reghenzani
  • Login: federeghe
  • Kind: user
  • Location: Italy
  • Company: Politecnico di Milano

JOSS Publication

chronovise: Measurement-Based Probabilistic Timing Analysis framework
Published
August 28, 2018
Volume 3, Issue 28, Page 711
Authors
Federico Reghenzani ORCID
Dipartimento di Elettronica, Informazione e Bioingegneria, Politecnico di Milano
Giuseppe Massari ORCID
Dipartimento di Elettronica, Informazione e Bioingegneria, Politecnico di Milano
William Fornaciari ORCID
Dipartimento di Elettronica, Informazione e Bioingegneria, Politecnico di Milano
Editor
Daniel S. Katz ORCID
Tags
probabilistic real-time mbpta worst-case execution time extreme value theory

GitHub Events

Total
  • Push event: 1
  • Pull request event: 1
  • Fork event: 2
Last Year
  • Push event: 1
  • Pull request event: 1
  • Fork event: 2

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 299
  • Total Committers: 2
  • Avg Commits per committer: 149.5
  • Development Distribution Score (DDS): 0.013
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Federico Reghenzani f****i@p****t 295
Giuseppe Massari j****a@g****m 4
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 17
  • Total pull requests: 2
  • Average time to close issues: 16 days
  • Average time to close pull requests: N/A
  • Total issue authors: 3
  • Total pull request authors: 2
  • Average comments per issue: 1.47
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • federeghe (11)
  • lkosmid (5)
  • denisovlev (1)
Pull Request Authors
  • nicolasbenatti (2)
  • AlterB (1)
Top Labels
Issue Labels
enhancement (10) invalid (1) documentation (1) bug (1)
Pull Request Labels