Logo

software

data structures and software dependability

computer science department

brandenburg university of technology cottbus - senftenberg

S P I K E

latest update: May 14, 2019, at 11:06 AM


51.7678,14.3253,ff0000
BTU Cottbus
51.766700744628906,14.33329963684082,30509c
(24) Cottbus; Germany
51.50920104980469,-0.09549999982118607,365ab0
(18) London; United Kingdom
53.555301666259766,9.994999885559082,6383cf
(3) Hamburg; Germany
52.25,21,6383cf
(2) Warsaw; Poland
52.516700744628906,13.399999618530273,6383cf
(2) Berlin; Germany
52.160099029541016,14.555000305175781,6383cf
(2) Eisenhüttenstadt; Germany
-37.810298919677734,144.95440673828125,6383cf
(2) Melbourne; Australia
42.457000732421875,-6.0183000564575195,6383cf
(1) San Justo De La Vega; Spain
52.28580093383789,4.866700172424316,6383cf
(1) Amstelveen; Netherlands
-32.0525016784668,115.88780212402344,6383cf
(1) Willetton; Australia
51.75,-1.25,6383cf
(1) Oxford; United Kingdom











News

  • 2019-05-09 New release is ready: Spike 1.4.2.
    • minor bug fixes
  • 2019-04-27 New release is ready: Spike 1.4.1.
  • 2019-04-21 New release is ready: Spike 1.4.0.
  • 2018-10-08 First release for Linux & OSX is ready.
  • 2018-08-09 First news: we are here.

Downloads

  • Linux (Intel only, 64bit)

** page is under update

  • Mac OS X (10.12+, Intel only, 64bit)

** page is under update

  • Windows (version 10 or greater)

** page is under update

* All platforms ** page is under update test-case

See Installation for what to do with the downloaded file.

General Description

Spike is a tool for efficient and reproducible simulation of stochastic/continuous/hybrid Petri nets, coloured or uncoloured ones. It is a command line tool with a set of commands and allows for executing a configuration script to run a simulation.

Features:

  • runs on: Linux, Mac, Windows
  • support of SBML models
  • conversion between different file formats:
    • SBML to: ANDL, PNML, ERODE
    • CANDL to: ANDL, PNML, ERODE
    • ANDL to: PNML, ERODE
    • ERODE to: ANDL, PNML
  • support for simulation:
    • stochastic (Gillespie’s SSA, tau leaping, delta leaping, fau),
    • continuous (BDF, ADAMS, classic, Rosenbrock, Euler),
    • hybrid algorithms(HRSSA, accelerated HRSSA, static, accelerated static, dynamic)
  • pruning of clean siphons and constant places
  • unfolding of coloured Petri nets
  • human readable configuration script to configure model parameters and simulation options

Installation

Spike is distributed as single zip files which include a statically linked single executable and a set of examples.

Installation steps:

  1. unzip Spike's package to destination folder;
  2. optionally, rename the file spike-[version] to spike;
  3. check Spike's version by typing in the command line interface (CLI) the command:
      spike version

expected output:

      Spike: v[version number] 

Printing the list of available commands:

      spike help

or:

      spike

expected output:

      usage: help -c [command]

      commands:
        exe       execute configuration file
        version   display Spike version
        help      display help
        save      save net to file

sim command sim ??

        prune     prune net
        eval      evaluate constants & places
        unfold    unfold coloured net
        load      load net from file

Manuals and Tutorials

index


Executing a sequence of commands

Spike has a list of commands, each with its own list of parameters, which can be executed. Commands are processed in a sequential way. This means that, when the model is not in memory, the load command must be at the beginning of the command chain. Let's consider the following use case: model pruning and saving the pruned model to a file:

  spike load -f fileName prune -cs save -f prunedFileName

First, Spike has to load the model from a file into the memory, next to prune any clean siphons, and finally to save the pruned model to the given file.


Executing a configuration script

The following command will start the execution of a prepared simulation experiment by reading a configuration script.

  spike exe -f path/to/file.scp

All logs are stored in the folder named logs.

To run the configuration script examples included in the distribution kit, Spike must be executed in the directory where the examples are located; e.g.:

        spike exe -f conf-sim-andl.spc

All results and subfolders with logs will be stored under the current directory.


List of commands:

  • version - display Spike version
  • help
    • -c [command] - display help for a given command
  • exe - execute configuration script
    • -f [fileName] - loads a configuration script file from a given path
    • -p [number=1] - max number of parallel simulations; when set to 0 - tries to set the parallel simulations to the number of available cpu cores; if not successful, set to default value 1 (sequential executing)
    • -port [number=7777] - port used in the interprocess communication; the default value is set to 7777
    • -v - validate (perform dry run)
  • load - load a model from a file (ANDL, CANDL, SBML, PNML, ERODE)
    • -f [fileName] - load a file from a given path
    • -a - add scaling factors for mass/action kinetics
    • -net [CPN | SPN] - load SBML file as continuous or stochastic Petri net
    • -r - load SBML with reversible reactions
    • -b - load SBML with boundary conditions
  • save - save the model to a file
    • -f [fileName] - save a file to a given path (ANDL, CANDL, PNML, ERODE)
    • -erode [SMB | FE | BE] - while saving ERODE file extend it by a given reduction method
  • prune - pruning of clean siphons and constant places
    • -cs - prune clean siphons
    • -lcs [fileName] - load clean siphons from the file and prune
    • -scs [fileName] - save clean siphons to a file
    • -cp - prune constant places
    • -lcp [fileName] - load constant places from the file and prune
    • -scp [fileName] - save constant places to the file
  • unfold - unfold coloured Petri net
    • -e - evaluate value expressions (tokens, multiplicity)
    • -c [constantName=value,...] - specifying new values for existing constants
  • eval - evaluation of constants and places
    • -p - evaluate places
    • -c - evaluate constants

Configuration script examples

To comply with the demand for reproducible simulation experiments, Spike is supported by a script language which allows for model and simulation configuration. The structure of the script is easily readable for a user and does not require any special tools for editing: a simple text editor is enough. Models included in examples are part of Spike's distribution package.

Example 1 Example configuration which shows how to set: initial markings, value of constants, scanning of model parameters.

Example 2 Example configuration of simulation option scanning.

Example 3 Example configuration of stochastic simulation for SBML model.


Related Papers

  • [CH18]
    J Chodak and M Heiner:
    Spike - a command line tool for continuous, stochastic & hybrid simulation of (coloured) Petri nets;
    In Proc. 21th German Workshop on Algorithms and Tools for Petri Nets (AWPN 2018), University of Augsburg, pages 1-6, October 2018. [ url ] [ pdf ] [ BibTeX ]
  • [CH18.sld]
    J Chodak and M Heiner:
    Spike - a command line tool for continuous, stochastic & hybrid simulation of (coloured) Petri nets;
    Talk, AWPN2018, University of Augsburg, October 2018. [ pdf ] [ BibTeX ]

Related Tools

  • modelling tools
  • reduction of systems of ordinary differential equations (ODEs)

Bug Reports

Submit your bug reports and any comments about Spike to jacek [period] chodak [snail] b-tu [period] de

… the end …

Any comments or questions are welcome. Please direct them to monika [period] heiner [snail] b-tu [period] de Privacy Policy