Exemple #1
0
        public static async Task <Timeline> GetTimeline(string summaryName, AzureExperimentManager expManager, AzureSummaryManager summaryManager, string connectionString)
        {
            IDomainResolver domainResolver = GetDomainResolver();
            var             vm             = await Timeline.Initialize(connectionString, summaryName, expManager, summaryManager);

            return(vm);
        }
Exemple #2
0
        private Timeline(AzureExperimentManager expManager, AzureSummaryManager summaryManager, string summaryName, ExperimentViewModel[] experiments, RecordsTable records)
        {
            this.expManager     = expManager;
            this.summaryManager = summaryManager;
            this.summaryName    = summaryName;
            this.experiments    = experiments.OrderBy(exp => exp.SubmissionTime).ToArray();

            Records = records;
        }
Exemple #3
0
        public static async Task <ComparableExperiment> GetComparableExperiment(int id, AzureExperimentManager expManager)
        {
            var exp = await expManager.TryFindExperiment(id);

            if (exp == null)
            {
                throw new KeyNotFoundException("Experiment " + id + " not found");
            }

            var benchResults = (await expManager.GetResults(id)).Benchmarks;

            ComparableResult[] results    = new ComparableResult[benchResults.Length];
            double             maxTimeout = exp.Definition.BenchmarkTimeout.TotalSeconds;

            for (int i = 0; i < benchResults.Length; i++)
            {
                var b = benchResults[i];
                results[i] = new ComparableResult(b);
#if USE_NORMALIZED_TIME
                if (b.Status == Measurement.ResultStatus.Timeout && b.NormalizedRuntime > maxTimeout)
                {
                    maxTimeout = b.NormalizedRuntime;
                }
#endif
            }

            return(new ComparableExperiment(id, exp.Status.SubmissionTime, maxTimeout, results));
        }
Exemple #4
0
        public static async Task <Timeline> Initialize(string connectionString, string summaryName, AzureExperimentManager expManager, AzureSummaryManager summaryManager)
        {
            var summRec = await summaryManager.GetTimelineAndRecords(summaryName);

            var summ    = summRec.Item1;
            var records = summRec.Item2;
            var now     = DateTime.Now;

            var expTasks =
                summ
                .Select(async expSum =>
            {
                //var exp = await expManager.TryFindExperiment(expSum.Id);
                //if (exp == null) return null;

                bool isFinished;
                var date = expSum.Date;
                if ((now - date).TotalDays >= 1)
                {
                    isFinished = true;
                }
                else
                {
                    try
                    {
                        var jobState = await expManager.GetExperimentJobState(new[] { expSum.Id });
                        isFinished   = jobState[0] != ExperimentExecutionState.Active;
                    }
                    catch
                    {
                        isFinished = true;
                    }
                }

                return(new ExperimentViewModel(expSum, isFinished));
            });

            var experiments = await Task.WhenAll(expTasks);

            return(new Timeline(expManager, summaryManager, summaryName, experiments, records));
        }