8#include "performancePlots.hpp" 
   10bool isTestInSet(std::set<std::string> &testSet, std::string name)
 
   12    auto it = testSet.find(name);
 
   13    bool res = it != testSet.end();
 
   14    std::cout << 
"isTestInSet - key=\""+ name +
"\", found=" << res << std::endl;
 
   20    const char *perfResultsXmlFile = 
"SparseGridGpu_performance.xml";
 
   22    unsigned int plotCounter = 0;
 
   24    plotDense2DHost(report_sparsegrid_funcs, testSet, plotCounter);
 
   25    plotSparse2DHost(report_sparsegrid_funcs, testSet, plotCounter);
 
   26    plotDense2D(report_sparsegrid_funcs, testSet, plotCounter);
 
   27    plotDense2DComparison(report_sparsegrid_funcs, testSet, plotCounter);
 
   28    plotDense2DZ(report_sparsegrid_funcs, testSet, plotCounter);
 
   29    plotDense2DZComparison(report_sparsegrid_funcs, testSet, plotCounter);
 
   30    plotDense2DGetComparison(report_sparsegrid_funcs, testSet, plotCounter);
 
   31    plotDense2DSkeletonComparison(report_sparsegrid_funcs, testSet, plotCounter);
 
   32    plotDense3D(report_sparsegrid_funcs, testSet, plotCounter);
 
   33    plotDense3DComparison(report_sparsegrid_funcs, testSet, plotCounter);
 
   34    plotSparse2DComparison(report_sparsegrid_funcs, testSet, plotCounter);
 
   35    plotSparse3D(report_sparsegrid_funcs, testSet, plotCounter);
 
   36    plotDenseSparse2DComparison(report_sparsegrid_funcs, testSet, plotCounter);
 
   38    plotDense2DStencilInsert(report_sparsegrid_funcs, testSet, plotCounter);
 
   39    plotDense2DStencilInsertComparison(report_sparsegrid_funcs, testSet, plotCounter);
 
   40    plotDense2DStencilInplaceInsertComparison(report_sparsegrid_funcs, testSet, plotCounter);
 
   41    plotDense2DStencilInplaceInsertComparison16(report_sparsegrid_funcs, testSet, plotCounter);
 
   42    plotInsertSingle2D(report_sparsegrid_funcs, testSet, plotCounter);
 
   43    plotInsertBlock2D(report_sparsegrid_funcs, testSet, plotCounter);
 
   45    plotGetSingle2D(report_sparsegrid_funcs, testSet, plotCounter);
 
   46    plotGetNeighbourhood2D(report_sparsegrid_funcs, testSet, plotCounter);
 
   50    std::string file_xml_results(test_dir);
 
   51    file_xml_results += std::string(
"/") + std::string(perfResultsXmlFile);
 
   53    boost::property_tree::xml_writer_settings<std::string> settings(
' ', 4);
 
   54    boost::property_tree::write_xml(file_xml_results, report_sparsegrid_funcs.graphs, std::locale(), settings);
 
   56    std::string file_xml_ref(test_dir);
 
   58    file_xml_ref += std::string(
"/") + std::string(perfResultsXmlFile); 
 
   62    StandardXMLPerformanceGraph(file_xml_results, file_xml_ref, cg, 1);
 
   64    addUpdateTime(cg,1,
"data",
"SparseGridGpu_performance");
 
   65    cg.
write(
"SparseGridGpu_performance.html");
 
   69                            unsigned int plotCounter)
 
   72    std::string dim = 
"2";
 
   73    std::string pattern = 
"sparse";
 
   74    std::string linMode = 
"N";
 
   75    std::string baseDense = 
"performance.SparseGridGpu.device.stencil.dense." + linMode + 
"." + dim + 
"D";
 
   76    std::string baseSparse = 
"performance.SparseGridGpu.device.stencil." + pattern + 
"." + linMode + 
"." + dim + 
"D";
 
   78    if( isTestInSet(testSet, baseDense + 
".8.gridScaling")
 
   79        && isTestInSet(testSet, baseSparse + 
".05.gridScaling")
 
   80        && isTestInSet(testSet, baseSparse + 
".08.gridScaling")
 
   81        && isTestInSet(testSet, baseSparse + 
".09.gridScaling") )
 
   83        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
   84        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
   85        int bes = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
   86                baseSparse + 
".05.gridScaling(0).blockSize"));
 
   87        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
   88                                           "SparseGridGPU stencil dense-" + pattern + 
" " + linMode + 
" " + dim + 
"D" 
   89                                           + 
" grid scaling performance, blockEdge=" + std::to_string(bes));
 
   90        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
   91        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
   92        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
   93                                           baseDense + 
".8.gridScaling(#).GFlops.mean");
 
   94        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
   95                                           baseSparse + 
".05.gridScaling(#).GFlops.mean");
 
   96        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).source",
 
   97                                           baseSparse + 
".08.gridScaling(#).GFlops.mean");
 
   98        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).source",
 
   99                                           baseSparse + 
".09.gridScaling(#).GFlops.mean");
 
  100        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  101                                           baseDense + 
".8.gridScaling(#).gridSize.x");
 
  102        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
  103                                           baseSparse + 
".05.gridScaling(#).gridSize.x");
 
  104        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(2).source",
 
  105                                           baseSparse + 
".08.gridScaling(#).gridSize.x");
 
  106        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(3).source",
 
  107                                           baseSparse + 
".09.gridScaling(#).gridSize.x");
 
  108   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  110        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  112        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title",
 
  114        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).title",
 
  116        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).title",
 
  120    if( isTestInSet(testSet, baseDense + 
".blockScaling")
 
  121        && isTestInSet(testSet, baseSparse + 
".05.blockScaling")
 
  122        && isTestInSet(testSet, baseSparse + 
".08.blockScaling")
 
  123        && isTestInSet(testSet, baseSparse + 
".09.blockScaling") )
 
  125        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  126        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  127        int bes = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  128                baseSparse + 
