Beispiel #1
0
        protected async void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                try
                {
                    _defaultParams = new Dictionary <string, string>();

                    string summaryName = Request.Params.Get("summary");
                    summaryName = summaryName == null ? Properties.Settings.Default.SummaryName : summaryName;
                    _defaultParams.Add("summary", summaryName);

                    var connectionString = await SiteMaster.GetConnectionString();

                    var expManager     = AzureExperimentManager.Open(connectionString);
                    var summaryManager = new AzureSummaryManager(connectionString, Helpers.GetDomainResolver());

                    vm = await Helpers.GetTimeline(summaryName, expManager, summaryManager, connectionString);

                    tags = await Helpers.GetTags(summaryName, summaryManager);

                    BuildEntries();
                }
                catch (Exception ex)
                {
                    Label l = new Label();
                    l.Text = "Error loading dataset: " + ex.Message;
                    phMain.Controls.Add(l);
                    l      = new Label();
                    l.Text = "Stacktrace: " + ex.StackTrace;
                    phMain.Controls.Add(l);
                }
            }
        }
Beispiel #2
0
        static async Task Run()
        {
            string connectionString = await GetConnectionString();

            RepositoryContent binary = await GetRecentNightlyBuild();

            if (binary == null)
            {
                Trace.WriteLine("Repository has no new build.");
                return;
            }
            Trace.WriteLine("Last nightly build contains " + binary.Name);

            AzureExperimentManager manager = AzureExperimentManager.Open(connectionString);
            string lastNightlyExecutable   = await GetLastNightlyExperiment(manager);

            if (lastNightlyExecutable == binary.Name)
            {
                Trace.WriteLine("No changes found since last nightly experiment.");
                return;
            }

            using (MemoryStream stream = new MemoryStream(binary.Size))
            {
                await Download(binary, stream);

                stream.Position = 0;

                Trace.WriteLine("Opening an experiment manager...");
                await SubmitExperiment(manager, stream, binary.Name);
            }
        }
Beispiel #3
0
        static async Task Run()
        {
            string connectionString = await GetConnectionString();

            Tuple <ReleaseAsset, string> asset_hash = await GetNightlyBuild();

            if (asset_hash == null || asset_hash.Item1 == null)
            {
                Trace.WriteLine("Repository has no new build.");
                return;
            }
            ReleaseAsset asset = asset_hash.Item1;
            string       hash  = asset_hash.Item2;

            AzureExperimentManager manager = AzureExperimentManager.Open(connectionString);
            DateTime last_submission_time  = await GetLastNightlyExperimentSubmissionTime(manager);

            if (last_submission_time >= asset.UpdatedAt)
            {
                Trace.WriteLine("No changes found since last nightly experiment.");
                return;
            }

            using (MemoryStream stream = new MemoryStream(asset.Size))
            {
                await Download(asset, stream);

                stream.Position = 0;

                Trace.WriteLine("Opening an experiment manager...");
                await SubmitExperiment(manager, stream, asset.Name, hash);
            }
        }
 private Task <AzureExperimentManagerViewModel> ConnectAsync(string connectionString)
 {
     return(Task.Run(() => // run in thread pool
     {
         AzureExperimentManager azureManager = AzureExperimentManager.Open(connectionString);
         return new AzureExperimentManagerViewModel(azureManager, uiService, domainResolver);
     }));
 }
Beispiel #5
0
        public static async Task Run(string prefix, string outputPath, string repositoryPath)
        {
            Console.WriteLine("Connecting...");
            var    sStorage = new SecretStorage(Settings.Default.AADApplicationId, Settings.Default.AADApplicationCertThumbprint, Settings.Default.KeyVaultUrl);
            string cString  = await sStorage.GetSecret(Settings.Default.ConnectionStringSecretId);

            AzureSummaryManager    sMan  = new AzureSummaryManager(cString, Helpers.GetDomainResolver());
            AzureExperimentManager aeMan = AzureExperimentManager.Open(cString);
            Tags tags = await Helpers.GetTags(Settings.Default.SummaryName, sMan);

            Console.WriteLine("Loading timeline...");
            Timeline timeline = await Helpers.GetTimeline(Settings.Default.SummaryName, aeMan, sMan, cString);

            // Numbers: 4.5.0 = 8023; suspect 8308 -> 8312
            Directory.CreateDirectory(outputPath);

            int refId = 8023;

            Console.WriteLine("Loading reference #{0}...", refId);
            ComparableExperiment refE = await Helpers.GetComparableExperiment(refId, aeMan);

            List <Task> tasks = new List <Task>();

            for (int i = 0; i < timeline.Experiments.Length; i++)
            {
                ExperimentViewModel e = timeline.Experiments[i];
                if (e.Id < refId)
                {
                    continue;
                }
                //tasks.Add(GeneratePlot(aeMan, tags, prefix, refE, refId, e.Id, outputPath));
                //GeneratePlot(aeMan, tags, prefix, refE, refId, e.Id, outputPath);
                if (i > 0 && e.Id != refId)
                {
                    GenerateLog(repositoryPath, outputPath, timeline.Experiments[i - 1].Id, e.Id, timeline.Experiments[i - 1].SubmissionTime, e.SubmissionTime);
                }
                //if (e.Id == 8099) break;
            }

            //ParallelOptions popts = new ParallelOptions();
            //popts.MaxDegreeOfParallelism = 1;
            //ParallelLoopResult r = Parallel.ForEach(tasks, popts, t => t.Wait());

            //Task.WaitAll(tasks.ToArray());

            //await Task.WhenAll(tasks);
        }
