Program Visualization at the System Level University of Notre Dame Dirk Van Bruggen and Jian Mu
The Problem Simple programs can be complex Commands offer a look into the system calls Output is difficult to decipher How does the program run? What files/resources are used?
The Solution Create a program to assist in visualizations Create a Data Pipeline Create Modules for each stage commandsparser Data processor visualizer
Implementation Written in a combination of Python and C++ Data Processing Modules Pull out size of data read Calculate IO Rate per files Calculate Time spent on each file Sum up the total time taken for all system calls
Usage Example All-pairs program: Compare_bitdumb Set ASet B Matrix M File size = 100M
Visualization App
Test Results CPU utilization over time
Test Results (contd.) Memory utilization over time
Test Results (contd.) Load average in the last one minute
How Much Overhead?
User Study Small Study – 4 testers Results Raw strace – Information is too dense Time consuming to find total file sizes Viz App is easier to find total file sizes Range of improvement answers.
Future Work Ideas from user study: Labeling Function Zoom Problems Display call details Display time spent opening and reading per file Easier expansion of directories
Questions?