Newer
Older
Simulation program for typical photon science detector workloads (new wheel...) with measurement of data storage performance
## build instructions
After the git checkout:
* git submodule init
* git submodule update
* mkdir build
* cd build; cmake ..
* cd -
* make -C build
## Explanation of measured times
For each data object a number of times is measured,
some in the framework, some in the output drivers.
### Framework-measured times
These measurements are shown as "worker $function thread $threadNo".
The $functions are:
* dump: The time needed to create and fill one output object.
* idle: The time between the finish of the last event in a burst
and the beginning of the next burt in burst mode,
or the time between the finish of one event and the beginning of the next one in simple mode.
* burst: The free time between two events in a burst.
* wait: the time of the event start - the time the even *shoul* have started,
if negative we are too slow.
### driver-measured times
These measurements are done in the drivers, and are thus specific to them
#### posix and daosFS driver:
* open: the time needed to open() the output file
* write: the time needed to wtite() the data to the file
* closeL: the time needed for the close(), where e.g. for posix tha real data writing may happen!
### timing data files
For each of the measured times a file is written into the output directory,
which contain for each event the start time,
the time between start and stop,
and the number of bytes as readable numbers.
Times are in seconds (with nSec precision) since the epoch (1.1.1970).
# Simrunner
The Simrunner is a versatile tool designed for simulation purposes. It can be used independently without any external libraries, but it requires at least Python 3.9 to function properly.
For more detailed information about the available command-line arguments and options, you can refer to the JSON configuration file or run the program with the `-h` flag
Please note that the Simrunner is designed to be run on a single system. It has the capability to remotely control an arbitrary number of simulations via SSH.
## Getting Started
To get started with the Simrunner, follow these steps:
1. Ensure you have Python 3.9 or higher installed on your system.
2. Clone or download this repository to your local machine.
4. Run the Simrunner using the command: python3 main.py + arguments
## Visualizer Module
The Simrunner comes with an optional Visualizer module that provides visual representation of simulation results. To install the Visualizer module, please follow these instructions:
1. Navigate to the 'Visualizer' directory within this repository.
2. Refer to the README file located at '/visualizer' for detailed installation and usage instructions specific to the Visualizer module.
Please note that the Visualizer module is separate from the core Simrunner functionality and can be used based on your visualization needs.
For a more detailed explanation, please refer to the technical documentation or contact the development team.