Beispiel #6
0
        protected async void Page_Load(object sender, EventArgs e)
        {
            try
            {
                _defaultParams = new Dictionary <string, string>();

                string summaryName = Request.Params.Get("summary");
                summaryName = summaryName == null ? Properties.Settings.Default.SummaryName : summaryName;
                _defaultParams.Add("summary", summaryName);

                var connectionString = await SiteMaster.GetConnectionString();

                expManager     = AzureExperimentManager.Open(connectionString);
                summaryManager = new AzureSummaryManager(connectionString, Helpers.GetDomainResolver());

                timeline = await Helpers.GetTimeline(summaryName, expManager, summaryManager, connectionString);

                string fn = Request.Params.Get("filename");
                if (fn != null)
                {
                    txtFilename.Text = fn;
                }

                string db = Request.Params.Get("daysback");
                if (db != null)
                {
                    txtDaysBack.Text = db;
                }

                if (txtFilename.Text != "")
                {
                    BuildEntries();
                }
            }
            catch (Exception ex)
            {
                Label l = new Label();
                l.Text = "Error loading dataset: " + ex.Message;
                phMain.Controls.Add(l);
                l      = new Label();
                l.Text = "Stacktrace: " + ex.StackTrace;
                phMain.Controls.Add(l);
            }
        }