".05.blockScaling(0).gridSize.x"));
 
  129        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  130                                           "SparseGridGPU stencil dense-" + pattern + 
" " + linMode + 
" " + dim + 
"D" 
  131                                           + 
" grid scaling performance, gridEdge=" + std::to_string(bes));
 
  132        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"BlockEdgeSize");
 
  133        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  134        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  135                                           baseDense + 
".blockScaling(#).GFlops.mean");
 
  136        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
  137                                           baseSparse + 
".05.blockScaling(#).GFlops.mean");
 
  138        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).source",
 
  139                                           baseSparse + 
".08.blockScaling(#).GFlops.mean");
 
  140        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).source",
 
  141                                           baseSparse + 
".09.blockScaling(#).GFlops.mean");
 
  142        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  143                                           baseDense + 
".blockScaling(#).blockSize");
 
  144        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
  145                                           baseSparse + 
".05.blockScaling(#).blockSize");
 
  146        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(2).source",
 
  147                                           baseSparse + 
".08.blockScaling(#).blockSize");
 
  148        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(3).source",
 
  149                                           baseSparse + 
".09.blockScaling(#).blockSize");
 
  150   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  152        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  154        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title",
 
  156        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).title",
 
  158        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).title",
 
  165                  unsigned int &plotCounter)
 
  167    std::string dim = 
"3";
 
  168    std::string pattern = 
"sparse";
 
  169    std::string linMode = 
"N";
 
  170    std::string base = 
"performance.SparseGridGpu.device.stencil." + pattern + 
"." + linMode + 
"." + dim + 
"D";
 
  172    if( isTestInSet(testSet, base + 
".05.gridScaling") )
 
  174        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  175        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  176        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  177                                           "SparseGridGPU stencil " + pattern + 
" " + linMode + 
" " + dim + 
"D" 
  178                                           + 
" grid scaling performance");
 
  179        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  180        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  181        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  182                                           base + 
"05.gridScaling(#).GFlops.mean");
 
  183        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  184                                           base + 
"05.gridScaling(#).gridSize.x");
 
  185   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  186        int bes = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  187                base + 
"05.gridScaling(0).blockSize"));
 
  188        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  189                                           "blockEdge=" + std::to_string(bes));
 
  192    if( isTestInSet(testSet, base + 
".05.blockScaling") )
 
  194        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  195        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  196        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  197                                           "SparseGridGPU stencil "+pattern+
" "+linMode+
" "+dim+
"D" 
  198                                           +
" block scaling performance");
 
  199        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title",
 
  201        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  202        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  203                                           base + 
"05.blockScaling(#).GFlops.mean");
 
  204        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  205                                           base + 
"05.blockScaling(#).blockSize");
 
  206   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x",
true);
 
  207        int ges = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  208                base + 
"05.blockScaling(0).gridSize.x"));
 
  209        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  210                                           "gridEdge=" + std::to_string(ges));
 
  216                            unsigned int &plotCounter)
 
  218    std::string dim = 
"2";
 
  219    std::string pattern = 
"sparse";
 
  220    std::string linMode = 
"N";
 
  221    std::string baseSparse = 
"performance.SparseGridGpu.device.stencil." + pattern + 
"." + linMode + 
"." + dim + 
"D";
 
  223    if( isTestInSet(testSet, baseSparse + 
".05.gridScaling")
 
  224        && isTestInSet(testSet, baseSparse + 
".08.gridScaling")
 
  225        && isTestInSet(testSet, baseSparse + 
".09.gridScaling") )
 
  227        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  228        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  229        int bes = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  230                baseSparse + 
".05.gridScaling(0).blockSize"));
 
  231        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  232                                           "SparseGridGPU stencil " + pattern + 
" " + linMode + 
" " + dim + 
"D" 
  233                                           + 
" grid scaling performance, blockEdge=" + std::to_string(bes));
 
  234        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  235        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  236        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  237                                           baseSparse + 
".05.gridScaling(#).GFlops.mean");
 
  238        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
  239                                           baseSparse + 
".08.gridScaling(#).GFlops.mean");
 
  240        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).source",
 
  241                                           baseSparse + 
".09.gridScaling(#).GFlops.mean");
 
  242        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  243                                           baseSparse + 
".05.gridScaling(#).gridSize.x");
 
  244        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
  245                                           baseSparse + 
".08.gridScaling(#).gridSize.x");
 
  246        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(2).source",
 
  247                                           baseSparse + 
".09.gridScaling(#).gridSize.x");
 
  248   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  250        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  252        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title",
 
  254        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).title",
 
  258    if( isTestInSet(testSet, baseSparse + 
".05.blockScaling")
 
  259        && isTestInSet(testSet, baseSparse + 
".08.blockScaling")
 
  260        && isTestInSet(testSet, baseSparse + 
".09.blockScaling") )
 
  262        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  263        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  264        int bes = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  265                baseSparse + 
".05.blockScaling(0).gridSize.x"));
 
  266        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  267                                           "SparseGridGPU stencil " + pattern + 
" " + linMode + 
" " + dim + 
"D" 
  268                                           + 
" grid scaling performance, gridEdge=" + std::to_string(bes));
 
  269        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"BlockEdgeSize");
 
  270        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  271        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  272                                           baseSparse + 
".05.blockScaling(#).GFlops.mean");
 
  273        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
  274                                           baseSparse + 
".08.blockScaling(#).GFlops.mean");
 
  275        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).source",
 
  276                                           baseSparse + 
".09.blockScaling(#).GFlops.mean");
 
  277        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  278                                           baseSparse + 
