timescales

A benchmark generator for Metric Temporal Logic (MTL) monitoring tools

https://github.com/doganulus/timescales

Science Score: 54.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 1 committers (100.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.6%) to scientific vocabulary

Keywords

benchmark-generation benchmark-suite monitoring runtime-monitoring runtime-verification temporal-logic
Last synced: 6 months ago · JSON representation ·

Repository

A benchmark generator for Metric Temporal Logic (MTL) monitoring tools

Basic Info
  • Host: GitHub
  • Owner: doganulus
  • License: gpl-3.0
  • Language: Shell
  • Default Branch: master
  • Homepage:
  • Size: 1.2 MB
Statistics
  • Stars: 6
  • Watchers: 2
  • Forks: 2
  • Open Issues: 0
  • Releases: 0
Topics
benchmark-generation benchmark-suite monitoring runtime-monitoring runtime-verification temporal-logic
Created almost 7 years ago · Last pushed about 2 years ago
Metadata Files
Readme License Citation

README.md

timescales

timescales is a benchmark generator for Metric Temporal Logic (MTL) monitoring tools. It is originally developed for the monitoring tool Reelay but distributed standalone. It generates an MTL specification (as a standard YAML file) and an input trace (as a standard CSV file) that satisfies the formula at every time point. For the benchmark generation, a set of predefined timed properties are available through the interface. Please see the help and documentation for more information.

The purpose of these benchmarks is to measure the performance and scalability of MTL monitoring tools with respect to large timing bounds in the specification over some typical cases. Ideally, the performance of real-time monitoring tools should remain constant when the base time unit has changed. This is due to that different (parts of) systems use different time scales up to orders of magnitude and the specification of slower systems contain large timing bounds.

Use

The generator timescales includes a Makefile to demonstrate the generation of benchmarks. For each supported property, the command make small generates a benchmark that contains a specification with small timing bounds and a short trace. On the other hand, the command make large generates three benchmarks for each property with increasingly larger time bounds (1x, 10x, 100x) over traces with a length of 1 million. The large suite has a size of 400MB and is not included in the distribution. Finally the command make full extends the large suite by dense time behaviors. The large suite has a size of 550MB and is not included in the distribution. Besides these default benchkmark suites, the customization of benchmark generation can be done easily using the command line interface of timescales.

Help

The full interface of the benchmark generator timescales is as follows:

usage: timescales [OPTIONS] PROPERTY

timescales is a benchmark generator for some pre-defined metric temporal logic properties

positional arguments:
  property            Supported properties are below:
                          absence_after_q                   UBOUND
                          absence_before_r                  UBOUND
                          absence_between_q_and_r    LBOUND UBOUND

                          always_after_q                    UBOUND
                          always_before_r                   UBOUND
                          always_between_q_and_r     LBOUND UBOUND

                          recurrence_globally               UBOUND
                          recurrence_between_q_and_r        UBOUND MIN_RECUR MAX_RECUR

                          response_globally          LBOUND UBOUND
                          response_between_q_and_r   LBOUND UBOUND MIN_RECUR MAX_RECUR

optional arguments:
  -h, --help          show this help message and exit
  -d N, --duration N  define the approximate duration for the trace
  -l N, --lbound N    define the lower bound for the property if available for the property
  -u N, --ubound N    define the upper bound for the property if available for the property
  --persistent        enable persistent trace generation
  --min-recur N       define the minimum number of recurrence in the trace if available for the property
  --max-recur N       define the maximum number of recurrence in the trace if available for the property
  --name STRING       define the name of specification (default: spec)
  --condense N        define the maximum amount of condensation in the generated trace (default: 0)
  --failing-end       disable appending a sequence to the trace to make the spec fail (default: false)
  --future            generate a future MTL formula (default: past)
  --output-dir DIR    use existing DIR as the directory to write output files in (default: current)
  --format FORMAT     select the output format in {csv, json, protobuf, flatbuf} (default: json)

Benchmark RV Tools

The repository includes containerized benchmark environments for quick benchmarking for some runtime verification tools. Currently we support reelay, monpoly, aerial, and montre tools.

Reelay (https://github.com/doganulus/reelay)

git clone https://github.com/doganulus/timescales.git cd timescales make full make benchmark-reelay

Monpoly (https://bitbucket.org/monpoly/monpoly)

git clone https://github.com/doganulus/timescales.git cd timescales make full python scripts/to_monpoly.py make benchmark-monpoly

Aerial (https://bitbucket.org/traytel/aerial)

git clone https://github.com/doganulus/timescales.git cd timescales make full python scripts/to_monpoly.py make benchmark-aerial

Montre (https://github.com/doganulus/montre)

git clone https://github.com/doganulus/timescales.git cd timescales make full python scripts/to_montre.py make benchmark-montre

Cite

Dogan Ulus. "Timescales: A Benchmark Generator for MTL Monitoring Tools". In: Proceedings of the Conference on Runtime Verification (RV). 2019.

Owner

  • Name: Doğan Ulus
  • Login: doganulus
  • Kind: user
  • Location: Istanbul, TR
  • Company: Boğaziçi University @bouncmpe

Assistant Professor of Computer Science

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Ulus
    given-names: Dogan
    orcid: https://orcid.org/0000-0002-5090-1769
title: "Timescales: A Benchmark Generator for MTL Monitoring Tools"
version: 23.0
doi: 10.1007/978-3-030-32079-9_25
date-released: 2019-10-01
license: GPL-3.0
repository-code: "https://github.com/doganulus/timescales"

GitHub Events

Total
Last Year

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 77
  • Total Committers: 1
  • Avg Commits per committer: 77.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Dogan Ulus d****s@b****r 77
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

rvtools/aerial/Dockerfile docker
  • ghcr.io/doganulus/rvbenchmark-base latest build
  • ocaml/opam ubuntu-22.04-ocaml-${OCAML_VERSION} build
rvtools/dejavu/Dockerfile docker
  • ghcr.io/doganulus/rvbenchmark-base latest build
  • ubuntu 22.04 build
rvtools/monpoly/Dockerfile docker
  • ghcr.io/doganulus/rvbenchmark-base latest build
  • ocaml/opam ubuntu-22.04-ocaml-${OCAML_VERSION} build
rvtools/montre/Dockerfile docker
  • ghcr.io/doganulus/rvbenchmark-base latest build
  • ubuntu 22.04 build
rvtools/reelay2008/Dockerfile docker
  • ghcr.io/doganulus/reelay-devel latest build
  • ghcr.io/doganulus/rvbenchmark-base latest build
rvtools/rtamt/Dockerfile docker
  • ghcr.io/bounverif/rvbenchmark-base latest build
requirements.txt pypi
  • jsonlines *