Beispiel #7
0
        static void Main(string[] args)
        {
            Keys keys    = JsonConvert.DeserializeObject <Keys>(File.ReadAllText("..\\..\\keys.json"));
            var  storage = new AzureExperimentStorage(keys.storageName, keys.storageKey);
            var  manager = AzureExperimentManager.Open(storage, keys.batchUri, keys.batchName, keys.batchKey);

            //var refExp = new ReferenceExperiment(ExperimentDefinition.Create("referencez3.zip", ExperimentDefinition.DefaultContainerUri, "reference", "smt2", "model_validate=true -smt2 -file:{0}", TimeSpan.FromSeconds(1200), "Z3", null, 2048), 20, 16.34375);

            // storage.SaveReferenceExperiment(refExp).Wait();

            var id = manager.StartExperiment(ExperimentDefinition.Create("z3.zip", ExperimentDefinition.DefaultContainerUri, "QF_BV", "smt2", "model_validate=true -smt2 -file:{0}", TimeSpan.FromSeconds(1200), TimeSpan.FromSeconds(0), "Z3", "asp", 2048, 1, 0), "Dmitry K").Result;

            Console.WriteLine("Experiment id:" + id);

            //manager.RestartBenchmarks(159, new string[] {
            //    "15Puzzle/15-puzzle.init10.smt2",
            //    "15Puzzle/15-puzzle.init11.smt2",
            //    "15Puzzle/15-puzzle.init12.smt2",
            //    "15Puzzle/15-puzzle.init13.smt2",
            //    "15Puzzle/15-puzzle.init14.smt2",
            //    "15Puzzle/15-puzzle.init15.smt2",
            //    "15Puzzle/15-puzzle.init2.smt2",
            //    "15Puzzle/15-puzzle.init3.smt2",
            //    "15Puzzle/15-puzzle.init4.smt2",
            //    "15Puzzle/15-puzzle.init5.smt2",
            //    "15Puzzle/15-puzzle.init6.smt2",
            //    "15Puzzle/15-puzzle.init7.smt2",
            //    "15Puzzle/15-puzzle.init8.smt2",
            //    "15Puzzle/15-puzzle.init9.smt2",
            //    "15Puzzle/15puzzle_ins.lp.smt2"
            //}).Wait();

            Console.WriteLine("Done.");

            Console.ReadLine();
        }
        protected async void Page_Load(object sender, EventArgs e)
        {
            try
            {
                string summaryName = Request.Params.Get("summary");
                summaryName = summaryName == null ? Settings.Default.SummaryName : summaryName;

                string connectionString = await SiteMaster.GetConnectionString();

                AzureSummaryManager summaryManager = new AzureSummaryManager(connectionString, Helpers.GetDomainResolver());

                string px = null, py = null;
                Tags   tags = await Helpers.GetTags(summaryName, summaryManager);

                if (!IsPostBack)
                {
                    var last2 = await Helpers.GetTwoLastExperimentsId(summaryName, summaryManager);

                    string penultimate = last2.Item1.ToString();
                    string latest      = last2.Item2.ToString();

                    lstTagX.Items.Add(new ListItem("Latest (" + latest + ")", latest));
                    lstTagX.Items.Add(new ListItem("Penultimate (" + penultimate + ")", penultimate));
                    //lstTagX.Items.Add(new ListItem("Records (best ever)", "RECORDS"));
                    lstTagY.Items.Add(new ListItem("Latest (" + latest + ")", latest));
                    lstTagY.Items.Add(new ListItem("Penultimate (" + penultimate + ")", penultimate));

                    foreach (KeyValuePair <string, int> kvp in tags)
                    {
                        lstTagX.Items.Add(new ListItem(kvp.Key + " (" + kvp.Value.ToString() + ")", kvp.Value.ToString()));
                        lstTagY.Items.Add(new ListItem(kvp.Key + " (" + kvp.Value.ToString() + ")", kvp.Value.ToString()));
                    }

                    px     = Request.Params.Get("jobX");
                    py     = Request.Params.Get("jobY");
                    Prefix = Request.Params.Get("prefix");

                    if (px == null)
                    {
                        rbnTagX.Checked = true;
                    }
                    else
                    {
                        txtIDX.Text = px; rbnIDX.Checked = true;
                    }
                    if (py == null)
                    {
                        rbnTagY.Checked = true;
                    }
                    else
                    {
                        txtIDY.Text = py; rbnIDY.Checked = true;
                    }

                    if (px != null)
                    {
                        if (tags.HasID(int.Parse(px, CultureInfo.InvariantCulture)))
                        {
                            rbnTagX.Checked       = true;
                            lstTagX.SelectedValue = px;
                        }
                        else
                        {
                            lstTagX.SelectedValue = penultimate;
                        }
                    }
                    else
                    {
                        lstTagX.SelectedValue = penultimate;
                    }

                    if (py != null)
                    {
                        if (tags.HasID(int.Parse(py, CultureInfo.InvariantCulture)))
                        {
                            rbnTagY.Checked = true;
                            lstTagY.Items.FindByText(py.ToString());
                            lstTagY.SelectedValue = py.ToString();
                        }
                        else
                        {
                            lstTagY.SelectedValue = latest;
                        }
                    }
                    else
                    {
                        lstTagY.SelectedValue = latest;
                    }
                }

                JX = px != null ? px : rbnTagX.Checked ? lstTagX.SelectedValue : txtIDX.Text;
                JY = py != null ? py : rbnTagY.Checked ? lstTagY.SelectedValue : txtIDY.Text;

                ComparableExperiment jX = null, jY = null;

                try
                {
                    AzureExperimentManager expMan = AzureExperimentManager.Open(connectionString);
                    var t1 = Task.Run(() => Helpers.GetComparableExperiment(int.Parse(JX, CultureInfo.InvariantCulture), expMan));
                    var t2 = Task.Run(() => Helpers.GetComparableExperiment(int.Parse(JY, CultureInfo.InvariantCulture), expMan));

                    jX = await t1;
                    jY = await t2;
                }
                catch (Exception)
                {
                }

                txtIDX.Text = JX;
                txtIDY.Text = JY;

                cmp = new Comparison(jX, jY, Prefix.Replace('|', '/'), tags);

                phPre.Controls.Add(buildHeader("CHART_PRE", ""));
                phChart.Controls.Add(Charts.BuildComparisonChart(Prefix, cmp));
                phHisto.Controls.Add(Charts.BuildComparisonHistogramm(cmp));
                phMain.Controls.Add(buildTabPanels());
                //phMain.Controls.Add(buildFooter());
            }
            catch (Exception ex)
            {
                Label l = new Label();
                l.Text = "Error loading dataset: " + ex.Message;
                phMain.Controls.Add(l);
                l      = new Label();
                l.Text = "Stacktrace: " + ex.StackTrace;
                phMain.Controls.Add(l);
            }
        }