".05.blockScaling(#).blockSize");
 
  279        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
  280                                           baseSparse + 
".08.blockScaling(#).blockSize");
 
  281        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(2).source",
 
  282                                           baseSparse + 
".09.blockScaling(#).blockSize");
 
  283   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  285        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  287        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title",
 
  289        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).title",
 
  296                 unsigned int &plotCounter)
 
  298    std::string dim = 
"3";
 
  299    std::string linMode = 
"N";
 
  300    std::string base = 
"performance.SparseGridGpu.device.stencil.dense." + linMode + 
"." + dim + 
"D";
 
  302    if( isTestInSet(testSet, base + 
".gridScaling") )
 
  304        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  305        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  306        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  307                                           "SparseGridGPU stencil " + linMode + 
" " + dim + 
"D" +
 
  308                                           " grid scaling performance");
 
  309        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  310        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  311        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  312                                           base + 
".gridScaling(#).GFlops.mean");
 
  313        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  314                                           base + 
".gridScaling(#).gridSize.x");
 
  315        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  316        int bes = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  317                base + 
".gridScaling(0).blockSize"));
 
  318        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  319                                           "blockEdge=" + std::to_string(bes));
 
  322    if( isTestInSet(testSet, base + 
".blockScaling") )
 
  324        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  325        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  326        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  327                                           "SparseGridGPU stencil "+linMode+
" "+dim+
"D"+
" block scaling performance");
 
  328        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title",
 
  330        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  331        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  332                                           base + 
".blockScaling(#).GFlops.mean");
 
  333        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  334                                           base + 
".blockScaling(#).blockSize");
 
  335        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x",
true);
 
  336        int ges = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  337                base + 
".blockScaling(0).gridSize.x"));
 
  338        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  339                                           "gridEdge=" + std::to_string(ges));
 
  345                  unsigned int &plotCounter)
 
  347    std::string dim = 
"2";
 
  348    std::string linMode = 
"Z";
 
  349    std::string base = 
"performance.SparseGridGpu.device.stencil.dense." + linMode + 
"." + dim + 
"D";
 
  351    if( isTestInSet(testSet, base + 
".gridScaling") )
 
  353        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  354        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  355        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  356                                           "SparseGridGPU stencil " + linMode + 
" " + dim + 
"D" +
 
  357                                           " grid scaling performance");
 
  358        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  359        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  360        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  361                                           base + 
".gridScaling(#).GFlops.mean");
 
  362        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  363                                           base + 
".gridScaling(#).gridSize.x");
 
  364   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  365        int bes = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  366                base + 
".gridScaling(0).blockSize"));
 
  367        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  368                                           "blockEdge=" + std::to_string(bes));
 
  371    if( isTestInSet(testSet, base + 
".blockScaling") )
 
  373        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  374        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  375        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  376                                           "SparseGridGPU stencil "+linMode+
" "+dim+
"D"+
" block scaling performance");
 
  377        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title",
 
  379        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  380        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  381                                           base + 
".blockScaling(#).GFlops.mean");
 
  382        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  383                                           base + 
".blockScaling(#).blockSize");
 
  384   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x",
true);
 
  385        int ges = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  386                base + 
".blockScaling(0).gridSize.x"));
 
  387        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  388                                           "gridEdge=" + std::to_string(ges));
 
  394                 unsigned int &plotCounter)
 
  396    std::string dim = 
"2";
 
  397    std::string linMode = 
"N";
 
  398    std::string base = 
"performance.SparseGridGpu.host.stencil.dense." + linMode + 
"." + dim + 
"D";
 
  400    if( isTestInSet(testSet, base + 
".gridScaling") )
 
  402        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  403        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  404        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  405                                           "SparseGridGPU stencil " + linMode + 
" " + dim + 
"D" +
 
  406                                           " grid scaling performance");
 
  407        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  408        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  409        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  410                                           base + 
".gridScaling(#).GFlops.mean");
 
  411        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  412                                           base + 
".gridScaling(#).gridSize.x");
 
  413   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  414        int bes = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  415                base + 
".gridScaling(0).blockSize"));
 
  416        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  417                                           "blockEdge=" + std::to_string(bes));
 
  420    if( isTestInSet(testSet, base + 
".blockScaling") )
 
  422        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  423        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  424        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  425                                           "SparseGridGPU stencil "+linMode+
" "+dim+
"D"+
" block scaling performance");
 
  426        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title",
 
  428        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  429        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  430                                           base + 
".blockScaling(#).GFlops.mean");
 
  431        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  432                                           base + 
".blockScaling(#).blockSize");
 
  433   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x",
true);
 
  434        int ges = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  435                base + 
".blockScaling(0).gridSize.x"));
 
  436        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  437                                           "gridEdge=" + std::to_string(ges));
 
  442                 unsigned int &plotCounter)
 
  444    std::string dim = 
"2";
 
  445    std::string linMode = 
"N";
 
  446    std::string base = 
"performance.SparseGridGpu.host.stencil.sparse." + linMode + 
"." + dim + 
"D";
 
  448    if( isTestInSet(testSet, base + 
".05.gridScaling") )
 
  450        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  451        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  452        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  453                                           "SparseGridGPU stencil " + linMode + 
" " + dim + 
"D" +
 
  454                                           " grid scaling performance");
 
  455        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  456        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  457        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  458                                           base + 
".05.gridScaling(#).GFlops.mean");
 
  459        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  460                                           base + 
".05.gridScaling(#).gridSize.x");
 
  461   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  462        int bes = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  463                base + 
".05.gridScaling(0).blockSize"));
 
  464        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  465                                           "blockEdge=" + std::to_string(bes));
 
  468    if( isTestInSet(testSet, base + 
".05.blockScaling") )
 
  470        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  471        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  472        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  473                                           "SparseGridGPU stencil "+linMode+
