-
Notifications
You must be signed in to change notification settings - Fork 29
pbdPAPI
Summary: Add more visualization and helper tools, as well as a shiny interface, to the pbdPAPI package.
Description: The pbdPAPI package was produced as part of Google Summer of Code 2014. The package provides advanced profiling to R via the Performance Application Programming Interface (PAPI) performance counter monitor library. This allows users to discover, for example, the measured FLOPs or cache access patterns of R code.
pbdPAPI has proven very useful as both a pedagogical tool and in diagnosing performance degredation issues. Unfortunately, the vast majority of its functionality is only accessible to those who have comfort working in a (possibly remote) Linux environment. We hope to develop a shiny interface for pbdPAPI so that its features are more accessible to package developers. This would allow someone with no Linux/remote administration skills to merely stand up an instance on shinyapps.io, for example, to gain access to the advanced performance monitoring offered by pbdPAPI.
The shiny interface will require the development of additional plotting and helper tools, such as benchmarkers (similar to microbenchmark, but for performance counters) and plotting/vis utilities. pbdPAPI has several "skeletons" that offer prototype examples of this sort of functionality; they can be expanded or replaced as needed.
Related work: pbdPAPI is fairly unique in both the R ecosystem and beyond, but the closest related packages are:
None of these packages solves the problems we outlined above, but they each offer very good solutions to their own problems. Their interfaces and plot tools serve as good examples.
Potential tasks:
- Enhancing existing plotting tools.
- Creating "benchmarker" utilities (like microbenchmark or rbenchmark, but for performance counters).
- Developing a shiny interface.
- Improve the interoperability with the PAPI interface and the IPCM interface.
Skills required:
Test: Produce a simple shiny app that allows for a basic visual inspection of the iris dataset using ggplot2. Post your solution on GitHub; you don't need anything more sophisticated than a server.r and ui.r. As an example, you might display 2 variables (user's choice) and color them by group. But feel free to get creative.
Mentor: Drew Schmidt ([@](mailto:wrathematics {at} gmail {dot} com)), Christian Heckendorf ([@](mailto:heckendorfc {at} gmail {dot} com)), and Wei-Chen Chen ([@](mailto:wccsnow {at} gmail {dot} com)).