The PulseScenarioDriver executable is run via the command terminal and takes in a scenario file. The scenario file contains instructions for the engine to execute, and the requested engine data it will write to a 'results' file. The results file is a simple csv (comma separated values) file that contains the value of the data requested for every time step the engine calculated. Time is always the first column, and each row contains all the values associated with the value in the time column.
Executing the PulseScenarioDriver
From a command prompt/terminal from
<pulse/bin>, run the following command to execute the driver :
# On Windows > .\PulseScenarioDriver.exe VitalsMonitor.json # On Mac\Linux $ ./PulseScenarioDriver VitalsMonitor.json
As the driver runs, it will output a VitalsMonitor.log and VitalsMonitorResults.csv file in the working directory
Pulse System Requirements
The PulseScenarioDriver provides an accurate measurement of how fast the host platform can execute the engine the calculations performed by outputting timing metrics to the terminal. You may also use various system tools to determine how much memory and processing power the engine is using on the host platform. Note that the Pulse engine only runs in a single thread.
You can watch the log data output to the terminal during execution and you can view how long the engine is taking to simulate time by looking for these messages :
# During stabilization [INFO] : [0(s)] Converging to a steady state [INFO] : [20.04(s)] Converging System... it took 2.26s to simulate the past 10s # During command execution [INFO] : [60(s)] Current Time is 60s, it took 14.629s to simulate the past 60s
Again, Pulse run-times are dependent on the platform processor and hardware. These are the compute times on my Surface Pro 3. Generally we see the following timing metrics :
- 5-10s to simulate 60s on a mid->high end Desktops and Laptops
- 10-15s to simulate 60s on low->mid grade Desktops and Laptops
- 55s to simulate 60s on a Raspberry Pi 3
We are continuing to test our engine on various platforms and investigate ways to help speed our engine up.