" "+dim+
"D"+
" block scaling performance");
 
  474        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title",
 
  476        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  477        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  478                                           base + 
".05.blockScaling(#).GFlops.mean");
 
  479        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  480                                           base + 
".05.blockScaling(#).blockSize");
 
  481   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x",
true);
 
  482        int ges = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  483                base + 
".05.blockScaling(0).gridSize.x"));
 
  484        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  485                                           "gridEdge=" + std::to_string(ges));
 
  491                 unsigned int &plotCounter)
 
  493    std::string dim = 
"2";
 
  494    std::string linMode = 
"N";
 
  495    std::string base = 
"performance.SparseGridGpu.device.stencil.dense." + linMode + 
"." + dim + 
"D";
 
  497    if( isTestInSet(testSet, base + 
".gridScaling") )
 
  499        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  500        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  501        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  502                                           "SparseGridGPU stencil " + linMode + 
" " + dim + 
"D" +
 
  503                                           " grid scaling performance");
 
  504        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  505        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  506        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  507                                           base + 
".gridScaling(#).GFlops.mean");
 
  508        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  509                                           base + 
".gridScaling(#).gridSize.x");
 
  510   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  511        int bes = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  512                base + 
".gridScaling(0).blockSize"));
 
  513        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  514                                           "blockEdge=" + std::to_string(bes));
 
  517    if( isTestInSet(testSet, base + 
".blockScaling") )
 
  519        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  520        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  521        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  522                                           "SparseGridGPU stencil "+linMode+
" "+dim+
"D"+
" block scaling performance");
 
  523        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title",
 
  525        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  526        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  527                                           base + 
".blockScaling(#).GFlops.mean");
 
  528        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  529                                           base + 
".blockScaling(#).blockSize");
 
  530   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x",
true);
 
  531        int ges = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  532                base + 
".blockScaling(0).gridSize.x"));
 
  533        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  534                                           "gridEdge=" + std::to_string(ges));
 
  540                 unsigned int &plotCounter)
 
  542    std::string dim = 
"2";
 
  543    std::string linMode = 
"N";
 
  544    std::string base = 
"performance.SparseGridGpu.device.stencil.dense." + linMode + 
"." + dim + 
"D";
 
  546    if( isTestInSet(testSet, base + 
".2.gridScaling")
 
  547        && isTestInSet(testSet, base + 
".4.gridScaling")
 
  548        && isTestInSet(testSet, base + 
".8.gridScaling")
 
  549        && isTestInSet(testSet, base + 
".16.gridScaling")
 
  550        && isTestInSet(testSet, base + 
".32.gridScaling")
 
  553        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  554        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  555        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  556                                           "SparseGridGPU stencil " + linMode + 
" " + dim + 
"D" +
 
  557                                           " grid scaling performance");
 
  558        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  559        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  561        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  562                                           base + 
".2.gridScaling(#).GFlops.mean");
 
  563        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
  564                                   base + 
".4.gridScaling(#).GFlops.mean");
 
  565        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).source",
 
  566                                   base + 
".8.gridScaling(#).GFlops.mean");
 
  567        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).source",
 
  568                                   base + 
".16.gridScaling(#).GFlops.mean");
 
  569        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).source",
 
  570                                   base + 
".32.gridScaling(#).GFlops.mean");
 
  572        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  573                                           base + 
".2.gridScaling(#).gridSize.x");
 
  574        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
  575                                           base + 
".4.gridScaling(#).gridSize.x");
 
  576        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(2).source",
 
  577                                           base + 
".8.gridScaling(#).gridSize.x");
 
  578        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(3).source",
 
  579                                           base + 
".16.gridScaling(#).gridSize.x");
 
  580        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(4).source",
 
  581                                           base + 
".32.gridScaling(#).gridSize.x");
 
  584        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  586        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title", 
"blockEdge=2");
 
  587        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title", 
"blockEdge=4");
 
  588        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).title", 
"blockEdge=8");
 
  589        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).title", 
"blockEdge=16");
 
  590        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).title", 
"blockEdge=32");
 
  596void plotDense2DSkeletonComparison(
report_sparse_grid_tests &report_sparsegrid_funcs, std::set<std::string> &testSet,
 
  597                 unsigned int &plotCounter)
 
  599    std::string dim = 
"2";
 
  600    std::string linMode = 
"N";
 
  601    std::string base = 
"performance.SparseGridGpu.device.skeleton.dense." + linMode + 
"." + dim + 
"D";
 
  603    if( isTestInSet(testSet, base + 
".2.gridScaling")
 
  604        && isTestInSet(testSet, base + 
".4.gridScaling")
 
  605        && isTestInSet(testSet, base + 
".8.gridScaling")
 
  606        && isTestInSet(testSet, base + 
".16.gridScaling")
 
  607        && isTestInSet(testSet, base + 
".32.gridScaling")
 
  610        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  611        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  612        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  613                                           "SparseGridGPU skeleton stencil " + linMode + 
" " + dim + 
"D" +
 
  614                                           " grid scaling performance");
 
  615        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  616        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G Elem/s");
 
  618        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  619                                           base + 
".2.gridScaling(#).GFlops.mean");
 
  620        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
  621                                   base + 
".4.gridScaling(#).GFlops.mean");
 
  622        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).source",
 
  623                                   base + 
".8.gridScaling(#).GFlops.mean");
 
  624        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).source",
 
  625                                   base + 
".16.gridScaling(#).GFlops.mean");
 
  626        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).source",
 
  627                                   base + 
".32.gridScaling(#).GFlops.mean");
 
  629        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  630                                           base + 
".2.gridScaling(#).gridSize.x");
 
  631        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
  632                                           base + 
