WARNING: Non-multithreaded simulators broken: Adapted serialization to multithreaded simulator
This commit is contained in:
parent
c3c0368399
commit
fff31ce6ad
@ -8,6 +8,7 @@ from pathlib import Path
|
||||
import platform
|
||||
from datetime import datetime
|
||||
import timeit
|
||||
import collections.abc
|
||||
|
||||
from utility import misc
|
||||
|
||||
@ -120,7 +121,14 @@ class SimulationDeSerializer:
|
||||
self._save_metadata(sim_name, metadata)
|
||||
|
||||
# Save results
|
||||
df = simulator.get_current_results()
|
||||
data = {}
|
||||
for key, value in simulator.get_current_results().items():
|
||||
if not isinstance(value, collections.abc.Sequence):
|
||||
value = [value]
|
||||
|
||||
data[misc.slugify(key)] = value
|
||||
|
||||
df = pd.DataFrame(data)
|
||||
df.to_csv(self._get_results_path(sim_name))
|
||||
|
||||
def read_results(self, sim_name: str) -> typing.Tuple[
|
||||
@ -165,10 +173,6 @@ class SimulationManager:
|
||||
self._metadata = {"duration": 0}
|
||||
self._sim_start_time = None
|
||||
|
||||
signal.signal(signal.SIGINT, self._exit_gracefully)
|
||||
signal.signal(signal.SIGTERM, self._exit_gracefully)
|
||||
signal.signal(signal.SIGHUP, self._exit_gracefully)
|
||||
|
||||
def _sim_configured(self) -> bool:
|
||||
"""Check whether 'configure_simulation()' has been called."""
|
||||
return (self._simulator is not None) and (
|
||||
@ -224,13 +228,16 @@ class SimulationManager:
|
||||
"""Start the simulation. This is a blocking call."""
|
||||
assert self._sim_configured()
|
||||
|
||||
self._sim_start_time = timeit.default_timer()
|
||||
try:
|
||||
self._sim_start_time = timeit.default_timer()
|
||||
|
||||
self._simulator.start()
|
||||
self._simulator.start_or_continue()
|
||||
|
||||
self._metadata["end_time"] = f"{datetime.now(tz=None)}"
|
||||
self._metadata["duration"] \
|
||||
+= timeit.default_timer() - self._sim_start_time
|
||||
self._metadata["end_time"] = f"{datetime.now(tz=None)}"
|
||||
self._metadata["duration"] \
|
||||
+= timeit.default_timer() - self._sim_start_time
|
||||
|
||||
self._de_serializer.save_results(self._simulator, self._sim_name,
|
||||
self._metadata)
|
||||
self._de_serializer.save_results(self._simulator, self._sim_name,
|
||||
self._metadata)
|
||||
except KeyboardInterrupt:
|
||||
self._exit_gracefully()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user