protected override async Task Context() { await base.Context(); _simulationRunOptions = new SimulationRunOptions(); _simulation = A.Fake <IndividualSimulation>(); A.CallTo(() => _entityTask.Validate(_simulation)).Returns(true); }
protected override Task Context() { _simulationEngine = A.Fake <ISimulationEngine <IndividualSimulation> >(); _popSimulationEngine = A.Fake <ISimulationEngine <PopulationSimulation> >(); _simulationEngineFactory = A.Fake <ISimulationEngineFactory>(); _simulationPersistableUpdater = A.Fake <ISimulationPersistableUpdater>(); _lazyLoadTask = A.Fake <ILazyLoadTask>(); _entityTask = A.Fake <IEntityValidationTask>(); A.CallTo(() => _simulationEngineFactory.Create <PopulationSimulation>()).Returns(_popSimulationEngine); A.CallTo(() => _simulationEngineFactory.Create <IndividualSimulation>()).Returns(_simulationEngine); sut = new SimulationRunner(_simulationEngineFactory, _lazyLoadTask, _entityTask, _simulationPersistableUpdater); _simulationRunOptions = new SimulationRunOptions(); return(_completed); }
public SimulationRunResults RunSimulation(IModelCoreSimulation simulation, SimulationRunOptions simulationRunOptions) { try { _simulationRunOptions = simulationRunOptions; _canceled = false; doIfNotCanceled(() => loadSimulation(simulation)); doIfNotCanceled(() => FinalizeSimulation(_simModelSimulation)); doIfNotCanceled(simulate); return(new SimulationRunResults(!_canceled, _simModelSimulation.SolverWarnings, getResults(simulation))); } finally { _simModelSimulation = null; RaiseTerminated(this, EventArgs.Empty); } }
private static void performTask(string pkmlPath, int numberOfSimulationToRun) { var simulationTask = Api.GetSimulationPersister(); var concurrentSimulationRunner = Api.GetConcurrentSimulationRunner(); var begin = DateTime.UtcNow; var allSimulations = new List <Simulation>(); for (int i = 0; i < numberOfSimulationToRun; i++) { var sim = simulationTask.LoadSimulation(pkmlPath, resetIds: true); allSimulations.Add(sim); } var end = DateTime.UtcNow; var timeSpent = end - begin; Console.WriteLine($"Loading {numberOfSimulationToRun} simulations in {timeSpent.ToDisplay()}"); var simulationRunOptions = new SimulationRunOptions { NumberOfCoresToUse = Math.Max(Environment.ProcessorCount - 1, 1) }; begin = DateTime.UtcNow; concurrentSimulationRunner.SimulationRunOptions = simulationRunOptions; foreach (var simulation in allSimulations) { concurrentSimulationRunner.AddSimulation(simulation); } var res = concurrentSimulationRunner.RunConcurrently(); end = DateTime.UtcNow; timeSpent = end - begin; Console.WriteLine($"Running {numberOfSimulationToRun} simulations in {timeSpent.ToDisplay()}"); allSimulations.Clear(); doGC(concurrentSimulationRunner); }