".4.gridScaling(#).gridSize.x");
 
  633        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(2).source",
 
  634                                           base + 
".8.gridScaling(#).gridSize.x");
 
  635        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(3).source",
 
  636                                           base + 
".16.gridScaling(#).gridSize.x");
 
  637        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(4).source",
 
  638                                           base + 
".32.gridScaling(#).gridSize.x");
 
  641        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  643        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title", 
"blockEdge=2");
 
  644        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title", 
"blockEdge=4");
 
  645        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).title", 
"blockEdge=8");
 
  646        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).title", 
"blockEdge=16");
 
  647        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).title", 
"blockEdge=32");
 
  654                 unsigned int &plotCounter)
 
  656    std::string dim = 
"2";
 
  657    std::string linMode = 
"N";
 
  658    std::string base = 
"performance.SparseGridGpu.device.stencilGet.dense." + linMode + 
"." + dim + 
"D";
 
  660    if( isTestInSet(testSet, base + 
".2.gridScaling")
 
  661        && isTestInSet(testSet, base + 
".4.gridScaling")
 
  662        && isTestInSet(testSet, base + 
".8.gridScaling")
 
  663        && isTestInSet(testSet, base + 
".16.gridScaling")
 
  664        && isTestInSet(testSet, base + 
".32.gridScaling")
 
  667        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  668        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  669        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  670                                           "SparseGridGPU GET stencil " + linMode + 
" " + dim + 
"D" +
 
  671                                           " grid scaling performance");
 
  672        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  673        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G Flops/s");
 
  675        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  676                                           base + 
".2.gridScaling(#).GFlops.mean");
 
  677        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
  678                                   base + 
".4.gridScaling(#).GFlops.mean");
 
  679        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).source",
 
  680                                   base + 
".8.gridScaling(#).GFlops.mean");
 
  681        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).source",
 
  682                                   base + 
".16.gridScaling(#).GFlops.mean");
 
  683        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).source",
 
  684                                   base + 
".32.gridScaling(#).GFlops.mean");
 
  686        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  687                                           base + 
".2.gridScaling(#).gridSize.x");
 
  688        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
  689                                           base + 
".4.gridScaling(#).gridSize.x");
 
  690        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(2).source",
 
  691                                           base + 
".8.gridScaling(#).gridSize.x");
 
  692        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(3).source",
 
  693                                           base + 
".16.gridScaling(#).gridSize.x");
 
  694        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(4).source",
 
  695                                           base + 
".32.gridScaling(#).gridSize.x");
 
  698        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  700        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title", 
"blockEdge=2");
 
  701        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title", 
"blockEdge=4");
 
  702        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).title", 
"blockEdge=8");
 
  703        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).title", 
"blockEdge=16");
 
  704        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).title", 
"blockEdge=32");
 
  711                 unsigned int &plotCounter)
 
  713    std::string dim = 
"2";
 
  714    std::string linMode = 
"Z";
 
  715    std::string base = 
"performance.SparseGridGpu.device.stencil.dense." + linMode + 
"." + dim + 
"D";
 
  717    if( isTestInSet(testSet, base + 
".2.gridScaling")
 
  718        && isTestInSet(testSet, base + 
".4.gridScaling")
 
  719        && isTestInSet(testSet, base + 
".8.gridScaling")
 
  720        && isTestInSet(testSet, base + 
".16.gridScaling")
 
  721        && isTestInSet(testSet, base + 
".32.gridScaling")
 
  724        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  725        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  726        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  727                                           "SparseGridGPU stencil " + linMode + 
" " + dim + 
"D" +
 
  728                                           " grid scaling performance");
 
  729        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  730        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  732        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  733                                           base + 
".2.gridScaling(#).GFlops.mean");
 
  734        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
  735                                   base + 
".4.gridScaling(#).GFlops.mean");
 
  736        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).source",
 
  737                                   base + 
".8.gridScaling(#).GFlops.mean");
 
  738        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).source",
 
  739                                   base + 
".16.gridScaling(#).GFlops.mean");
 
  740        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).source",
 
  741                                   base + 
".32.gridScaling(#).GFlops.mean");
 
  743        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  744                                           base + 
".2.gridScaling(#).gridSize.x");
 
  745        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
  746                                           base + 
".4.gridScaling(#).gridSize.x");
 
  747        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(2).source",
 
  748                                           base + 
".8.gridScaling(#).gridSize.x");
 
  749        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(3).source",
 
  750                                           base + 
".16.gridScaling(#).gridSize.x");
 
  751        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(4).source",
 
  752                                           base + 
".32.gridScaling(#).gridSize.x");
 
  755        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  757        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title", 
"blockEdge=2");
 
  758        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title", 
"blockEdge=4");
 
  759        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).title", 
"blockEdge=8");
 
  760        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).title", 
"blockEdge=16");
 
  761        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).title", 
"blockEdge=32");
 
  768                 unsigned int &plotCounter)
 
  770    std::string dim = 
"3";
 
  771    std::string linMode = 
"N";
 
  772    std::string base = 
"performance.SparseGridGpu.device.stencil.dense." + linMode + 
"." + dim + 
"D";
 
  774    if( isTestInSet(testSet, base + 
".2.gridScaling")
 
  775        && isTestInSet(testSet, base + 
".4.gridScaling")
 
  776        && isTestInSet(testSet, base + 
".8.gridScaling")
 
  779        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  780        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  781        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  782                                           "SparseGridGPU stencil " + linMode + 
" " + dim + 
"D" +
 
  783                                           " grid scaling performance");
 
  784        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  785        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  787        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  788                                           base + 
".2.gridScaling(#).GFlops.mean");
 
  789        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
  790                                   base + 
".4.gridScaling(#).GFlops.mean");
 
  791        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).source",
 
  792                                   base + 
