Nessuna descrizione

Snej69420 8033a49a13 new benchmarks and plots 5 mesi fa
benchmarks 8033a49a13 new benchmarks and plots 5 mesi fa
pythonpdevs2.4.2 2cb252faa6 actually fixed selector for DCP implementation 7 mesi fa
web_service 08af1d8473 Minor fixes in Dockerfile 6 anni fa
.gitignore d1a7613532 updated git ignore 6 mesi fa
Agents benchmarks.md 8033a49a13 new benchmarks and plots 5 mesi fa
Dockerfile 03aa3eac66 Upgrading xDEVS rust version 3 anni fa
PyPDEVS benchmarks.md dd5dcbf414 updated log paths 5 mesi fa
README.md d6ee4ea44c Added memory usage measuring and reconfigured the cli, updated the readme with a 'guide' on how to run the damn thing 9 mesi fa
clean.sh 0059d5437b Added all the submodules again 3 anni fa
plotting Agents.md 8033a49a13 new benchmarks and plots 5 mesi fa
plotting PyPDEVS.md 538ec4f718 updated save path 5 mesi fa
pyproject.toml d6ee4ea44c Added memory usage measuring and reconfigured the cli, updated the readme with a 'guide' on how to run the damn thing 9 mesi fa
results_analysis.py 18825c4992 Script for simple analysis and regular flush 3 anni fa
setup.sh d6ee4ea44c Added memory usage measuring and reconfigured the cli, updated the readme with a 'guide' on how to run the damn thing 9 mesi fa
uv.lock d6ee4ea44c Added memory usage measuring and reconfigured the cli, updated the readme with a 'guide' on how to run the damn thing 9 mesi fa

README.md

devstone-comparative

Here you can find several DEVStone implementations for comparing the main DEVS engines.

Adapted to benchmark Dynamic Structure DEVS

Running the pypdevs benchmarks

First select a simulator:

  • classic
  • parallel
  • dynamic
    • classic
    • number of models to generate per cycle
  • minimal

Shared parameters:

  • path: where the results will be stored
  • filename:
  • append: will append the data to the output file instead of overwriting it
  • max width/depth: max model width/depth
  • width/depth step size:
    • determines how fast the width/depth increases to the max specified value
    • the simulation will be run for every width and depth combination
    • the step size must be a divider of the max width/depth
    • if not provided the model will run only the max width/depth
  • repetitions: number of times the exact same simulation will be repeated
  • output
  • memory: Measures the memory usage of a simulation.
  • interval: The interval at which measurements are taken.

  • model structure: each simulator has its own set of models

    • LI, HI, HO, HOmod (classic, parallel, dynamic, minimal)
    • HI2LI, LI2HI, dLI, dHI (dynamic)

For each simulation the parameters and the creation, setup and simulation time are saved to a csv file.

plotting

Measuring Memory

Run the following command, the width and depth step size parameters should be left out, to measure the memory usage of a single simulation, for the same reason the repetitions should be set to one.

uv run testPyPDEVS.py -md 100 -mw 100 -r 1 -O dynamic -ms dLI & PID=$!; python -m procpath record -i 0.1 -f stat -d output.sqlite --stop-without-result "$..children[?(@.stat.pid == $PID)]"
procpath plot -d output.sqlite -f out.svg -q rss