descartes_light icon indicating copy to clipboard operation
descartes_light copied to clipboard

Plotting program perf_plotter added under test/src

Open John-Bonnin opened this issue 3 years ago • 5 comments

It generates rich plots of performance data. perf_plotter.py plots the contents of ../benchmarks/benchmarks.txt in a number of small graphs. You can call it with an integer argument to plot just 1 of the graphs.

John-Bonnin avatar Sep 02 '21 21:09 John-Bonnin

@John-Bonnin can you post a picture of the generated plot(s) for reference?

marip8 avatar Sep 03 '21 13:09 marip8

Sample Graphs Window

Is there a better place to create documentation? I'm not familiar enough with Github yet.

John-Bonnin avatar Sep 03 '21 14:09 John-Bonnin

Is there a better place to create documentation? I'm not familiar enough with Github yet.

Posting images on this PR is fine. I just wanted to document what these graphs looked like (and see for myself) without having to run the code

To me, the value of this plot would be to see the performance of the various solvers next to one another for the same trial, rather than seeing the results for each solver individually over all trials. In theory I would like to look up the parameters of my particular problem (# of waypoints, # of samples per waypoint, DOF), see how all available solvers perform, and then be able to choose the best one. I think this might look like a 2D plot of planning time vs. graph size (# of waypoints * # of samples per waypoint) with all of the solvers (of the same template type (i.e. float or double)) on the plot. We could also look at other ways of parameterizing this plot.

@John-Bonnin can you prototype a change like this and post an image of the resulting plot(s)? No need to formally commit any changes right now until we settle on the final structure of the plots

@Levi-Armstrong @colin-lewis-19 any thoughts about the purpose/appearance of the proposed plot?

marip8 avatar Sep 07 '21 14:09 marip8

I agree with the usefulness of direct comparisons. Being able to down select which benchmarks run/ are plotted may also be useful if we are iterating on an implementation.

colin-lewis-19 avatar Sep 07 '21 14:09 colin-lewis-19

Most likely if you switch to leveraging google benchmarks you will have to update the plotter to parse the generated table. Also using google benchmarks the plotting would already be handled by a GitHub action and publish it to the repo Github pages.

Levi-Armstrong avatar Sep 08 '21 16:09 Levi-Armstrong