".8.gridScaling(#).GFlops.mean");
 
  794        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  795                                           base + 
".2.gridScaling(#).gridSize.x");
 
  796        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
  797                                           base + 
".4.gridScaling(#).gridSize.x");
 
  798        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(2).source",
 
  799                                           base + 
".8.gridScaling(#).gridSize.x");
 
  802        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  804        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title", 
"blockEdge=2");
 
  805        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title", 
"blockEdge=4");
 
  806        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).title", 
"blockEdge=8");
 
  813                 unsigned int &plotCounter)
 
  815    std::string dim = 
"2";
 
  816    std::string linMode = 
"N";
 
  817    std::string base = 
"performance.SparseGridGpu.device.stencilInsert.dense." + linMode + 
"." + dim + 
"D";
 
  819    if( isTestInSet(testSet, base + 
".gridScaling") )
 
  821        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  822        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  823        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  824                                           "SparseGridGPU stencil-insert " + linMode + 
" " + dim + 
"D" +
 
  825                                           " grid scaling performance");
 
  826        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  827        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  828        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  829                                           base + 
".gridScaling(#).GFlops.mean");
 
  830        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  831                                           base + 
".gridScaling(#).gridSize.x");
 
  832   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  833        int bes = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  834                base + 
".gridScaling(0).blockSize"));
 
  835        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  836                                           "blockEdge=" + std::to_string(bes));
 
  839    if( isTestInSet(testSet, base + 
".blockScaling") )
 
  841        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  842        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  843        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  844                                           "SparseGridGPU stencil-insert "+linMode+
" "+dim+
"D"+
" block scaling performance");
 
  845        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title",
 
  847        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  848        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  849                                           base + 
".blockScaling(#).GFlops.mean");
 
  850        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  851                                           base + 
".blockScaling(#).blockSize");
 
  852   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x",
true);
 
  853        int ges = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
  854                base + 
".blockScaling(0).gridSize.x"));
 
  855        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
  856                                           "gridEdge=" + std::to_string(ges));
 
  861void plotDense2DStencilInsertComparison(
report_sparse_grid_tests &report_sparsegrid_funcs, std::set<std::string> &testSet,
 
  862                 unsigned int &plotCounter)
 
  864    std::string dim = 
"2";
 
  865    std::string linMode = 
"N";
 
  866    std::string base = 
"performance.SparseGridGpu.device.stencilInsert.dense." + linMode + 
"." + dim + 
"D";
 
  868    if( isTestInSet(testSet, base + 
".8.gridScaling")
 
  869        && isTestInSet(testSet, base + 
".16.gridScaling")
 
  872        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  873        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  874        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  875                                           "SparseGridGPU stencil-insert " + linMode + 
" " + dim + 
"D" +
 
  876                                           " grid scaling performance");
 
  877        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  878        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  880        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  881                                   base + 
".8.gridScaling(#).GFlops.mean");
 
  882        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
  883                                   base + 
".16.gridScaling(#).GFlops.mean");
 
  885        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  886                                           base + 
".8.gridScaling(#).gridSize.x");
 
  887        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
  888                                           base + 
".16.gridScaling(#).gridSize.x");
 
  890        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  892        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title", 
"blockEdge=8");
 
  893        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title", 
"blockEdge=16");
 
  899void plotDense2DStencilInplaceInsertComparison(
report_sparse_grid_tests &report_sparsegrid_funcs, std::set<std::string> &testSet,
 
  900                 unsigned int &plotCounter)
 
  902    std::string dim = 
"2";
 
  903    std::string linMode = 
"N";
 
  904    std::string baseInplace = 
"performance.SparseGridGpu.device.stencil.dense." + linMode + 
"." + dim + 
"D";
 
  905    std::string baseInsert = 
"performance.SparseGridGpu.device.stencilInsert.dense." + linMode + 
"." + dim + 
"D";
 
  907    if( isTestInSet(testSet, baseInplace + 
".8.gridScaling")
 
  908        && isTestInSet(testSet, baseInsert + 
".8.gridScaling")
 
  911        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  912        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  913        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  914                                           "SparseGridGPU stencil in-place vs. insert " + linMode + 
" " + dim + 
"D" +
 
  916        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  917        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  919        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  920                                   baseInplace + 
".8.gridScaling(#).GFlops.mean");
 
  921        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
  922                                   baseInsert + 
".8.gridScaling(#).GFlops.mean");
 
  924        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  925                                           baseInplace + 
".8.gridScaling(#).gridSize.x");
 
  926        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
  927                                           baseInsert + 
".8.gridScaling(#).gridSize.x");
 
  929        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  931        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title", 
"In-place");
 
  932        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title", 
"Insert");
 
  938void plotDense2DStencilInplaceInsertComparison16(
report_sparse_grid_tests &report_sparsegrid_funcs, std::set<std::string> &testSet,
 
  939                 unsigned int &plotCounter)
 
  941    std::string dim = 
"2";
 
  942    std::string linMode = 
"N";
 
  943    std::string baseInplace = 
"performance.SparseGridGpu.device.stencil.dense." + linMode + 
"." + dim + 
"D";
 
  944    std::string baseInsert = 
"performance.SparseGridGpu.device.stencilInsert.dense." + linMode + 
"." + dim + 
"D";
 
  946    if( isTestInSet(testSet, baseInplace + 
".16.gridScaling")
 
  947        && isTestInSet(testSet, baseInsert + 
".16.gridScaling")
 
  950        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  951        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  952        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  953                                           "SparseGridGPU stencil in-place vs. insert " + linMode + 
" " + dim + 
"D" +
 
  955        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  956        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G flops/s");
 
  958        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  959                                   baseInplace + 
".16.gridScaling(#).GFlops.mean");
 
  960        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
  961                                   baseInsert + 
