diff --git a/asv.js b/asv.js index c3c54ac5..ac235639 100644 --- a/asv.js +++ b/asv.js @@ -3,8 +3,8 @@ $(document).ready(function() { /* GLOBAL STATE */ /* The index.json content as returned from the server */ - var master_timestamp = ''; - var master_json = {}; + var main_timestamp = ''; + var main_json = {}; /* Extra pages: {name: show_function} */ var loaded_pages = {}; /* Previous window scroll positions */ @@ -284,7 +284,7 @@ $(document).ready(function() { } else { $.ajax({ - url: url + '?timestamp=' + $.asv.master_timestamp, + url: url + '?timestamp=' + $.asv.main_timestamp, dataType: "json", cache: true }).done(function(data) { @@ -417,17 +417,17 @@ $(document).ready(function() { } function get_commit_hash(revision) { - var commit_hash = master_json.revision_to_hash[revision]; + var commit_hash = main_json.revision_to_hash[revision]; if (commit_hash) { // Return printable commit hash - commit_hash = commit_hash.slice(0, master_json.hash_length); + commit_hash = commit_hash.slice(0, main_json.hash_length); } return commit_hash; } function get_revision(commit_hash) { var rev = null; - $.each(master_json.revision_to_hash, function(revision, full_commit_hash) { + $.each(main_json.revision_to_hash, function(revision, full_commit_hash) { if (full_commit_hash.startsWith(commit_hash)) { rev = revision; // break the $.each loop @@ -438,15 +438,15 @@ $(document).ready(function() { } function init_index() { - /* Fetch the master index.json and then set up the page elements + /* Fetch the main index.json and then set up the page elements based on it. */ $.ajax({ - url: "index.json" + '?timestamp=' + $.asv.master_timestamp, + url: "index.json" + '?timestamp=' + $.asv.main_timestamp, dataType: "json", cache: true }).done(function (index) { - master_json = index; - $.asv.master_json = index; + main_json = index; + $.asv.main_json = index; /* Page title */ var project_name = $("#project-name")[0]; @@ -475,8 +475,8 @@ $(document).ready(function() { dataType: "json", cache: false }).done(function (info) { - master_timestamp = info['timestamp']; - $.asv.master_timestamp = master_timestamp; + main_timestamp = info['timestamp']; + $.asv.main_timestamp = main_timestamp; init_index(); }).fail(function () { $.asv.ui.network_error(); @@ -503,8 +503,8 @@ $(document).ready(function() { this.get_commit_hash = get_commit_hash; this.get_revision = get_revision; - this.master_timestamp = master_timestamp; /* Updated after info.json loads */ - this.master_json = master_json; /* Updated after index.json loads */ + this.main_timestamp = main_timestamp; /* Updated after info.json loads */ + this.main_json = main_json; /* Updated after index.json loads */ this.format_date_yyyymmdd = format_date_yyyymmdd; this.format_date_yyyymmdd_hhmm = format_date_yyyymmdd_hhmm; diff --git a/asv_ui.js b/asv_ui.js index 49833b70..af757c70 100644 --- a/asv_ui.js +++ b/asv_ui.js @@ -106,7 +106,7 @@ $(document).ready(function() { $.asv.load_graph_data( graph_url ).done(function (data) { - var params = $.asv.master_json.benchmarks[benchmark_basename].params; + var params = $.asv.main_json.benchmarks[benchmark_basename].params; data = $.asv.filter_graph_data_idx(data, 0, parameter_idx, params); var options = { colors: ['#000'], diff --git a/graphdisplay.js b/graphdisplay.js index ecf23615..ba715322 100644 --- a/graphdisplay.js +++ b/graphdisplay.js @@ -83,7 +83,7 @@ $(document).ready(function() { function get_x_from_revision(rev) { if (date_scale) { - return $.asv.master_json.revision_to_date[rev]; + return $.asv.main_json.revision_to_date[rev]; } else { return rev; } @@ -150,12 +150,12 @@ $(document).ready(function() { var stack = [tree]; /* Sort keys for tree construction */ - var benchmark_keys = Object.keys($.asv.master_json.benchmarks); + var benchmark_keys = Object.keys($.asv.main_json.benchmarks); benchmark_keys.sort(); /* Build tree */ $.each(benchmark_keys, function(i, bm_name) { - var bm = $.asv.master_json.benchmarks[bm_name]; + var bm = $.asv.main_json.benchmarks[bm_name]; var parts = bm_name.split('.'); var i = 0; var j; @@ -299,7 +299,7 @@ $(document).ready(function() { var y = item.datapoint[1]; var commit_hash = get_commit_hash(item.datapoint[0]); if (commit_hash) { - var unit = $.asv.master_json.benchmarks[current_benchmark].unit; + var unit = $.asv.main_json.benchmarks[current_benchmark].unit; showTooltip( item.pageX, item.pageY, $.asv.pretty_unit(y, unit) + " @ " + commit_hash); @@ -328,7 +328,7 @@ $(document).ready(function() { if (previous_hash !== commit_hash) { previous_hash = commit_hash; window.open( - $.asv.master_json.show_commit_url + previous_hash, + $.asv.main_json.show_commit_url + previous_hash, '_blank'); } } @@ -348,7 +348,7 @@ $(document).ready(function() { /* Generic parameter selections */ - var index = $.asv.master_json; + var index = $.asv.main_json; if (!state || state_selection !== null) { /* Setup the default configuration on first load, @@ -428,7 +428,7 @@ $(document).ready(function() { function update_state_url(params) { var info = $.asv.parse_hash_string(window.location.hash); - $.each($.asv.master_json.params, function(param, values) { + $.each($.asv.main_json.params, function(param, values) { if (values.length > 1) { if (state[param].length != values.length || param == 'branch') { info.params[param] = state[param]; @@ -445,7 +445,7 @@ $(document).ready(function() { } function replace_params_ui() { - var index = $.asv.master_json; + var index = $.asv.main_json; var nav = $('#graphdisplay-state-params'); nav.empty(); @@ -521,8 +521,8 @@ $(document).ready(function() { } function replace_benchmark_params_ui() { - var params = $.asv.master_json.benchmarks[current_benchmark].params; - var param_names = $.asv.master_json.benchmarks[current_benchmark].param_names; + var params = $.asv.main_json.benchmarks[current_benchmark].params; + var param_names = $.asv.main_json.benchmarks[current_benchmark].param_names; /* Parameter selection UI */ var nav = $('#graphdisplay-navigation-params'); @@ -574,7 +574,7 @@ $(document).ready(function() { if (rev === null) { button.text("last"); } else { - var date_fmt = new Date($.asv.master_json.revision_to_date[rev]); + var date_fmt = new Date($.asv.main_json.revision_to_date[rev]); button.text($.asv.get_commit_hash(rev) + " " + date_fmt.toUTCString()); @@ -659,7 +659,7 @@ $(document).ready(function() { return; } - var params = $.asv.master_json.benchmarks[current_benchmark].params; + var params = $.asv.main_json.benchmarks[current_benchmark].params; x_coordinate_is_category = false; if (x_coordinate_axis != 0) { for (var j = 0; j < params[x_coordinate_axis-1].length; ++j) { @@ -754,7 +754,7 @@ $(document).ready(function() { if (current_benchmark) { /* For the current set of enabled parameters, generate a list of all the permutations we need to load. */ - var state_permutations = $.grep($.asv.master_json.graph_param_list, function (params) { + var state_permutations = $.grep($.asv.main_json.graph_param_list, function (params) { var ok = true; $.each(state, function (key, values) { if ($.inArray(params[key], values) == -1) { @@ -767,14 +767,14 @@ $(document).ready(function() { /* Find where the parameters are different. */ var different = find_different_properties(state_permutations); /* For parameterized tests: names of benchmark parameters */ - var params = $.asv.master_json.benchmarks[current_benchmark].params; - var param_names = $.asv.master_json.benchmarks[current_benchmark].param_names; + var params = $.asv.main_json.benchmarks[current_benchmark].params; + var param_names = $.asv.main_json.benchmarks[current_benchmark].param_names; /* Selected permutations of benchmark parameters, omitting x-axis */ var selection = obj_copy(param_selection); selection[x_coordinate_axis] = [null]; /* value not referenced, set to null */ var param_permutations = permutations(selection); - /* Generate a master list of URLs and legend labels for + /* Generate a main list of URLs and legend labels for the graphs. */ var all = []; $.each(state_permutations, function (i, perm) { @@ -852,7 +852,7 @@ $(document).ready(function() { series = $.asv.filter_graph_data(data, x_coordinate_axis, graph_content[0], - $.asv.master_json.benchmarks[current_benchmark].params); + $.asv.main_json.benchmarks[current_benchmark].params); orig_graphs.push({ data: series, label: graph_content[1], @@ -980,11 +980,11 @@ $(document).ready(function() { options.yaxis.max = Math.pow(10, max) * reference; if (!reference_scale) { - options.yaxis.axisLabel = $.asv.master_json.benchmarks[current_benchmark].unit; + options.yaxis.axisLabel = $.asv.main_json.benchmarks[current_benchmark].unit; } } else { - var unit = $.asv.master_json.benchmarks[current_benchmark].unit; + var unit = $.asv.main_json.benchmarks[current_benchmark].unit; var unit_list = null; if (unit == "seconds") { @@ -1080,7 +1080,7 @@ $(document).ready(function() { date_to_revision = {}; $.each(graphs, function(i, graph) { $.each(graph.data, function(j, point) { - var date = $.asv.master_json.revision_to_date[point[0]]; + var date = $.asv.main_json.revision_to_date[point[0]]; date_to_revision[date] = point[0]; point[0] = date; }); @@ -1110,7 +1110,7 @@ $(document).ready(function() { else { graphs = orig_graphs; } - var param_names = $.asv.master_json.benchmarks[current_benchmark].param_names; + var param_names = $.asv.main_json.benchmarks[current_benchmark].param_names; options.xaxis.axisLabel = param_names[x_coordinate_axis-1]; } } @@ -1125,7 +1125,7 @@ $(document).ready(function() { var markings = []; if (x_coordinate_axis == 0) { - $.each($.asv.master_json.tags, function(tag, revision) { + $.each($.asv.main_json.tags, function(tag, revision) { var x = get_x_from_revision(revision); markings.push( { color: "#ddd", lineWidth: 1, xaxis: { from: x, to: x } } @@ -1157,7 +1157,7 @@ $(document).ready(function() { if (reference_scale) { unit = 'relative'; } else { - unit = $.asv.master_json.benchmarks[current_benchmark].unit; + unit = $.asv.main_json.benchmarks[current_benchmark].unit; } var options = { @@ -1342,7 +1342,7 @@ $(document).ready(function() { var canvas = plot.getCanvas(); var xmin = plot.getAxes().xaxis.min; var xmax = plot.getAxes().xaxis.max; - $.each($.asv.master_json.tags, function(tag, revision) { + $.each($.asv.main_json.tags, function(tag, revision) { var x = get_x_from_revision(revision); if (x >= xmin && x <= xmax) { var p = plot.pointOffset({x: x, y: 0}); diff --git a/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeDetectAndClassifyCells.time_cellfinder_run.json b/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeDetectAndClassifyCells.time_cellfinder_run.json new file mode 100644 index 00000000..a3ff0900 --- /dev/null +++ b/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeDetectAndClassifyCells.time_cellfinder_run.json @@ -0,0 +1 @@ +[[708, 21.19635050004581]] \ No newline at end of file diff --git a/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeFullWorkflow.time_workflow.json b/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeFullWorkflow.time_workflow.json new file mode 100644 index 00000000..21cc5bfa --- /dev/null +++ b/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeFullWorkflow.time_workflow.json @@ -0,0 +1 @@ +[[708, 18.59020320896525]] \ No newline at end of file diff --git a/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeReadInputDask.time_read_background_with_dask.json b/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeReadInputDask.time_read_background_with_dask.json new file mode 100644 index 00000000..0edb461f --- /dev/null +++ b/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeReadInputDask.time_read_background_with_dask.json @@ -0,0 +1 @@ +[[708, 0.0030901249847374856]] \ No newline at end of file diff --git a/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeReadInputDask.time_read_signal_with_dask.json b/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeReadInputDask.time_read_signal_with_dask.json new file mode 100644 index 00000000..49fbdfe1 --- /dev/null +++ b/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeReadInputDask.time_read_signal_with_dask.json @@ -0,0 +1 @@ +[[708, 0.003035500005353242]] \ No newline at end of file diff --git a/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeSaveCells.time_save_cells.json b/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeSaveCells.time_save_cells.json new file mode 100644 index 00000000..5e8c8116 --- /dev/null +++ b/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/cellfinder.TimeSaveCells.time_save_cells.json @@ -0,0 +1 @@ +[[708, 0.0030912079964764416]] \ No newline at end of file diff --git a/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/summary.json b/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/summary.json new file mode 100644 index 00000000..4b6b7796 --- /dev/null +++ b/graphs/arch-arm64/branch-HEAD/cpu-Apple M2/machine-Alessandros-MacBook-Pro.local/num_cpu-8/os-Darwin 22.5.0/python-3.10/ram-17179869184/summary.json @@ -0,0 +1 @@ +[{"name": "cellfinder.TimeDetectAndClassifyCells.time_cellfinder_run", "idx": null, "pretty_name": "cellfinder.TimeDetectAndClassifyCells.time_cellfinder_run", "last_rev": 708, "last_value": 21.19635050004581, "last_err": 0.0, "prev_value": null, "change_rev": null}, {"name": "cellfinder.TimeFullWorkflow.time_workflow", "idx": null, "pretty_name": "cellfinder.TimeFullWorkflow.time_workflow", "last_rev": 708, "last_value": 18.59020320896525, "last_err": 0.0, "prev_value": null, "change_rev": null}, {"name": "cellfinder.TimeReadInputDask.time_read_background_with_dask", "idx": null, "pretty_name": "cellfinder.TimeReadInputDask.time_read_background_with_dask", "last_rev": 708, "last_value": 0.0030901249847374856, "last_err": 0.0, "prev_value": null, "change_rev": null}, {"name": "cellfinder.TimeReadInputDask.time_read_signal_with_dask", "idx": null, "pretty_name": "cellfinder.TimeReadInputDask.time_read_signal_with_dask", "last_rev": 708, "last_value": 0.003035500005353242, "last_err": 0.0, "prev_value": null, "change_rev": null}, {"name": "cellfinder.TimeSaveCells.time_save_cells", "idx": null, "pretty_name": "cellfinder.TimeSaveCells.time_save_cells", "last_rev": 708, "last_value": 0.0030912079964764416, "last_err": 0.0, "prev_value": null, "change_rev": null}] \ No newline at end of file diff --git a/graphs/summary/cellfinder.TimeDetectAndClassifyCells.time_cellfinder_run.json b/graphs/summary/cellfinder.TimeDetectAndClassifyCells.time_cellfinder_run.json new file mode 100644 index 00000000..a3ff0900 --- /dev/null +++ b/graphs/summary/cellfinder.TimeDetectAndClassifyCells.time_cellfinder_run.json @@ -0,0 +1 @@ +[[708, 21.19635050004581]] \ No newline at end of file diff --git a/graphs/summary/cellfinder.TimeFullWorkflow.time_workflow.json b/graphs/summary/cellfinder.TimeFullWorkflow.time_workflow.json new file mode 100644 index 00000000..21cc5bfa --- /dev/null +++ b/graphs/summary/cellfinder.TimeFullWorkflow.time_workflow.json @@ -0,0 +1 @@ +[[708, 18.59020320896525]] \ No newline at end of file diff --git a/graphs/summary/cellfinder.TimeReadInputDask.time_read_background_with_dask.json b/graphs/summary/cellfinder.TimeReadInputDask.time_read_background_with_dask.json index 99ebacd8..0edb461f 100644 --- a/graphs/summary/cellfinder.TimeReadInputDask.time_read_background_with_dask.json +++ b/graphs/summary/cellfinder.TimeReadInputDask.time_read_background_with_dask.json @@ -1 +1 @@ -[[440, 0.002235284750592352]] \ No newline at end of file +[[708, 0.0030901249847374856]] \ No newline at end of file diff --git a/graphs/summary/cellfinder.TimeReadInputDask.time_read_signal_with_dask.json b/graphs/summary/cellfinder.TimeReadInputDask.time_read_signal_with_dask.json index 26b25e01..49fbdfe1 100644 --- a/graphs/summary/cellfinder.TimeReadInputDask.time_read_signal_with_dask.json +++ b/graphs/summary/cellfinder.TimeReadInputDask.time_read_signal_with_dask.json @@ -1 +1 @@ -[[440, 0.0021815707994392143]] \ No newline at end of file +[[708, 0.003035500005353242]] \ No newline at end of file diff --git a/graphs/summary/cellfinder.TimeSaveCells.time_save_cells.json b/graphs/summary/cellfinder.TimeSaveCells.time_save_cells.json index 10afcb65..5e8c8116 100644 --- a/graphs/summary/cellfinder.TimeSaveCells.time_save_cells.json +++ b/graphs/summary/cellfinder.TimeSaveCells.time_save_cells.json @@ -1 +1 @@ -[[440, 0.0006513437289565143]] \ No newline at end of file +[[708, 0.0030912079964764416]] \ No newline at end of file diff --git a/index.json b/index.json index 8f78078d..b1564cf5 100644 --- a/index.json +++ b/index.json @@ -1 +1 @@ -{"project": "brainglobe_workflows", "project_url": "https://github.com/brainglobe/brainglobe-workflows", "show_commit_url": "https://github.com/brainglobe/brainglobe-workflows/commit/", "hash_length": 8, "revision_to_hash": {"440": "00970cc1c83097abfcd4bba41e4d8e1d34914e20"}, "revision_to_date": {"440": 1697110088000}, "params": {"arch": ["arm64"], "cpu": ["Apple M1 Pro"], "machine": ["eduroam-int-dhcp-97-153-159.ucl.ac.uk"], "num_cpu": ["10"], "os": ["Darwin 23.0.0"], "ram": ["34359738368"], "python": ["3.10"], "branch": ["smg/cellfinder-cli-benchmark"]}, "graph_param_list": [{"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "eduroam-int-dhcp-97-153-159.ucl.ac.uk", "num_cpu": "10", "os": "Darwin 23.0.0", "ram": "34359738368", "python": "3.10", "branch": "smg/cellfinder-cli-benchmark"}], "benchmarks": {"cellfinder.TimeDetectCells.time_cellfinder_run": {"code": "class TimeDetectCells:\n def time_cellfinder_run(self):\n cellfinder_run(\n self.signal_array, self.background_array, self.cfg.voxel_sizes\n )\n\n def setup(self):\n # basic setup\n TimeBenchmarkPrepGIN.setup(self)\n \n # add input data as arrays to config\n self.signal_array = read_with_dask(self.cfg.signal_dir_path)\n self.background_array = read_with_dask(self.cfg.background_dir_path)\n\nclass TimeBenchmarkPrepGIN:\n def setup_cache(\n self,\n ):\n \"\"\"\n Download the input data from the GIN repository to the local\n directory specified in the default_config.json\n \n Notes\n -----\n The `setup_cache` method only performs the computations once\n per benchmark round and then caches the result to disk [1]_. It cannot\n be parametrised [2]_.\n \n \n [1] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#setup-and-teardown-functions\n [2] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#parameterized-benchmarks\n \"\"\"\n \n # Check config file exists\n assert Path(self.input_config_path).exists()\n \n # Instantiate a CellfinderConfig from the input json file\n # (assumes config is json serializable)\n with open(self.input_config_path) as cfg:\n config_dict = json.load(cfg)\n config = CellfinderConfig(**config_dict)\n \n # Download data with pooch\n _ = pooch.retrieve(\n url=config.data_url,\n known_hash=config.data_hash,\n path=config.install_path,\n progressbar=True,\n processor=pooch.Unzip(extract_dir=config.extract_dir_relative),\n )\n \n # Check paths to input data should now exist in config\n assert Path(config.signal_dir_path).exists()\n assert Path(config.background_dir_path).exists()", "min_run_count": 2, "name": "cellfinder.TimeDetectCells.time_cellfinder_run", "number": 0, "param_names": [], "params": [], "repeat": 0, "rounds": 2, "sample_time": 0.01, "setup_cache_key": "cellfinder:84", "timeout": 600, "type": "time", "unit": "seconds", "version": "a37269e5549803517d14817f7e9aede2930f6ba97c3faeba7235de092a74f6c8", "warmup_time": 0.1}, "cellfinder.TimeFullWorkflow.time_workflow_from_cellfinder_run": {"code": "class TimeFullWorkflow:\n def time_workflow_from_cellfinder_run(self):\n run_workflow_from_cellfinder_run(self.cfg)\n\nclass TimeBenchmarkPrepGIN:\n def setup(self):\n \"\"\"\n Run the cellfinder workflow setup steps.\n \n The command line input arguments are injected as dependencies.\n \"\"\"\n \n # Run setup\n cfg = setup_cellfinder_workflow(\n [\n \"--config\",\n self.input_config_path,\n ]\n )\n \n # Save configuration as attribute\n self.cfg = cfg\n\n def setup_cache(\n self,\n ):\n \"\"\"\n Download the input data from the GIN repository to the local\n directory specified in the default_config.json\n \n Notes\n -----\n The `setup_cache` method only performs the computations once\n per benchmark round and then caches the result to disk [1]_. It cannot\n be parametrised [2]_.\n \n \n [1] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#setup-and-teardown-functions\n [2] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#parameterized-benchmarks\n \"\"\"\n \n # Check config file exists\n assert Path(self.input_config_path).exists()\n \n # Instantiate a CellfinderConfig from the input json file\n # (assumes config is json serializable)\n with open(self.input_config_path) as cfg:\n config_dict = json.load(cfg)\n config = CellfinderConfig(**config_dict)\n \n # Download data with pooch\n _ = pooch.retrieve(\n url=config.data_url,\n known_hash=config.data_hash,\n path=config.install_path,\n progressbar=True,\n processor=pooch.Unzip(extract_dir=config.extract_dir_relative),\n )\n \n # Check paths to input data should now exist in config\n assert Path(config.signal_dir_path).exists()\n assert Path(config.background_dir_path).exists()", "min_run_count": 2, "name": "cellfinder.TimeFullWorkflow.time_workflow_from_cellfinder_run", "number": 0, "param_names": [], "params": [], "repeat": 0, "rounds": 2, "sample_time": 0.01, "setup_cache_key": "cellfinder:84", "timeout": 600, "type": "time", "unit": "seconds", "version": "972079517fbc189a9acc0af554fc3c8382e2add170992dfde452a1b5180a7910", "warmup_time": 0.1}, "cellfinder.TimeReadInputDask.time_read_background_with_dask": {"code": "class TimeReadInputDask:\n def time_read_background_with_dask(self):\n read_with_dask(self.cfg.background_dir_path)\n\nclass TimeBenchmarkPrepGIN:\n def setup(self):\n \"\"\"\n Run the cellfinder workflow setup steps.\n \n The command line input arguments are injected as dependencies.\n \"\"\"\n \n # Run setup\n cfg = setup_cellfinder_workflow(\n [\n \"--config\",\n self.input_config_path,\n ]\n )\n \n # Save configuration as attribute\n self.cfg = cfg\n\n def setup_cache(\n self,\n ):\n \"\"\"\n Download the input data from the GIN repository to the local\n directory specified in the default_config.json\n \n Notes\n -----\n The `setup_cache` method only performs the computations once\n per benchmark round and then caches the result to disk [1]_. It cannot\n be parametrised [2]_.\n \n \n [1] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#setup-and-teardown-functions\n [2] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#parameterized-benchmarks\n \"\"\"\n \n # Check config file exists\n assert Path(self.input_config_path).exists()\n \n # Instantiate a CellfinderConfig from the input json file\n # (assumes config is json serializable)\n with open(self.input_config_path) as cfg:\n config_dict = json.load(cfg)\n config = CellfinderConfig(**config_dict)\n \n # Download data with pooch\n _ = pooch.retrieve(\n url=config.data_url,\n known_hash=config.data_hash,\n path=config.install_path,\n progressbar=True,\n processor=pooch.Unzip(extract_dir=config.extract_dir_relative),\n )\n \n # Check paths to input data should now exist in config\n assert Path(config.signal_dir_path).exists()\n assert Path(config.background_dir_path).exists()", "min_run_count": 2, "name": "cellfinder.TimeReadInputDask.time_read_background_with_dask", "number": 0, "param_names": [], "params": [], "repeat": 0, "rounds": 2, "sample_time": 0.01, "setup_cache_key": "cellfinder:84", "timeout": 600, "type": "time", "unit": "seconds", "version": "bf1a26a9a90c3686fe63ef495a40bda58641061ee504e8aa682554ff5f25506b", "warmup_time": 0.1}, "cellfinder.TimeReadInputDask.time_read_signal_with_dask": {"code": "class TimeReadInputDask:\n def time_read_signal_with_dask(self):\n read_with_dask(self.cfg.signal_dir_path)\n\nclass TimeBenchmarkPrepGIN:\n def setup(self):\n \"\"\"\n Run the cellfinder workflow setup steps.\n \n The command line input arguments are injected as dependencies.\n \"\"\"\n \n # Run setup\n cfg = setup_cellfinder_workflow(\n [\n \"--config\",\n self.input_config_path,\n ]\n )\n \n # Save configuration as attribute\n self.cfg = cfg\n\n def setup_cache(\n self,\n ):\n \"\"\"\n Download the input data from the GIN repository to the local\n directory specified in the default_config.json\n \n Notes\n -----\n The `setup_cache` method only performs the computations once\n per benchmark round and then caches the result to disk [1]_. It cannot\n be parametrised [2]_.\n \n \n [1] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#setup-and-teardown-functions\n [2] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#parameterized-benchmarks\n \"\"\"\n \n # Check config file exists\n assert Path(self.input_config_path).exists()\n \n # Instantiate a CellfinderConfig from the input json file\n # (assumes config is json serializable)\n with open(self.input_config_path) as cfg:\n config_dict = json.load(cfg)\n config = CellfinderConfig(**config_dict)\n \n # Download data with pooch\n _ = pooch.retrieve(\n url=config.data_url,\n known_hash=config.data_hash,\n path=config.install_path,\n progressbar=True,\n processor=pooch.Unzip(extract_dir=config.extract_dir_relative),\n )\n \n # Check paths to input data should now exist in config\n assert Path(config.signal_dir_path).exists()\n assert Path(config.background_dir_path).exists()", "min_run_count": 2, "name": "cellfinder.TimeReadInputDask.time_read_signal_with_dask", "number": 0, "param_names": [], "params": [], "repeat": 0, "rounds": 2, "sample_time": 0.01, "setup_cache_key": "cellfinder:84", "timeout": 600, "type": "time", "unit": "seconds", "version": "d01c253717edd52a017c710e569a36349c463b190e1ac4f0ab786c16cde75bd5", "warmup_time": 0.1}, "cellfinder.TimeSaveCells.time_save_cells": {"code": "class TimeSaveCells:\n def time_save_cells(self):\n save_cells(self.detected_cells, self.cfg.detected_cells_path)\n\n def setup(self):\n # basic setup\n TimeBenchmarkPrepGIN.setup(self)\n \n # add input data as arrays to config\n self.signal_array = read_with_dask(self.cfg.signal_dir_path)\n self.background_array = read_with_dask(self.cfg.background_dir_path)\n \n # detect cells\n self.detected_cells = cellfinder_run(\n self.signal_array, self.background_array, self.cfg.voxel_sizes\n )\n\nclass TimeBenchmarkPrepGIN:\n def setup_cache(\n self,\n ):\n \"\"\"\n Download the input data from the GIN repository to the local\n directory specified in the default_config.json\n \n Notes\n -----\n The `setup_cache` method only performs the computations once\n per benchmark round and then caches the result to disk [1]_. It cannot\n be parametrised [2]_.\n \n \n [1] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#setup-and-teardown-functions\n [2] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#parameterized-benchmarks\n \"\"\"\n \n # Check config file exists\n assert Path(self.input_config_path).exists()\n \n # Instantiate a CellfinderConfig from the input json file\n # (assumes config is json serializable)\n with open(self.input_config_path) as cfg:\n config_dict = json.load(cfg)\n config = CellfinderConfig(**config_dict)\n \n # Download data with pooch\n _ = pooch.retrieve(\n url=config.data_url,\n known_hash=config.data_hash,\n path=config.install_path,\n progressbar=True,\n processor=pooch.Unzip(extract_dir=config.extract_dir_relative),\n )\n \n # Check paths to input data should now exist in config\n assert Path(config.signal_dir_path).exists()\n assert Path(config.background_dir_path).exists()", "min_run_count": 2, "name": "cellfinder.TimeSaveCells.time_save_cells", "number": 0, "param_names": [], "params": [], "repeat": 0, "rounds": 2, "sample_time": 0.01, "setup_cache_key": "cellfinder:84", "timeout": 600, "type": "time", "unit": "seconds", "version": "7c1d5133e9b37b475e715b17d7d1ffaf8094679919a0ff1b8ac5625936d8af91", "warmup_time": 0.1}}, "machines": {"eduroam-int-dhcp-97-153-159.ucl.ac.uk": {"arch": "arm64", "cpu": "Apple M1 Pro", "machine": "eduroam-int-dhcp-97-153-159.ucl.ac.uk", "num_cpu": "10", "os": "Darwin 23.0.0", "ram": "34359738368", "version": 1}}, "tags": {}, "pages": [["", "Grid view", "Display as a agrid"], ["summarylist", "List view", "Display as a list"], ["regressions", "Show regressions", "Display information about recent regressions"]]} \ No newline at end of file +{"project": "brainglobe-workflows", "project_url": "https://github.com/brainglobe/brainglobe-workflows", "show_commit_url": "https://github.com/brainglobe/brainglobe-workflows/commit/", "hash_length": 8, "revision_to_hash": {"23": "352b85652dab3f1059430668b7bbced32f587146", "24": "13a7bef9f6b8462d4331ff8ae418c59e80fad48a", "30": "49c3fdd456b375d4556985d8f37aeb9d58bdf4fc", "34": "a62766104e2c503ac911c1c90e3ca547a9367835", "35": "9b0d5a86ed4439c821480554fd9983734cbdb371", "37": "ac0e6cd98e6054aa62dbf3fb254661e81f358ef4", "41": "890a1b48d0a952b39c67e66c6c4fea9204bf0106", "46": "f22c3679e20aee7ef897c27c8b4560f2765b3229", "49": "111cf6d4f54ef712bfda5168068076665da33dd9", "50": "e3b995d06d2815bebe04570811673ccedb932803", "55": "83bacec292a2fca2f7b0eeb9e150fc5fc5f0398c", "57": "6e2f7dc4446a1f07037a9abb3d69001efacad808", "68": "e54d1f1d95ccfebbcc43052d0b43d67f3a1eca89", "88": "c3b989b59ec350b9221161183f18b2692585a031", "90": "433f2ffaf61e2e90dad72a8b672f9ac0fa281bb4", "117": "3799e1a67060743c921be498583f472ca6160bc1", "120": "8c686ba786ae42dd6852568c3333a898484c8a3d", "123": "7f198134003a01d1d2bed91ccf43c87d2a556aa7", "132": "06aaa6043820ccfa25c7a4d66510283f12e9e2d9", "137": "3b1e7d7018ce22f5d2c38ec4de49e0ac6d7ff409", "138": "d64aae505acc35cb5270a9b9fde7a6bfbdd13f64", "139": "658e39c9c679bd332a38f90d6d39bd781f1241c4", "150": "f52f4a3a0602440fb936ea0dc16648e84665fc36", "151": "1d4e289559ec3176b99aebdd33c51b06ccb7e4c1", "152": "6bbd19425b5b4be6566f4c1859c8a09b2431715f", "155": "f958fa5f9d06120efd1e4f1f8ada9241b5a8906c", "165": "39e3fb2b12512a322f29b29ccff9e218bb550a92", "168": "e26512c12429c0fb157ca592f67cd3097a417087", "169": "ac00379092e9d813847ed94bc0b1200d377f612a", "170": "a4e9e21a86e597e167151196d66f357cd5610547", "171": "fa42076772691efe56271bd44d2a474a4491018d", "173": "353959abf2e5b2f0eb082d1f4eebf90dfbdf7576", "174": "044d7beaf73df83091c5baf31904a2eaaeabb4bb", "175": "de124f6f8d87a37b631af9567d9347f7458eed29", "177": "08c4b8677569717da8718f460e8a2c915d22cc1d", "193": "266ebef553ecdcc7e5b23428eb6c801fc5e8bed0", "196": "23764955a8bdd5e79b8ee8101b962ef5749c7dad", "198": "ef93f6d1b0f7c13c7e3616df62ce9cc16c8357fd", "200": "e8bdd5e378174636aa0eca2ddd7f65d5776de970", "203": "0ef0544b80bdee4e35787f100933b9066a11c2db", "205": "5781ddff04fcfb1a63e2bbe353cdf6e0fc4ae701", "207": "0112783637884747f50b6852769caef691e31a82", "210": "f88183cff3f245f71a51030dc28e02e81eb575ba", "214": "3093166327f9bb611e73473b168e1588258f3d12", "221": "890e180233d63a190950e226bef2c4b50e5ac30a", "223": "a9590ded126384bbc12ea971ab01d1de1f6a1cff", "227": "ea4be79060835a6a4be2812fbbcedba4291fcbfd", "233": "50559e0e45b348b6a91c2124748b7bf1da5bd6ee", "234": "d6db87257cde858df1c27f7e8e65b7460620abfd", "236": "35d2e0e54212cb676df80728395efb6cd40f5331", "237": "c72a665df7a0f96577dac149a4d1bac6c3cdd6db", "239": "4b8fd171a1491ffd53536da42b70256a2ff5277d", "240": "e4c80090dbd62d7b249d5e2c09f5c5c31df54b83", "248": "c7af64c86793229081156e90bbef66212eef4ee9", "249": "38c391145eeee9d81397f0562d249ddede3fe624", "252": "b4b8ccdfaea6d8dfff7122043ea5abd71832df7e", "253": "78bede281272a4b609c203521dd26e723a04f0d8", "264": "a29e819d683fe8cdf39e0e4aca6a4ea8fdb335f4", "265": "60f85cf0f5895759641772c2b9bf9a94472a375b", "267": "44ce4bfeb796c2ffed0e15e09399443a4795d515", "268": "0466e94f5c5ad58c853a73257d80944a1607ac81", "272": "c611c8f7c90b36369236eeeac90a2b66a3c82dda", "274": "9ac0707be8551cfa7c1d348949529ea4ee981ff6", "276": "fa0cad8aa4bfa5e2d803ed68c820ad8d5d719075", "305": "e3b48c07cd692a7a4c70407497a0f9f71c824dc8", "326": "7787e38a003f979e5a0389c8492727a19add3821", "329": "80f01d4f7fcfe3f1e7a95feab5859935a55feee3", "480": "0d517ed839bdfaa99733c36168e108e9f8f74ce4", "557": "afba96519cce5db7515c2ff13cf7c2b548add652", "564": "895c6ad1abe6b973ccd6377d6f73cc88b7d6b587", "573": "f36e42168bed344ca363a18e35c6af4a35a1118c", "597": "2b0983b6ddb84a104eaea0feb1546f414d79dc3e", "635": "2da996aba874ba4593fa53e7b012f0e9d5d9aabe", "641": "0c242b1a180e3fef489c2ef688e7579d7d949b7d", "654": "2b192437aae1264b534afd9e89e888e858f98e87", "657": "cd14205437ab17e3f7d4aea3265c8fea55585f0b", "664": "44104bcc00e93f905d14dbdb626cb5137be30d9d", "666": "c6d707036076b56c1d8d006f6cb5b8f1d35fa342", "689": "fd82cef14b746af7da6ad687ae10896598caaccd", "707": "2c3ebc4935cd4078593caa338278392c2cd1c030", "708": "4b08e30d009ffc9c1e89be3bcaac037a7aae23ea"}, "revision_to_date": {"23": 1579789591000, "24": 1579798451000, "30": 1580745215000, "34": 1581423231000, "35": 1581518639000, "37": 1581590500000, "41": 1582037870000, "46": 1582880192000, "49": 1583919312000, "50": 1583920209000, "55": 1587029348000, "57": 1587479881000, "68": 1587727806000, "88": 1588255085000, "90": 1588255232000, "117": 1588844103000, "120": 1588868845000, "123": 1589103725000, "132": 1589220363000, "137": 1589357631000, "138": 1589357790000, "139": 1589360211000, "150": 1589562720000, "151": 1589563443000, "152": 1590589809000, "155": 1590600996000, "165": 1591903574000, "168": 1591948963000, "169": 1591951322000, "170": 1591952937000, "171": 1591954752000, "173": 1591955608000, "174": 1591956343000, "175": 1591959966000, "177": 1592493813000, "193": 1602589586000, "196": 1602596273000, "198": 1602596379000, "200": 1602607630000, "203": 1603798829000, "205": 1603970081000, "207": 1604674746000, "210": 1606311997000, "214": 1610387921000, "221": 1615404409000, "223": 1615461680000, "227": 1618853414000, "233": 1619969697000, "234": 1620123265000, "236": 1620204986000, "237": 1620204988000, "239": 1620205063000, "240": 1620205068000, "248": 1623336094000, "249": 1623339095000, "252": 1623345067000, "253": 1623345070000, "264": 1634311979000, "265": 1634311990000, "267": 1634314436000, "268": 1634315883000, "272": 1642621189000, "274": 1642621894000, "276": 1642625112000, "305": 1670950343000, "326": 1690973417000, "329": 1692625139000, "480": 1699280286000, "557": 1702460832000, "564": 1702540765000, "573": 1702561390000, "597": 1702890644000, "635": 1704297078000, "641": 1704798204000, "654": 1705076416000, "657": 1705415386000, "664": 1707844256000, "666": 1712932901000, "689": 1714041812000, "707": 1715864036000, "708": 1716206302000}, "params": {"arch": ["arm64"], "cpu": ["Apple M2"], "machine": ["Alessandros-MacBook-Pro.local"], "num_cpu": ["8"], "os": ["Darwin 22.5.0"], "ram": ["17179869184"], "python": ["3.10"], "branch": ["HEAD"]}, "graph_param_list": [{"arch": "arm64", "cpu": "Apple M2", "machine": "Alessandros-MacBook-Pro.local", "num_cpu": "8", "os": "Darwin 22.5.0", "ram": "17179869184", "python": "3.10", "branch": "HEAD"}], "benchmarks": {"cellfinder.TimeDetectAndClassifyCells.time_cellfinder_run": {"code": "class TimeDetectAndClassifyCells:\n def time_cellfinder_run(self):\n cellfinder_run(\n self.signal_array,\n self.background_array,\n self.cfg.voxel_sizes,\n self.cfg.start_plane,\n self.cfg.end_plane,\n self.cfg.trained_model,\n self.cfg.model_weights,\n self.cfg.model,\n self.cfg.batch_size,\n self.cfg.n_free_cpus,\n self.cfg.network_voxel_sizes,\n self.cfg.soma_diameter,\n self.cfg.ball_xy_size,\n self.cfg.ball_z_size,\n self.cfg.ball_overlap_fraction,\n self.cfg.log_sigma_size,\n self.cfg.n_sds_above_mean_thresh,\n self.cfg.soma_spread_factor,\n self.cfg.max_cluster_size,\n self.cfg.cube_width,\n self.cfg.cube_height,\n self.cfg.cube_depth,\n self.cfg.network_depth,\n )\n\n def setup(self):\n # basic setup\n TimeBenchmark.setup(self)\n \n # add input data as arrays to the config\n self.signal_array = read_with_dask(str(self.cfg._signal_dir_path))\n self.background_array = read_with_dask(\n str(self.cfg._background_dir_path)\n )\n\nclass TimeBenchmark:\n def setup_cache(self):\n \"\"\"\n Download the input data from the GIN repository to the local\n directory specified in the default_config.json.\n \n Notes\n -----\n The `setup_cache` method only performs the computations once\n per benchmark round and then caches the result to disk [1]_. It cannot\n be parametrised [2]_. Therefore, if we sweep across different input\n JSON files, we need to ensure all data for all configs is made\n available with this setup function.\n \n \n [1] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#setup-and-teardown-functions\n [2] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#parameterized-benchmarks\n \"\"\"\n \n # Check config file exists\n assert Path(self.input_config_path).exists()\n \n # Instantiate a CellfinderConfig from the input json file\n # (fetches data from GIN if required)\n with open(self.input_config_path) as cfg:\n config_dict = json.load(cfg)\n config = CellfinderConfig(**config_dict)\n \n # Check paths to input data exist in config now\n assert Path(config._signal_dir_path).exists()\n assert Path(config._background_dir_path).exists()\n \n # Ensure cellfinder model is downloaded to default path\n _ = prep_models(\n model_weights_path=config.model_weights,\n install_path=None, # Use default,\n model_name=config.model,\n )", "min_run_count": 2, "name": "cellfinder.TimeDetectAndClassifyCells.time_cellfinder_run", "number": 0, "param_names": [], "params": [], "repeat": 0, "rounds": 2, "sample_time": 0.01, "setup_cache_key": "cellfinder:89", "timeout": 600, "type": "time", "unit": "seconds", "version": "bb8580e6a6610fa7a8603516c1e95fe96a3df06b308c64c43622814984ac2d18", "warmup_time": 0.1}, "cellfinder.TimeFullWorkflow.time_workflow": {"code": "class TimeFullWorkflow:\n def time_workflow(self):\n run_workflow_from_cellfinder_run(self.cfg)\n\nclass TimeBenchmark:\n def setup(self):\n \"\"\"\n Run the cellfinder workflow setup steps.\n \n The command line input arguments are injected as dependencies.\n \"\"\"\n \n # Run setup\n cfg = setup_cellfinder_workflow(self.input_config_path)\n \n # Save configuration as attribute\n self.cfg = cfg\n\n def setup_cache(self):\n \"\"\"\n Download the input data from the GIN repository to the local\n directory specified in the default_config.json.\n \n Notes\n -----\n The `setup_cache` method only performs the computations once\n per benchmark round and then caches the result to disk [1]_. It cannot\n be parametrised [2]_. Therefore, if we sweep across different input\n JSON files, we need to ensure all data for all configs is made\n available with this setup function.\n \n \n [1] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#setup-and-teardown-functions\n [2] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#parameterized-benchmarks\n \"\"\"\n \n # Check config file exists\n assert Path(self.input_config_path).exists()\n \n # Instantiate a CellfinderConfig from the input json file\n # (fetches data from GIN if required)\n with open(self.input_config_path) as cfg:\n config_dict = json.load(cfg)\n config = CellfinderConfig(**config_dict)\n \n # Check paths to input data exist in config now\n assert Path(config._signal_dir_path).exists()\n assert Path(config._background_dir_path).exists()\n \n # Ensure cellfinder model is downloaded to default path\n _ = prep_models(\n model_weights_path=config.model_weights,\n install_path=None, # Use default,\n model_name=config.model,\n )", "min_run_count": 2, "name": "cellfinder.TimeFullWorkflow.time_workflow", "number": 0, "param_names": [], "params": [], "repeat": 0, "rounds": 2, "sample_time": 0.01, "setup_cache_key": "cellfinder:89", "timeout": 600, "type": "time", "unit": "seconds", "version": "9077b77b0d342732ad697abe357267012fd9f4debceb4d514eed965934340958", "warmup_time": 0.1}, "cellfinder.TimeReadInputDask.time_read_background_with_dask": {"code": "class TimeReadInputDask:\n def time_read_background_with_dask(self):\n read_with_dask(str(self.cfg._background_dir_path))\n\nclass TimeBenchmark:\n def setup(self):\n \"\"\"\n Run the cellfinder workflow setup steps.\n \n The command line input arguments are injected as dependencies.\n \"\"\"\n \n # Run setup\n cfg = setup_cellfinder_workflow(self.input_config_path)\n \n # Save configuration as attribute\n self.cfg = cfg\n\n def setup_cache(self):\n \"\"\"\n Download the input data from the GIN repository to the local\n directory specified in the default_config.json.\n \n Notes\n -----\n The `setup_cache` method only performs the computations once\n per benchmark round and then caches the result to disk [1]_. It cannot\n be parametrised [2]_. Therefore, if we sweep across different input\n JSON files, we need to ensure all data for all configs is made\n available with this setup function.\n \n \n [1] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#setup-and-teardown-functions\n [2] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#parameterized-benchmarks\n \"\"\"\n \n # Check config file exists\n assert Path(self.input_config_path).exists()\n \n # Instantiate a CellfinderConfig from the input json file\n # (fetches data from GIN if required)\n with open(self.input_config_path) as cfg:\n config_dict = json.load(cfg)\n config = CellfinderConfig(**config_dict)\n \n # Check paths to input data exist in config now\n assert Path(config._signal_dir_path).exists()\n assert Path(config._background_dir_path).exists()\n \n # Ensure cellfinder model is downloaded to default path\n _ = prep_models(\n model_weights_path=config.model_weights,\n install_path=None, # Use default,\n model_name=config.model,\n )", "min_run_count": 2, "name": "cellfinder.TimeReadInputDask.time_read_background_with_dask", "number": 0, "param_names": [], "params": [], "repeat": 0, "rounds": 2, "sample_time": 0.01, "setup_cache_key": "cellfinder:89", "timeout": 600, "type": "time", "unit": "seconds", "version": "bbf9b70a8255c1d9f634c4ed7e6a09b5fcefb20927880e84e4bc03e5a5fefdc4", "warmup_time": 0.1}, "cellfinder.TimeReadInputDask.time_read_signal_with_dask": {"code": "class TimeReadInputDask:\n def time_read_signal_with_dask(self):\n read_with_dask(str(self.cfg._signal_dir_path))\n\nclass TimeBenchmark:\n def setup(self):\n \"\"\"\n Run the cellfinder workflow setup steps.\n \n The command line input arguments are injected as dependencies.\n \"\"\"\n \n # Run setup\n cfg = setup_cellfinder_workflow(self.input_config_path)\n \n # Save configuration as attribute\n self.cfg = cfg\n\n def setup_cache(self):\n \"\"\"\n Download the input data from the GIN repository to the local\n directory specified in the default_config.json.\n \n Notes\n -----\n The `setup_cache` method only performs the computations once\n per benchmark round and then caches the result to disk [1]_. It cannot\n be parametrised [2]_. Therefore, if we sweep across different input\n JSON files, we need to ensure all data for all configs is made\n available with this setup function.\n \n \n [1] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#setup-and-teardown-functions\n [2] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#parameterized-benchmarks\n \"\"\"\n \n # Check config file exists\n assert Path(self.input_config_path).exists()\n \n # Instantiate a CellfinderConfig from the input json file\n # (fetches data from GIN if required)\n with open(self.input_config_path) as cfg:\n config_dict = json.load(cfg)\n config = CellfinderConfig(**config_dict)\n \n # Check paths to input data exist in config now\n assert Path(config._signal_dir_path).exists()\n assert Path(config._background_dir_path).exists()\n \n # Ensure cellfinder model is downloaded to default path\n _ = prep_models(\n model_weights_path=config.model_weights,\n install_path=None, # Use default,\n model_name=config.model,\n )", "min_run_count": 2, "name": "cellfinder.TimeReadInputDask.time_read_signal_with_dask", "number": 0, "param_names": [], "params": [], "repeat": 0, "rounds": 2, "sample_time": 0.01, "setup_cache_key": "cellfinder:89", "timeout": 600, "type": "time", "unit": "seconds", "version": "a7498ff39fe61ef47e23010439a5cf3f835628791b4c78941eab852e4885574c", "warmup_time": 0.1}, "cellfinder.TimeSaveCells.time_save_cells": {"code": "class TimeSaveCells:\n def time_save_cells(self):\n save_cells(self.detected_cells, self.cfg._detected_cells_path)\n\n def setup(self):\n # basic setup\n TimeBenchmark.setup(self)\n \n # add input data as arrays to config\n self.signal_array = read_with_dask(str(self.cfg._signal_dir_path))\n self.background_array = read_with_dask(\n str(self.cfg._background_dir_path)\n )\n \n # detect cells\n self.detected_cells = cellfinder_run(\n self.signal_array,\n self.background_array,\n self.cfg.voxel_sizes,\n self.cfg.start_plane,\n self.cfg.end_plane,\n self.cfg.trained_model,\n self.cfg.model_weights,\n self.cfg.model,\n self.cfg.batch_size,\n self.cfg.n_free_cpus,\n self.cfg.network_voxel_sizes,\n self.cfg.soma_diameter,\n self.cfg.ball_xy_size,\n self.cfg.ball_z_size,\n self.cfg.ball_overlap_fraction,\n self.cfg.log_sigma_size,\n self.cfg.n_sds_above_mean_thresh,\n self.cfg.soma_spread_factor,\n self.cfg.max_cluster_size,\n self.cfg.cube_width,\n self.cfg.cube_height,\n self.cfg.cube_depth,\n self.cfg.network_depth,\n )\n\nclass TimeBenchmark:\n def setup_cache(self):\n \"\"\"\n Download the input data from the GIN repository to the local\n directory specified in the default_config.json.\n \n Notes\n -----\n The `setup_cache` method only performs the computations once\n per benchmark round and then caches the result to disk [1]_. It cannot\n be parametrised [2]_. Therefore, if we sweep across different input\n JSON files, we need to ensure all data for all configs is made\n available with this setup function.\n \n \n [1] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#setup-and-teardown-functions\n [2] https://asv.readthedocs.io/en/latest/writing_benchmarks.html#parameterized-benchmarks\n \"\"\"\n \n # Check config file exists\n assert Path(self.input_config_path).exists()\n \n # Instantiate a CellfinderConfig from the input json file\n # (fetches data from GIN if required)\n with open(self.input_config_path) as cfg:\n config_dict = json.load(cfg)\n config = CellfinderConfig(**config_dict)\n \n # Check paths to input data exist in config now\n assert Path(config._signal_dir_path).exists()\n assert Path(config._background_dir_path).exists()\n \n # Ensure cellfinder model is downloaded to default path\n _ = prep_models(\n model_weights_path=config.model_weights,\n install_path=None, # Use default,\n model_name=config.model,\n )", "min_run_count": 2, "name": "cellfinder.TimeSaveCells.time_save_cells", "number": 0, "param_names": [], "params": [], "repeat": 0, "rounds": 2, "sample_time": 0.01, "setup_cache_key": "cellfinder:89", "timeout": 600, "type": "time", "unit": "seconds", "version": "4f8eb229f78782fbbedb2db7c30c911f26e55fde3faaad090fe04a5f3da5598c", "warmup_time": 0.1}}, "machines": {"Alessandros-MacBook-Pro.local": {"arch": "arm64", "cpu": "Apple M2", "machine": "Alessandros-MacBook-Pro.local", "num_cpu": "8", "os": "Darwin 22.5.0", "ram": "17179869184", "version": 1}}, "tags": {"0.3.4rc3": 23, "v0.3.10": 55, "v0.3.11": 57, "v0.3.12": 88, "v0.3.12b": 90, "v0.3.14": 175, "v0.3.4": 24, "v0.3.5": 30, "v0.3.6rc0": 34, "v0.3.7": 35, "v0.3.8": 41, "v0.3.8rc0": 37, "v0.3.9": 50, "v0.3.9rc0": 46, "v0.3.9rc1": 49, "v0.7.0": 326, "v0.7.1": 329, "v0.8.0": 480, "v1.0.0": 557, "v1.1.0": 635, "v1.1.1": 641, "v1.1.2": 654, "v1.1.3": 657, "v1.1.4": 664, "v1.1.5": 666, "v1.2.0": 707, "v0.3.11b": 68, "v0.3.13rc0": 117, "v0.3.13rc1": 120, "v0.3.13rc2": 123, "v0.3.13rc3": 132, "v0.3.13rc4": 137, "v0.3.13rc5": 138, "v0.3.13": 139, "v0.3.14rc0": 150, "v0.3.14rc0b": 151, "v0.3.14rc1": 152, "v0.3.14rc2": 155, "v0.3.14rc3": 165, "v0.3.14rc5": 168, "v0.3.14rc6": 169, "v0.3.14rc6v2": 170, "v0.3.14rc6v3": 171, "v0.3.14rc7": 173, "v0.3.14rc8": 174, "v0.3.15rc0": 177, "v0.4.0a": 193, "v0.6.0": 196, "v0.4.2": 198, "v0.4.3": 200, "v0.4.4": 203, "v0.4.5": 205, "v0.4.6": 207, "v0.4.7": 210, "v0.4.8": 214, "v0.4.9": 221, "0.4.11": 223, "0.4.12": 227, "0.4.13-rc0": 233, "0.4.13": 234, "0.5.0-rc0": 236, "0.5.0": 237, "0.4.15-rc0": 239, "0.4.15": 240, "0.4.16-rc0": 248, "0.4.16": 249, "0.4.17-rc0": 252, "0.4.17": 253, "0.4.18-rc0": 264, "0.4.18": 265, "0.4.19-rc0": 267, "0.4.19": 268, "0.4.20-rc0": 272, "0.4.20-rc1": 274, "0.4.20": 276, "0.4.21": 305}, "pages": [["", "Grid view", "Display as a agrid"], ["summarylist", "List view", "Display as a list"], ["regressions", "Show regressions", "Display information about recent regressions"]]} \ No newline at end of file diff --git a/info.json b/info.json index 445ecdad..756deaa9 100644 --- a/info.json +++ b/info.json @@ -1,4 +1,4 @@ { - "asv-version": "0.6.1", - "timestamp": 1697121501526 + "asv-version": "0.6.3", + "timestamp": 1716221845540 } \ No newline at end of file diff --git a/regressions.js b/regressions.js index 9ef132f7..7572c4b4 100644 --- a/regressions.js +++ b/regressions.js @@ -40,7 +40,7 @@ $(document).ready(function() { skip_reload = false; $('#regressions-body').append(message); $.ajax({ - url: 'regressions.json' + '?timestamp=' + $.asv.master_timestamp, + url: 'regressions.json' + '?timestamp=' + $.asv.main_timestamp, dataType: "json", cache: true }).done(function (data) { @@ -75,10 +75,10 @@ $(document).ready(function() { function display_data(data, params) { var main_div = $('
'); - var branches = $.asv.master_json.params['branch']; + var branches = $.asv.main_json.params['branch']; var all_ignored_keys = {}; - ignore_key_prefix = 'asv-r-' + $.asv.master_json.project; + ignore_key_prefix = 'asv-r-' + $.asv.main_json.project; if (branches && branches.length > 1) { /* Add a branch selector */ @@ -234,7 +234,7 @@ $(document).ready(function() { } var benchmark_basename = benchmark_name.replace(/\([\s\S]*/, ''); - var benchmark = $.asv.master_json.benchmarks[benchmark_basename]; + var benchmark = $.asv.main_json.benchmarks[benchmark_basename]; var url_params = {}; $.each(param_dict, function (key, value) { @@ -276,14 +276,14 @@ $(document).ready(function() { var benchmark_link = $('').attr('href', benchmark_url).text(benchmark_name); row.append($('').append(benchmark_link)); - var date_fmt = new Date($.asv.master_json.revision_to_date[revs[1]]); + var date_fmt = new Date($.asv.main_json.revision_to_date[revs[1]]); row.append($('').text($.asv.format_date_yyyymmdd_hhmm(date_fmt))); var commit_td = $(''); if (commit_a) { - if ($.asv.master_json.show_commit_url.match(/.*\/\/github.com\//)) { - var commit_url = ($.asv.master_json.show_commit_url + '../compare/' + if ($.asv.main_json.show_commit_url.match(/.*\/\/github.com\//)) { + var commit_url = ($.asv.main_json.show_commit_url + '../compare/' + commit_a + '...' + commit_b); commit_td.append( $('').attr('href', commit_url).text(commit_a + '..' + commit_b)); @@ -293,7 +293,7 @@ $(document).ready(function() { } } else { - var commit_url = $.asv.master_json.show_commit_url + commit_b; + var commit_url = $.asv.main_json.show_commit_url + commit_b; commit_td.append( $('').attr('href', commit_url).text(commit_b)); } @@ -389,7 +389,7 @@ $(document).ready(function() { } var benchmark_basename = benchmark_name.replace(/\(.*/, ''); - var benchmark = $.asv.master_json.benchmarks[benchmark_basename]; + var benchmark = $.asv.main_json.benchmarks[benchmark_basename]; var url_params = {}; $.each(param_dict, function (key, value) { @@ -422,8 +422,8 @@ $(document).ready(function() { } if (commit_a) { - if ($.asv.master_json.show_commit_url.match(/.*\/\/github.com\//)) { - var commit_url = ($.asv.master_json.show_commit_url + '../compare/' + if ($.asv.main_json.show_commit_url.match(/.*\/\/github.com\//)) { + var commit_url = ($.asv.main_json.show_commit_url + '../compare/' + commit_a + '...' + commit_b); commit_td.append( $('').attr('href', commit_url).text(commit_a + '..' + commit_b)); @@ -433,7 +433,7 @@ $(document).ready(function() { } } else { - var commit_url = $.asv.master_json.show_commit_url + commit_b; + var commit_url = $.asv.main_json.show_commit_url + commit_b; commit_td.append( $('').attr('href', commit_url).text(commit_b)); } @@ -451,7 +451,7 @@ $(document).ready(function() { row.append($('').append(benchmark_link)); var date_td = $(''); - var date_fmt = new Date($.asv.master_json.revision_to_date[jumps[jumps.length-1][1]]); + var date_fmt = new Date($.asv.main_json.revision_to_date[jumps[jumps.length-1][1]]); date_td.text($.asv.format_date_yyyymmdd_hhmm(date_fmt)); row.append(date_td); @@ -487,10 +487,10 @@ $(document).ready(function() { } else { ignore_payload = (ignore_payload + ',' - + $.asv.master_json.revision_to_hash[revs[0]]); + + $.asv.main_json.revision_to_hash[revs[0]]); } ignore_payload = (ignore_payload + ',' - + $.asv.master_json.revision_to_hash[revs[1]]); + + $.asv.main_json.revision_to_hash[revs[1]]); return ignore_key_prefix + md5(ignore_payload); } diff --git a/regressions.xml b/regressions.xml index 40137871..013e8b27 100644 --- a/regressions.xml +++ b/regressions.xml @@ -1,2 +1,2 @@ -tag:brainglobe_workflows.asv,1970-01-01:/14e3d00a8f78d651c9b8fc161d88143e3dc28aa5bbf6c80be428a694560dc138Airspeed Velocitybrainglobe_workflows performance regressions2023-10-12T14:38:21Z \ No newline at end of file +tag:brainglobe-workflows.asv,1970-01-01:/f6730f56867d9d75e984e170bbdf9dfad1d8cdad6f8dd8839a19070a9e5d3634Airspeed Velocitybrainglobe-workflows performance regressions2024-05-20T16:17:25Z \ No newline at end of file diff --git a/summarygrid.js b/summarygrid.js index e3d3862a..b32747f3 100644 --- a/summarygrid.js +++ b/summarygrid.js @@ -19,9 +19,9 @@ $(document).ready(function() { } function get_benchmarks_by_groups() { - var master_json = $.asv.master_json; + var main_json = $.asv.main_json; var groups = {}; - $.each(master_json.benchmarks, function(bm_name, bm) { + $.each(main_json.benchmarks, function(bm_name, bm) { var i = bm_name.indexOf('.'); var group = bm_name.slice(0, i); var name = bm_name.slice(i + 1); @@ -103,7 +103,7 @@ $(document).ready(function() { function make_summary() { var summary_display = $('#summarygrid-display'); - var master_json = $.asv.master_json; + var main_json = $.asv.main_json; var summary_container = $('
'); if (summary_loaded) { @@ -116,7 +116,7 @@ $(document).ready(function() { group_container.append($('

' + group + '

')); summary_display.append(group_container); $.each(benchmarks, function(i, bm_name) { - var bm = $.asv.master_json.benchmarks[bm_name]; + var bm = $.asv.main_json.benchmarks[bm_name]; group_container.append(benchmark_container(bm)); }); }); diff --git a/summarylist.js b/summarylist.js index 1cffaf95..e5f9e13c 100644 --- a/summarylist.js +++ b/summarylist.js @@ -57,7 +57,7 @@ $(document).ready(function() { var info = $.asv.parse_hash_string(window.location.hash); var new_state = get_valid_state(state, key, value); - $.each($.asv.master_json.params, function(param, values) { + $.each($.asv.main_json.params, function(param, values) { if (values.length > 1) { info.params[param] = [new_state[param]]; } @@ -101,7 +101,7 @@ $(document).ready(function() { tmp_state[wanted_key] = wanted_value; } - $.each($.asv.master_json.graph_param_list, function(idx, params) { + $.each($.asv.main_json.graph_param_list, function(idx, params) { var diff = obj_diff(tmp_state, params); var hit = (wanted_key === undefined || params[wanted_key] == wanted_value); @@ -113,14 +113,14 @@ $(document).ready(function() { }); if (best_params === null) { - best_params = $.asv.master_json.graph_param_list[0]; + best_params = $.asv.main_json.graph_param_list[0]; } return obj_copy(best_params); } function setup_state(state_selection) { - var index = $.asv.master_json; + var index = $.asv.main_json; var state = {}; state.machine = index.params.machine; @@ -142,7 +142,7 @@ $(document).ready(function() { } function replace_params_ui() { - var index = $.asv.master_json; + var index = $.asv.main_json; var nav = $('#summarylist-navigation'); nav.empty(); @@ -207,7 +207,7 @@ $(document).ready(function() { } function construct_benchmark_table(data) { - var index = $.asv.master_json; + var index = $.asv.main_json; /* Form a new table */ @@ -234,14 +234,14 @@ $(document).ready(function() { /* Format benchmark url */ benchmark_url_args.location = [row.name]; benchmark_url_args.params = {}; - $.each($.asv.master_json.params, function (key, values) { + $.each($.asv.main_json.params, function (key, values) { if (values.length > 1) { benchmark_url_args.params[key] = [state[key]]; } }); benchmark_base_url = $.asv.format_hash_string(benchmark_url_args); if (row.idx !== null) { - var benchmark = $.asv.master_json.benchmarks[row.name]; + var benchmark = $.asv.main_json.benchmarks[row.name]; $.each($.asv.param_selection_from_flat_idx(benchmark.params, row.idx).slice(1), function(i, param_values) { benchmark_url_args.params['p-'+benchmark.param_names[i]] @@ -281,7 +281,7 @@ $(document).ready(function() { var value_td = $(''); if (row.last_value !== null) { var value, err, err_str, sort_value; - var unit = $.asv.master_json.benchmarks[row.name].unit; + var unit = $.asv.main_json.benchmarks[row.name].unit; value = $.asv.pretty_unit(row.last_value, unit); if (unit == "seconds") { sort_value = row.last_value * 1e100; @@ -311,7 +311,7 @@ $(document).ready(function() { var change_td = $(''); if (row.prev_value !== null) { var text, change_str, change = 0, sort_value = 0; - var unit = $.asv.master_json.benchmarks[row.name].unit; + var unit = $.asv.main_json.benchmarks[row.name].unit; change_str = $.asv.pretty_unit(row.last_value - row.prev_value, unit); if (!change_str.match(/^-/)) { change_str = '+' + change_str; @@ -329,8 +329,8 @@ $(document).ready(function() { } text = text.replace('-', '\u2212'); - var change_commit_a = $.asv.master_json.revision_to_hash[row.change_rev[0]]; - var change_commit_b = $.asv.master_json.revision_to_hash[row.change_rev[1]]; + var change_commit_a = $.asv.main_json.revision_to_hash[row.change_rev[0]]; + var change_commit_b = $.asv.main_json.revision_to_hash[row.change_rev[1]]; var change_q; if (change_commit_a === undefined) { change_q = '&commits=' + change_commit_b; @@ -360,25 +360,25 @@ $(document).ready(function() { /* Change date column */ var changed_at_td = $(''); if (row.change_rev !== null) { - var date = new Date($.asv.master_json.revision_to_date[row.change_rev[1]]); + var date = new Date($.asv.main_json.revision_to_date[row.change_rev[1]]); var commit_1 = $.asv.get_commit_hash(row.change_rev[0]); var commit_2 = $.asv.get_commit_hash(row.change_rev[1]); var commit_a = $('
'); var span = $(''); if (commit_1) { var commit_url; - if ($.asv.master_json.show_commit_url.match(/.*\/\/github.com\//)) { - commit_url = ($.asv.master_json.show_commit_url + '../compare/' + if ($.asv.main_json.show_commit_url.match(/.*\/\/github.com\//)) { + commit_url = ($.asv.main_json.show_commit_url + '../compare/' + commit_1 + '...' + commit_2); } else { - commit_url = $.asv.master_json.show_commit_url + commit_2; + commit_url = $.asv.main_json.show_commit_url + commit_2; } commit_a.attr('href', commit_url); commit_a.text(commit_1 + '...' + commit_2); } else { - commit_a.attr('href', $.asv.master_json.show_commit_url + commit_2); + commit_a.attr('href', $.asv.main_json.show_commit_url + commit_2); commit_a.text(commit_2); } span.text($.asv.format_date_yyyymmdd(date) + ' ');