public async Task FindExperiments() { ExperimentDefinition def1 = ExperimentDefinition.Create("LinearEquationSolver.exe", ExperimentDefinition.LocalDiskContainerUri, "benchmarks_2", "csv", "{0} 1", TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(0), "default", category: "IdentitySquare"); ExperimentDefinition def2 = ExperimentDefinition.Create("LinearEquationSolver.exe", ExperimentDefinition.LocalDiskContainerUri, "benchmarks_2", "csv", "{0} 2", TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(0), "default", category: "IdentitySquare"); ExperimentManager manager = NewManager(); var e1 = await manager.StartExperiment(def1); var e2 = await manager.StartExperiment(def1); var e4 = await manager.StartExperiment(def2); var r1 = await Task.WhenAll(manager.GetResults(e1)); var r2 = await Task.WhenAll(manager.GetResults(e2)); var r4 = await Task.WhenAll(manager.GetResults(e4)); var loaded = (await manager.FindExperiments()).ToArray(); Assert.AreEqual(3, loaded.Length, "Number of found experiments (same manager)"); var manager2 = OpenManager(manager); var loaded2 = (await manager2.FindExperiments()).ToArray(); Assert.AreEqual(3, loaded2.Length, "Number of found experiments (reloaded)"); var loaded3 = (await manager2.FindExperiments(new ExperimentManager.ExperimentFilter { ParametersEquals = "{0} 2" })).ToArray(); Assert.AreEqual(1, loaded3.Length, "Number of found experiments (reloaded, filtered)"); }
void StartExperiment() { visaulEffectManager.Init(); camera.clearFlags = CameraClearFlags.Skybox; playGround.SetActive(true); ExperimentManager.StartExperiment(); // gameObject.SetActive(false); }
static async Task Run(ExperimentManager manager, ExperimentDefinition definition) { int id = await manager.StartExperiment(definition); var results = manager.GetResults(id); var filter = new ExperimentManager.ExperimentFilter { BenchmarkContainerEquals = definition.BenchmarkDirectory, CategoryEquals = definition.Category, ExecutableEquals = definition.Executable, ParametersEquals = definition.Parameters }; var history = (await manager.FindExperiments(filter)).Where(q => q.ID != id).ToArray(); Dictionary <string, BenchmarkResult> lastBenchmarks = new Dictionary <string, BenchmarkResult>(); if (history.Length != 0) { var lastResults = await manager.GetResults(history.Max(e => e.ID)); foreach (var b in lastResults.Benchmarks) { lastBenchmarks[b.BenchmarkFileName] = b; } } var print = results.ContinueWith(task => { if (task.IsFaulted) { PrintError(String.Format("Failed to complete benchmarks {0}", task.Exception.Message)); return; } BenchmarkResult[] benchmarks = task.Result.Benchmarks; foreach (var benchmark in benchmarks) { BenchmarkResult lastBenchmark = null; lastBenchmarks.TryGetValue(benchmark.BenchmarkFileName, out lastBenchmark); if (lastBenchmark != null && lastBenchmark.Status != Measurement.ResultStatus.Success) { lastBenchmark = null; } PrintBenchmark(benchmark, lastBenchmark); } }); await print; }
public async Task RunExperiment() { ExperimentDefinition def = ExperimentDefinition.Create("LinearEquationSolver.exe", ExperimentDefinition.LocalDiskContainerUri, "benchmarks_1", "csv", "{0}", TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(0), "default"); ExperimentManager manager = NewManager(); var expId = await manager.StartExperiment(def); var results = (await manager.GetResults(expId)).Benchmarks; Assert.AreEqual(1, results.Length, "Number of completed benchmarks"); var res = results[0]; Assert.AreEqual(0, res.ExitCode, "exit code"); Assert.AreEqual(ResultStatus.Success, res.Status, "status"); Assert.IsTrue(res.CPUTime.TotalSeconds < 1, "Total runtime"); }
public async Task RunExperimentsWithCategory() { ExperimentDefinition def = ExperimentDefinition.Create("LinearEquationSolver.exe", ExperimentDefinition.LocalDiskContainerUri, "benchmarks_2", "csv", "{0} 1000", TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(0), "default", category: "IdentitySquare"); ExperimentManager manager = NewManager(); var expId = await manager.StartExperiment(def); var results = (await manager.GetResults(expId)).Benchmarks; Assert.AreEqual(3, results.Length, "Number of completed benchmarks"); foreach (var res in results) { Assert.AreEqual(0, res.ExitCode, "exit code"); Assert.AreEqual(ResultStatus.Success, res.Status, "status"); Assert.IsTrue(res.TotalProcessorTime.TotalSeconds < 10, "Total runtime"); } }
public void RunExperiment(Object expInfo) { Object[] expInfoReal = (Object[])expInfo; expManager.StartExperiment((int)expInfoReal[0], (int)expInfoReal[1], (Order)expInfoReal[2]); }