Simulation Controller module
Class diagram
See the DutView documentation for available interfaces.
Sequenz for many simulations in parallel
sim_con Module documentation
This module supplies a class to manage all simulations, regardless of the device simulator.
It works together with the DutView class, which is the subclass of all device simulators. Features:
Manages all simulations in a unified way, independent of the actual simulation backend.
Supports to run simulations on multiple cores in parallel
Supports to run simulations on a remote server (including file up- and download)
Author: Mario Krattenmacher | mario.krattenmacher@semimod.de Author: Markus Müller | markus.mueller@semimod.de
- class DMT.core.sim_con.SimCon(*args, **kwargs)[source]
Bases:
object
Simulation controller class. SINGLETON design pattern.
- Parameters:
- Attributes:
- n_core
int
Number of cores that shall be used for simulations.
- t_max
float
Timeout for simulations. If a simulation runs longer than t_max in seconds, it is killed.
- sim_list[{‘dut’:
DutView
, ‘sweep’:Sweep
}] A list of dicts containing the queued simulations. Each dict holds a ‘dut’ key value pair and a ‘sweep’ key value pair.
- ssh_client
Client to execute SSH commands on a remote server.
- scp_client
Client to transfer files to a remote server via SCP.
- n_core
- append_simulation(dut: List[DutView] | DutView | None = None, sweep: List[Sweep] | Sweep | None = None)[source]
Adds DutViews together with Sweeps to the list of simulations sim_list.
This methods adds each dut with a copy of each sweep to the simulation list.
- copy_from_server(dut, sweep, zip_result=True)[source]
Collects the simulation data from the server.
- Parameters:
- dut
DutView
- sweep
Sweep
- zip_resultbool,
optional
If True, the result is zipped before transfer, the zip is copied and then unzipped locally.
- dut
- copy_log_from_server(dut, sweep)[source]
Collects the simulation log file from the server.
- Parameters:
- dut
DutView
- sweep
Sweep
- dut
- copy_zip_to_server(sims_to_zip)[source]
Copies the simulation data to the server. Before doing this, old simulation data is deleted
- run_and_read(force=False, remove_simulations=False, parallel_read=False, validate=True)[source]
Run all queued simulations and load the results into the Duts’ databases.
- Parameters:
- forcebool,
optional
If True, the simulations will be run and saved back. If False, the simulations will only be run if that has not already been done before. This is ensured using the hash system., by default False
- remove_simulationsbool,
optional
If True, the simulation results will be deleted after read in, by default False. Activate to save disk space.
- parallel_readbool,
optional
If True, the simulation results are read in using joblib parallel, by default False. Is False because some simulators have issues with this…
- forcebool,
- Returns: