Tools
Tools for performance analysis.
Benchmark Demo
- Abstract
This demo sets up a simulation with various command line arguments for benchmarking purposes. A configurable amount of participants are spawned by a single process on different threads. The demo calculates averaged running times, throughput, speed-up and message rates for performance evaluation.
- Sources
- Requirements
None (The demo starts its own instance of the registry and system controller).
- Positional Parameters
[numberOfSimulationRuns]Sets the number of simulation runs to perform.[simulationDuration]Sets the virtual simulation duration <S>.[simulationStepSize]Sets the virtual simulation step size <T>.[service]Sets the communication service type (pubsub, can or ethernet).[numberOfParticipants]Sets the number of simulation participants <N>.[messageCount]Sets the number of messages <M> to be send in each simulation step.[messageSizeInBytes]Sets the message size <B>.[registryURi]The URI of the registry to start.
- Optional Parameters
--helpShow the help message.--registry-uriThe URI of the registry to start. Default: silkit://localhost:8500--message-sizeSets the message size <B> in bytes. Default: 1000--message-countSets the number of messages <M> to be send in each simulation step. Default: 50--number-participantsSets the number of simulation participants <N>. Default: 2--number-simulation-runsSets the number of simulation runs to perform. Default: 4--simulation-step-sizeSets the simulation step size <T> (virtual time). Default: 1ms--simulation-durationSets the simulation duration <S> (virtual time). Default: 1s--serviceSets the communication service type (pubsub, can or ethernet). Default: pubsub--configurationPath and filename of the participant configuration YAML file. Default: empty--write-csvPath and filename of CSV file with benchmark results. Default: empty
- System Examples
Launch the benchmark demo with default arguments but 3 participants:
./SilKitDemoBenchmark --number-participants 3
Launch the benchmark demo with positional arguments and a configuration file that enforces TCP communication:
./SilKitDemoBenchmark 4 1 1 ethernet 2 1 10 --configuration ./SilKit-Demos/Benchmark/DemoBenchmarkDomainSocketsOff.silkit.yaml
- Notes
This benchmark demo produces timings of a configurable simulation setup. <N> participants exchange <M> messages of <B> bytes per simulation step with a simulation step size of <T> ms and run for <S> seconds (virtual time).
This simulation run is repeated <K> times and averages over all runs are calculated. Results for average runtime, speedup (virtual time/runtime), throughput (data size/runtime), message rate (count/runtime) including the standard deviation are printed.
The demo uses publish/subscribe, can or ethernet controllers. In the publish/subscribe case, the same topic for the message exchange is used, so each participant broadcasts the messages to all other participants. The configuration file
DemoBenchmarkDomainSocketsOff.silkit.yamlcan be used to disable domain socket usage for more realistic timings of TCP/IP traffic. WithDemoBenchmarkTCPNagleOff.silkit.yaml, Nagle’s algorithm and domain sockets are switched off.The demo can be wrapped in helper scripts to run parameter scans, e.g., for performance analysis regarding different message sizes. See
.\SilKit-Demos\Benchmark\msg-size-scaling\Readme.mdand.\SilKit-Demos\Benchmark\performance-diff\Readme.mdfor further information.
Latency Demo
- Abstract
A sender and a receiver application use the Publish/Subscribe services and measure the round trip time of the communication. This setup is useful to evaluate the performance of a SIL Kit setup running on different platforms. E.g., between a local host, a virtual machine, a remote network, etc.
- Sources
- Requirements
- Positional Parameters
[messageCount]Sets the number of messages to be send in each simulation step.[messageSizeInBytes]Sets the message size.[registryURi]The URI of the registry to start.
- Optional Parameters
--helpShow the help message.--isReceiverThis process is the receiving counterpart of the latency measurement. Default: false--registry-uriThe URI of the registry to start. Default: silkit://localhost:8500--message-sizeSets the message size. Default: 1000--message-countSets the number of messages to be send in each simulation step. Default: 1000--configurationPath and filename of the participant configuration YAML file. Default: empty--write-csvPath and filename of csv file with benchmark results. Default: empty
- System Examples
Launch the two LatencyDemo instances with positional arguments in separate terminals:
./SilKitDemoLatency 100 1000 ./SilKitDemoLatency 100 1000 --isReceiver
Launch the LatencyDemo instances with a configuration file that enforces TCP communication:
./SilKitDemoLatency 100 1000 --configuration ./SilKit-Demos/Benchmark/DemoBenchmarkDomainSocketsOff.silkit.yaml ./SilKitDemoLatency 100 1000 --isReceiver
- Notes
This latency demo produces timings of a configurable simulation setup. Two participants exchange <M> messages of <B> bytes without time synchronization.
The demo uses publish/subscribe controllers performing a message round trip (ping-pong) to calculate latency and throughput timings.
Note that the two participants must use the same parameters for valid measurement and one participant must use the
--isReceiverflag.