From 1f81cabd79a1360c85c2f4baf04e43b4cabc4fe1 Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Fri, 30 Oct 2015 15:57:33 +0100 Subject: [PATCH] Update according to last measurements. - Disabled plotting of histograms and line plots (too many results to plot) - Fixed small error for getting new-measurements --- ilp-measurement.ipynb | 300 +++++++++++++++++++----------------------- ilp_measurement.py | 3 +- 2 files changed, 140 insertions(+), 163 deletions(-) diff --git a/ilp-measurement.ipynb b/ilp-measurement.ipynb index 1d42a4c..d9178c7 100644 --- a/ilp-measurement.ipynb +++ b/ilp-measurement.ipynb @@ -27,7 +27,7 @@ "from datetime import datetime\n", "from itertools import *\n", "from operator import itemgetter\n", - "import json, sys, traceback" + "import json, sys, traceback, os" ] }, { @@ -40,8 +40,8 @@ "source": [ "spec_files = glob('profiling/*/specs')\n", "spec_files.sort()\n", - "specs = [np.genfromtxt(f, delimiter=' ', dtype=int)\n", - " for f in spec_files]" + "specs = {os.path.basename(os.path.dirname(f)):np.genfromtxt(f, delimiter=' ', dtype=int)\n", + " for f in spec_files}" ] }, { @@ -58,15 +58,17 @@ "lastpe = False\n", "line_def = []\n", "color_def = []\n", - "for spec in specs:\n", - " pe, comp, impl, mode = (spec[2], spec[4], spec[5], spec[6])\n", - " if not lastpe or lastpe != pe:\n", - " color = next(colorcycle)\n", - " linecycle = cycle(linestyles)\n", - " line = next(linecycle)\n", - " lastpe = pe\n", - " line_def.append(line)\n", - " color_def.append(color)" + "## Currently disabled due to fragile and unused output\n", + "if False:\n", + " for spec in specs:\n", + " pe, comp, impl, mode = (spec[2], spec[4], spec[5], spec[6])\n", + " if not lastpe or lastpe != pe:\n", + " color = next(colorcycle)\n", + " linecycle = cycle(linestyles)\n", + " line = next(linecycle)\n", + " lastpe = pe\n", + " line_def.append(line)\n", + " color_def.append(color)" ] }, { @@ -144,7 +146,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Kinds: {u'strategies': [u'normal', u'flush', u'noncached'], u'changes': [u'update', u'sw', u'res']}\n" + "Kinds: {u'strategies': [u'normal', u'flush', u'noncached'], u'changes': [u'update', u'sw', u'res', u'complex']}\n" ] } ], @@ -183,8 +185,8 @@ " if dat2.size == 0:\n", " print 'Did not load any record for {}'.format(name)\n", " else:\n", - " print 'Loaded {0} record(s) for {1} ({2[0]}x{2[1]} unique) ~= {3} run(s)'.format(\n", - " len_dat, name, dat2.shape, safe_div(len_dat,dat2.size))\n", + " runs = '~= {} run(s)'.format(safe_div(len_dat,dat2.size)) if len_dat > 1 else '- no data'\n", + " print 'Loaded {0} record(s) for {1} ({2[0]}x{2[1]} unique) {3}'.format(len_dat, name, dat2.shape, runs)\n", " dat3 = dat2\n", " return dat2\n", "\n", @@ -274,7 +276,7 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 12, "metadata": { "collapsed": false, "scrolled": false @@ -284,33 +286,42 @@ "name": "stdout", "output_type": "stream", "text": [ - "Loaded 1072 record(s) for update_normal_plt-r6rs (8x31 unique) ~= 4 run(s)\n", + "Loaded 1320 record(s) for update_normal_plt-r6rs (8x31 unique) ~= 5 run(s)\n", "Loaded 504 record(s) for update_flush_plt-r6rs (8x31 unique) ~= 2 run(s)\n", "Loaded 600 record(s) for update_noncached_plt-r6rs (8x31 unique) ~= 2 run(s)\n", - "Loaded 147 record(s) for sw_normal_plt-r6rs (7x4 unique) ~= 5 run(s)\n", + "Loaded 364 record(s) for sw_normal_plt-r6rs (7x31 unique) ~= 1 run(s)\n", "Loaded 245 record(s) for sw_flush_plt-r6rs (7x31 unique) ~= 1 run(s)\n", "Loaded 602 record(s) for sw_noncached_plt-r6rs (7x31 unique) ~= 2 run(s)\n", - "Loaded 143 record(s) for res_normal_plt-r6rs (7x4 unique) ~= 5 run(s)\n", + "Loaded 360 record(s) for res_normal_plt-r6rs (7x31 unique) ~= 1 run(s)\n", "Loaded 245 record(s) for res_flush_plt-r6rs (7x31 unique) ~= 1 run(s)\n", "Loaded 392 record(s) for res_noncached_plt-r6rs (7x31 unique) ~= 1 run(s)\n", + "Loaded 242 record(s) for complex_normal_plt-r6rs (11x11 unique) ~= 2 run(s)\n", + "Loaded 1 record(s) for complex_flush_plt-r6rs (1x1 unique) - no data\n", + "Loaded 1 record(s) for complex_noncached_plt-r6rs (1x1 unique) - no data\n", "Loaded 264 record(s) for update_normal_larceny (8x31 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for update_flush_larceny (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for update_noncached_larceny (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for sw_normal_larceny (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for sw_flush_larceny (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for sw_noncached_larceny (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for res_normal_larceny (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for res_flush_larceny (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for res_noncached_larceny (1x1 unique) ~= 1 run(s)\n", + "Loaded 1 record(s) for update_flush_larceny (1x1 unique) - no data\n", + "Loaded 1 record(s) for update_noncached_larceny (1x1 unique) - no data\n", + "Loaded 1 record(s) for sw_normal_larceny (1x1 unique) - no data\n", + "Loaded 1 record(s) for sw_flush_larceny (1x1 unique) - no data\n", + "Loaded 1 record(s) for sw_noncached_larceny (1x1 unique) - no data\n", + "Loaded 1 record(s) for res_normal_larceny (1x1 unique) - no data\n", + "Loaded 1 record(s) for res_flush_larceny (1x1 unique) - no data\n", + "Loaded 1 record(s) for res_noncached_larceny (1x1 unique) - no data\n", + "Loaded 1 record(s) for complex_normal_larceny (1x1 unique) - no data\n", + "Loaded 1 record(s) for complex_flush_larceny (1x1 unique) - no data\n", + "Loaded 1 record(s) for complex_noncached_larceny (1x1 unique) - no data\n", "Loaded 88 record(s) for update_normal_java (1x31 unique) ~= 2 run(s)\n", - "Loaded 1 record(s) for update_flush_java (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for update_noncached_java (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for sw_normal_java (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for sw_flush_java (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for sw_noncached_java (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for res_normal_java (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for res_flush_java (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for res_noncached_java (1x1 unique) ~= 1 run(s)\n" + "Loaded 1 record(s) for update_flush_java (1x1 unique) - no data\n", + "Loaded 1 record(s) for update_noncached_java (1x1 unique) - no data\n", + "Loaded 1 record(s) for sw_normal_java (1x1 unique) - no data\n", + "Loaded 1 record(s) for sw_flush_java (1x1 unique) - no data\n", + "Loaded 1 record(s) for sw_noncached_java (1x1 unique) - no data\n", + "Loaded 1 record(s) for res_normal_java (1x1 unique) - no data\n", + "Loaded 1 record(s) for res_flush_java (1x1 unique) - no data\n", + "Loaded 1 record(s) for res_noncached_java (1x1 unique) - no data\n", + "Loaded 1 record(s) for complex_normal_java (1x1 unique) - no data\n", + "Loaded 1 record(s) for complex_flush_java (1x1 unique) - no data\n", + "Loaded 1 record(s) for complex_noncached_java (1x1 unique) - no data\n" ] } ], @@ -333,14 +344,17 @@ "output_type": "stream", "text": [ "Loaded 23 record(s) for update_java (1x23 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for sw_java (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for res_java (1x1 unique) ~= 1 run(s)\n", + "Loaded 1 record(s) for sw_java (1x1 unique) - no data\n", + "Loaded 1 record(s) for res_java (1x1 unique) - no data\n", + "Loaded 1 record(s) for complex_java (1x1 unique) - no data\n", "Loaded 1656 record(s) for update_glpk (8x23 unique) ~= 9 run(s)\n", - "Loaded 1 record(s) for sw_glpk (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for res_glpk (1x1 unique) ~= 1 run(s)\n", + "Loaded 1 record(s) for sw_glpk (1x1 unique) - no data\n", + "Loaded 1 record(s) for res_glpk (1x1 unique) - no data\n", + "Loaded 1 record(s) for complex_glpk (1x1 unique) - no data\n", "Loaded 216 record(s) for update_gurobi (8x27 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for sw_gurobi (1x1 unique) ~= 1 run(s)\n", - "Loaded 1 record(s) for res_gurobi (1x1 unique) ~= 1 run(s)\n" + "Loaded 1 record(s) for sw_gurobi (1x1 unique) - no data\n", + "Loaded 1 record(s) for res_gurobi (1x1 unique) - no data\n", + "Loaded 1 record(s) for complex_gurobi (1x1 unique) - no data\n" ] } ], @@ -525,63 +539,47 @@ "cell_type": "code", "execution_count": 18, "metadata": { - "collapsed": false, - "scrolled": true + "collapsed": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Change = update\n", - "Stategy = normal\n", - "Stategy = flush\n", - "Stategy = noncached\n", - "Change = sw\n", - "Stategy = normal\n", - "Stategy = flush\n", - "Stategy = noncached\n", - "Change = res\n", - "Stategy = normal\n", - "Stategy = flush\n", - "Stategy = noncached\n" - ] - } - ], + "outputs": [], "source": [ - "START_STEP, MAX_PLOTS_IN_ONE = 0, 7\n", - "for change in kinds['changes']:\n", - " print 'Change = {}'.format(change)\n", - " for strategy in kinds['strategies']:\n", - " print 'Stategy = {}'.format(strategy)\n", - " current_plot, ax_nr, last_res = 0, 0, -1\n", - " gen_params = []\n", + "## Currently disabled due to fragile and unused output\n", + "if False:\n", + " START_STEP, MAX_PLOTS_IN_ONE = 0, 7\n", + " for change in kinds['changes']:\n", + " print 'Change = {}'.format(change)\n", + " for strategy in kinds['strategies']:\n", + " ax_nr = 0\n", + " print 'Stategy = {}'.format(strategy)\n", + " current_plot, ax_nr, last_res = 0, 0, -1\n", + " gen_params = []\n", + " for i in xrange(len(specs)):\n", + " current_res = specs[i][2]\n", + " current_plot += 1\n", + " if current_plot > MAX_PLOTS_IN_ONE and last_res != current_res:\n", + " ax_nr += 1\n", + " current_plot = 0\n", + " gen_params.append([ax_nr, line_def[i], color_def[i], '{2:d} x ({4}*{5}*{6})'.format(*specs[i]),\n", + " safe(racket_dats[change][strategy],i,START_STEP),\n", + " safe(larceny_dats[change][strategy],i,START_STEP),\n", + " safe(java_dats[change][strategy],i)])\n", + " last_res = current_res\n", + " draw_gen(change, strategy, gen_params)\n", + " # end of for strategies\n", + " sol_params = []\n", + " ax_nr = 0\n", " for i in xrange(len(specs)):\n", " current_res = specs[i][2]\n", " current_plot += 1\n", " if current_plot > MAX_PLOTS_IN_ONE and last_res != current_res:\n", " ax_nr += 1\n", " current_plot = 0\n", - " gen_params.append([ax_nr, line_def[i], color_def[i], '{2:d} x ({4}*{5}*{6})'.format(*specs[i]),\n", - " safe(racket_dats[change][strategy],i,START_STEP),\n", - " safe(larceny_dats[change][strategy],i,START_STEP),\n", - " safe(java_dats[change][strategy],i)])\n", - " last_res = current_res\n", - " draw_gen(change, strategy, gen_params)\n", - " # end of for strategies\n", - " sol_params = []\n", - " for i in xrange(len(specs)):\n", - " current_res = specs[i][2]\n", - " current_plot += 1\n", - " if current_plot > MAX_PLOTS_IN_ONE and last_res != current_res:\n", - " ax_nr += 1\n", - " current_plot = 0\n", - " sol_params.append([ax_nr, line_def[i], color_def[i], '{2:d} x ({4}*{5}*{6})'.format(*specs[i]),\n", - " safe(glpk_dats[change],i),\n", - " safe(gurobi_dats[change],i),\n", - " safe(java_glpk_dats[change],i)])\n", - " draw_sol(change, sol_params)\n", - " draw_comp_sol(change, sol_params)" + " sol_params.append([ax_nr, line_def[i], color_def[i], '{2:d} x ({4}*{5}*{6})'.format(*specs[i]),\n", + " safe(glpk_dats[change],i),\n", + " safe(gurobi_dats[change],i),\n", + " safe(java_glpk_dats[change],i)])\n", + " draw_sol(change, sol_params)\n", + " draw_comp_sol(change, sol_params)" ] }, { @@ -593,7 +591,7 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -603,11 +601,11 @@ "output_type": "stream", "text": [ "java:\n", - "update normal,flush,noncached,sw normal,flush,noncached,res normal,flush,noncached,\n", + "update normal,flush,noncached,sw normal,flush,noncached,res normal,flush,noncached,complex normal,flush,noncached,\n", "racket:\n", - "update normal,flush,noncached,sw normal,flush,noncached,res normal,flush,noncached,\n", + "update normal,flush,noncached,sw normal,flush,noncached,res normal,flush,noncached,complex normal,flush,noncached,\n", "larceny:\n", - "update normal,flush,noncached,sw normal,flush,noncached,res normal,flush,noncached,\n" + "update normal,flush,noncached,sw normal,flush,noncached,res normal,flush,noncached,complex normal,flush,noncached,\n" ] } ], @@ -634,35 +632,6 @@ " print ''" ] }, - { - "cell_type": "code", - "execution_count": 75, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 0.11233333, 0.232 , 2.68466667, 17.38466667,\n", - " 0.22333333, 0.425 , 4.66133333, 27.80933333,\n", - " 1.99533333, 3.10233333, 4.571 , 8.01466667,\n", - " 12.933 , 15.591 , 17.8645 , 20.346 ,\n", - " 26.3685 , 30.233 , 36.174 , 28.7835 ,\n", - " 34.767 , 40.7045 , 47.6145 , 4.9425 ,\n", - " 10.56 , 17.1415 , 23.537 , 0.5305 ,\n", - " 1.237 , 2.7165 , 8.988 ])" - ] - }, - "execution_count": 75, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "racket_dats['update']['noncached'][0]" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -672,7 +641,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 20, "metadata": { "collapsed": false }, @@ -682,11 +651,11 @@ "output_type": "stream", "text": [ "java:\n", - "update sw res \n", + "update sw res complex \n", "glpk:\n", - "update sw res \n", + "update sw res complex \n", "gurobi:\n", - "update sw res \n" + "update sw res complex \n" ] } ], @@ -718,34 +687,38 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 21, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { - "data": { - "text/plain": [ - "(array([ 0.82 , 0.239, 2.284, 19.2 , 0.21 , 0.319, 3.414,\n", - " 27.39 , 1.433, 2.482, 3.342, 6.396, 10.884, 12.314,\n", - " 14.289, 15.988, 21.376, 26.704, 32.28 , 24.226, 29.95 ,\n", - " 36.352, 43.842, 3.219, 7.972, 12.263, 17.145, 0.352,\n", - " 0.763, 2.226, 9.606]),\n", - " array([ 0.17 , 0.187 , 1.766 , 11.3 , 0.3 , 0.403 ,\n", - " 3.304 , 22.73 , 1.439 , 2.375 , 3.521 , 6.308 ,\n", - " 10.359 , 12.319 , 15.182 , 18.13 , 22.5205, 27.992 ,\n", - " 32.143 , 25.217 , 30.606 , 38.144 , 45.88 , 4.294 ,\n", - " 9.545 , 16.402 , 24.272 , 0.362 , 0.711 , 1.518 , 3.948 ]))" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0 0 2 15 0 0 3 21 1 1 2 5 9 10 13 13 17 22 27 20 25 30 37 2 6\n", + " 10 14 0 0 1 7 0 0 1 14 0 0 3 19 1 1 2 5 8 10 12 14 17 21 25\n", + " 19 24 28 34 3 6 10 14 0 0 1 6 0 0 1 14 0 0 3 19 1 1 2 5 8\n", + " 10 12 14 17 21 25 19 23 29 35 2 6 10 14 0 0 1 6 0 5 9 11 13 14 22\n", + " 2 7 11 15 0 0 1 15 0 0 3 22 1 1 2 5 9 10 13 14 18 22 28 20 26\n", + " 30 36 2 6 10 14 0 0 1 8 0 0 1 15 0 0 2 17 1 1 2 4 7 9 10\n", + " 11 14 18 24 16 20 25 30 2 5 9 12 0 0 1 6 0 0 1 15 0 0 2 17 1\n", + " 1 2 4 8 9 11 11 14 18 22 16 20 25 31 2 5 8 12 0 0 1 6 0 0 0\n", + " 2 17 0 0 4 27 1 3 4 8 12 15 17 20 26 30 36 28 34 40 47 4 10 17 23\n", + " 0 1 2 8 0 0 2 15 0 0 4 27 1 3 4 8 12 15 17 20 24 30 36 28 33\n", + " 40 47 4 10 16 22 0 1 2 8 0 0 2 15 0 0 4 26 1 3 4 8 12 14 17\n", + " 19 24 30 35 28 33 40 48 5 10 16 24 0 1 2 9 0] <- Racket\n", + "[ 0 0 1 11 0 0 3 22 1 2 3 6 10 12 15 18 22 27 32 25 30 38 45 4 9\n", + " 16 24 0 0 1 3 0 0 0 0 0 0 0 0 0 0 0] <- Larceny\n" + ] } ], "source": [ - "(racket_dat[0], larceny_dat[0])" + "print reduce(lambda x,y: np.concatenate((x,y)),[racket_dats[change][strategy][0] for strategy in kinds['strategies']\n", + " for change in kinds['changes']]).astype(int), '<- Racket'\n", + "print reduce(lambda x,y: np.concatenate((x,y)),[larceny_dats[change][strategy][0] for strategy in kinds['strategies']\n", + " for change in kinds['changes']]).astype(int), '<- Larceny'" ] }, { @@ -760,7 +733,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 22, "metadata": { "collapsed": true }, @@ -775,7 +748,9 @@ " elif prefix == 'sw':\n", " return 31+number\n", " elif prefix == 'res':\n", - " return 35+number\n", + " return 62+number\n", + " elif prefix == 'complex':\n", + " return 93+number\n", " elif prefix == '':\n", " pass\n", " else:\n", @@ -793,7 +768,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 23, "metadata": { "collapsed": false, "scrolled": true @@ -803,7 +778,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Loaded 93 (230 zero-values) attribute metric(s) from profiling/att-percentages.csv\n" + "Loaded 104 (173 zero-values) attribute metric run(s) from profiling/att-percentages.csv\n" ] }, { @@ -812,7 +787,7 @@ "dtype([('dir', '<f8'), ('normalBaseline', '<f8'), ('flushedBaseline', '<f8'), ('noncachedBaseline', '<f8'), ('ratioNormalToFlushed', '<f8'), ('ratioNormalToNoncached', '<f8'), ('ratioFlushedToNoncached', '<f8'), ('speedupNormalToFlushed', '<f8'), ('speedupNormalToNoncached', '<f8'), ('speedupFlushedToNoncached', '<f8')])" ] }, - "execution_count": 43, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -832,7 +807,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 24, "metadata": { "collapsed": false, "scrolled": false @@ -866,7 +841,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -900,7 +875,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 26, "metadata": { "collapsed": false, "scrolled": true @@ -933,7 +908,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -942,9 +917,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "Loaded 31 (0 zero-values) attribute metric(s) from profiling/splitted/att-percentages_update.csv\n", - "Loaded 31 (81 zero-values) attribute metric(s) from profiling/splitted/att-percentages_sw.csv\n", - "Loaded 31 (149 zero-values) attribute metric(s) from profiling/splitted/att-percentages_res.csv\n" + "Loaded 31 (0 zero-values) attribute metric run(s) from profiling/splitted/att-percentages_update.csv\n", + "Loaded 31 (0 zero-values) attribute metric run(s) from profiling/splitted/att-percentages_sw.csv\n", + "Loaded 31 (85 zero-values) attribute metric run(s) from profiling/splitted/att-percentages_res.csv\n", + "Loaded 11 (88 zero-values) attribute metric run(s) from profiling/splitted/att-percentages_complex.csv\n" ] } ], @@ -957,7 +933,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 28, "metadata": { "collapsed": true }, @@ -968,7 +944,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 29, "metadata": { "collapsed": true }, @@ -1002,7 +978,7 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -1051,7 +1027,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 31, "metadata": { "collapsed": true }, diff --git a/ilp_measurement.py b/ilp_measurement.py index 8e4b7cd..e9d6046 100644 --- a/ilp_measurement.py +++ b/ilp_measurement.py @@ -436,7 +436,8 @@ def setup(name = None, to_default = False): @task(name = 'new-measurements') def new_measurements(): - name = execute(get_remote_measurements) + result = execute(get_remote_measurements) + name = result.values()[0] # result maps hosts to result execute(incoporate_remote_measurements, name) execute(conflate_results) execute(distinction_of_changes) -- GitLab