".16.gridScaling(#).GFlops.mean");
 
  963        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
  964                                           baseInplace + 
".16.gridScaling(#).gridSize.x");
 
  965        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
  966                                           baseInsert + 
".16.gridScaling(#).gridSize.x");
 
  968        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
  970        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title", 
"In-place");
 
  971        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title", 
"Insert");
 
  978                        unsigned int &plotCounter)
 
  980    std::string dim = 
"2";
 
  981    std::string insertMode = 
"single";
 
  982    std::string base = 
"performance.SparseGridGpu.device.insert.dense." + insertMode + 
"." + dim + 
"D";
 
  984    if( isTestInSet(testSet, base + 
".2.gridScaling")
 
  985        && isTestInSet(testSet, base + 
".4.gridScaling")
 
  986        && isTestInSet(testSet, base + 
".8.gridScaling")
 
  989        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
  990        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
  991        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
  992                                           "SparseGridGPU insert " + insertMode + 
" " + dim + 
"D" +
 
  993                                           " grid scaling performance");
 
  994        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
  995        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"M Inserts/s");
 
  996        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
  997                                           base + 
".2.gridScaling(#).Minsert.mean");
 
  998        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
  999                                           base + 
".4.gridScaling(#).Minsert.mean");
 
 1000        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).source",
 
 1001                                           base + 
".8.gridScaling(#).Minsert.mean");
 
 1002        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
 1003                                           base + 
".2.gridScaling(#).gridSize.x");
 
 1004        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
 1005                                           base + 
".4.gridScaling(#).gridSize.x");
 
 1006        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(2).source",
 
 1007                                           base + 
".8.gridScaling(#).gridSize.x");
 
 1008   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
 1011        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
 1013        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title",
 
 1015        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).title",
 
 1019    if( isTestInSet(testSet, base + 
".blockScaling") )
 
 1021        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
 1022        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
 1023        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
 1024                                           "SparseGridGPU insert "+insertMode+
" "+dim+
"D"+
" block scaling performance");
 
 1025        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title",
 
 1027        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"M Inserts/s");
 
 1028        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
 1029                                           base + 
".blockScaling(#).Minsert.mean");
 
 1030        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
 1031                                           base + 
".blockScaling(#).blockSize");
 
 1032   report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x",
true);
 
 1033        int ges = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
 1034                base + 
".blockScaling(0).gridSize.x"));
 
 1035        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
 1036                                           "gridEdge=" + std::to_string(ges));
 
 1042                       unsigned int &plotCounter)
 
 1044    std::string dim = 
"2";
 
 1045    std::string insertMode = 
"block";
 
 1046    std::string base = 
"performance.SparseGridGpu.device.insert.dense." + insertMode + 
"." + dim + 
"D";
 
 1048    if( isTestInSet(testSet, base + 
".2.gridScaling")
 
 1049        && isTestInSet(testSet, base + 
".4.gridScaling")
 
 1050        && isTestInSet(testSet, base + 
".8.gridScaling")
 
 1051        && isTestInSet(testSet, base + 
".16.gridScaling")
 
 1052        && isTestInSet(testSet, base + 
".32.gridScaling")
 
 1055        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
 1056        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
 1057        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
 1058                                           "SparseGridGPU insert " + insertMode + 
" " + dim + 
"D" +
 
 1059                                           " grid scaling performance");
 
 1060        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
 1061        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"M Inserts/s");
 
 1062        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
 1063                                           base + 
".2.gridScaling(#).Minsert.mean");
 
 1064        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
 1065                                           base + 
".4.gridScaling(#).Minsert.mean");
 
 1066        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).source",
 
 1067                                           base + 
".8.gridScaling(#).Minsert.mean");
 
 1068        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).source",
 
 1069                                           base + 
".16.gridScaling(#).Minsert.mean");
 
 1070        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).source",
 
 1071                                           base + 
".32.gridScaling(#).Minsert.mean");
 
 1072        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
 1073                                           base + 
".2.gridScaling(#).gridSize.x");
 
 1074        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
 1075                                           base + 
".4.gridScaling(#).gridSize.x");
 
 1076        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(2).source",
 
 1077                                           base + 
".8.gridScaling(#).gridSize.x");
 
 1078        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(3).source",
 
 1079                                           base + 
".16.gridScaling(#).gridSize.x");
 
 1080        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(4).source",
 
 1081                                           base + 
".32.gridScaling(#).gridSize.x");
 
 1082        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
 1085        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
 1087        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title",
 
 1089        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).title",
 
 1091        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).title",
 
 1093        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).title",
 
 1097    if( isTestInSet(testSet, base + 
".blockScaling") )
 
 1099        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
 1100        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
 1101        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
 1102                                           "SparseGridGPU insert "+insertMode+
" "+dim+
"D"+
" block scaling performance");
 
 1103        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title",
 
 1105        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"M Inserts/s");
 
 1106        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
 1107                                           base + 
".blockScaling(#).Minsert.mean");
 
 1108        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
 1109                                           base + 
".blockScaling(#).blockSize");
 
 1110        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x",
true);
 
 1111        int ges = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
 1112                base + 
".blockScaling(0).gridSize.x"));
 
 1113        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
 1114                                           "gridEdge=" + std::to_string(ges));
 
 1120                       unsigned int &plotCounter)
 
 1122    std::string dim = 
"2";
 
 1123    std::string getMode = 
"single";
 
 1124    std::string base = 
"performance.SparseGridGpu.device.get.dense." + getMode + 
"." + dim + 
"D";
 
 1126    if( isTestInSet(testSet, base + 
".2.gridScaling")
 
 1127        && isTestInSet(testSet, base + 
".4.gridScaling")
 
 1128        && isTestInSet(testSet, base + 
".8.gridScaling")
 
 1129        && isTestInSet(testSet, base + 
".16.gridScaling")
 
 1130        && isTestInSet(testSet, base + 
".32.gridScaling")
 
 1133        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
 1134        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
 1135        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
 1136                                           "SparseGridGPU get " + getMode + 
" " + dim + 
"D" +
 
 1137                                           " grid scaling performance");
 
 1138        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
 1139        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G Gets/s");
 
 1140        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
 1141                                           base + 
".2.gridScaling(#).Gget.mean");
 
 1142        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
 1143                                           base + 
".4.gridScaling(#).Gget.mean");
 
 1144        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).source",
 
 1145                                           base + 
".8.gridScaling(#).Gget.mean");
 
 1146        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).source",
 
 1147                                           base + 
".16.gridScaling(#).Gget.mean");
 
 1148        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).source",
 
 1149                                           base + 
".32.gridScaling(#).Gget.mean");
 
 1150        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
 1151                                           base + 
".2.gridScaling(#).gridSize.x");
 
 1152        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
 1153                                           base + 
".4.gridScaling(#).gridSize.x");
 
 1154        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(2).source",
 
 1155                                           base + 
".8.gridScaling(#).gridSize.x");
 
 1156        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(3).source",
 
 1157                                           base + 
".16.gridScaling(#).gridSize.x");
 
 1158        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(4).source",
 
 1159                                           base + 
".32.gridScaling(#).gridSize.x");
 
 1160        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
 1163        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
 1165        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title",
 
 1167        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).title",
 
 1169        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).title",
 
 1171        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).title",
 
 1175    if( isTestInSet(testSet, base + 
".blockScaling") )
 
 1177        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
 1178        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
 1179        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
 1180                                           "SparseGridGPU get "+getMode+
" "+dim+
"D"+
" block scaling performance");
 
 1181        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title",
 
 1183        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G Gets/s");
 
 1184        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
 1185                                           base + 
".blockScaling(#).Gget.mean");
 
 1186        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
 1187                                           base + 
".blockScaling(#).blockSize");
 
 1188        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x",
true);
 
 1189        int ges = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
 1190                base + 
".blockScaling(0).gridSize.x"));
 
 1191        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
 1192                                           "gridEdge=" + std::to_string(ges));
 
 1198                       unsigned int &plotCounter)
 
 1200    std::string dim = 
"2";
 
 1201    std::string getMode = 
"neighbourhood";
 
 1202    std::string base = 
"performance.SparseGridGpu.device.get.dense." + getMode + 
"." + dim + 
"D";
 
 1204    if( isTestInSet(testSet, base + 
".2.gridScaling")
 
 1205        && isTestInSet(testSet, base + 
".4.gridScaling")
 
 1206        && isTestInSet(testSet, base + 
".8.gridScaling")
 
 1207        && isTestInSet(testSet, base + 
".16.gridScaling")
 
 1208        && isTestInSet(testSet, base + 
".32.gridScaling")
 
 1211        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
 1212        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
 1213        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
 1214                                           "SparseGridGPU get " + getMode + 
" " + dim + 
"D" +
 
 1215                                           " grid scaling performance");
 
 1216        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title", 
"GridEdgeSize");
 
 1217        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G Gets/s");
 
 1218        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
 1219                                           base + 
".2.gridScaling(#).Gget.mean");
 
 1220        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).source",
 
 1221                                           base + 
".4.gridScaling(#).Gget.mean");
 
 1222        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).source",
 
 1223                                           base + 
".8.gridScaling(#).Gget.mean");
 
 1224        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).source",
 
 1225                                           base + 
".16.gridScaling(#).Gget.mean");
 
 1226        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).source",
 
 1227                                           base + 
".32.gridScaling(#).Gget.mean");
 
 1228        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
 1229                                           base + 
".2.gridScaling(#).gridSize.x");
 
 1230        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(1).source",
 
 1231                                           base + 
".4.gridScaling(#).gridSize.x");
 
 1232        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(2).source",
 
 1233                                           base + 
".8.gridScaling(#).gridSize.x");
 
 1234        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(3).source",
 
 1235                                           base + 
".16.gridScaling(#).gridSize.x");
 
 1236        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(4).source",
 
 1237                                           base + 
".32.gridScaling(#).gridSize.x");
 
 1238        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x", 
true);
 
 1241        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
 1243        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(1).title",
 
 1245        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(2).title",
 
 1247        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(3).title",
 
 1249        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(4).title",
 
 1253    if( isTestInSet(testSet, base + 
".blockScaling") )
 
 1255        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").type", 
"line");
 
 1256        report_sparsegrid_funcs.graphs.put(
"graphs.graph(" + std::to_string(plotCounter) + 
").interpolation", 
"none");
 
 1257        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").title",
 
 1258                                           "SparseGridGPU get "+getMode+
" "+dim+
"D"+
" block scaling performance");
 
 1259        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.title",
 
 1261        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.title", 
"G Gets/s");
 
 1262        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).source",
 
 1263                                           base + 
".blockScaling(#).Gget.mean");
 
 1264        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").x.data(0).source",
 
 1265                                           base + 
".blockScaling(#).blockSize");
 
 1266        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").options.log_x",
true);
 
 1267        int ges = 
static_cast<int>( report_sparsegrid_funcs.graphs.template get<double>(
 
 1268                base + 
".blockScaling(0).gridSize.x"));
 
 1269        report_sparsegrid_funcs.graphs.add(
"graphs.graph(" + std::to_string(plotCounter) + 
").y.data(0).title",
 
 1270                                           "gridEdge=" + std::to_string(ges));
 
Small class to produce graph with Google chart in HTML.
 
void write(std::string file)
It write the graphs on file in html format using Google charts.