Debugging with Upshot
From BCCD 3.0
Upshot is a visual X-based tool for debugging using .alog type logs and is a good way to visualize mpich parallel program behavior. Below is a simple walkthrough using upshot to analyze a sample mpich program. If you are not sure how to create an .alog logfile, creating an alog File will show you how.
Starting Upshot
In the walkthrough below I'll use the mpich program cpi, which calculates the number pi. After creating your .alog file (I called mine cpi.alog), either right-click on the desktop, select the Debuggers menu, and then select upshot; or issue the following command to start upshot:
upshot cpi.alog
The start-up screen is shown below:
- Select Logfile: This button allows you to select a logfile to analyze. In the above example, cpi.alog is already selected.
- Setup: This is the button you should click next. It will display the logfile in graph mode.
- Options: This button contains miscellaneous start-up options.
- Quit: This button does what you think it should do and quits upshot.
Using Upshot
After clicking the Setup button on the previous screen, a new screen offering a visual glance into the workings of your program should be displayed, similar to the one below:
Each vertical line represents events logged by and states of the process whose identifier appears along the left edge. Time elapsed is given in microseconds and is shown along the bottom.
Horizontal and Vertical Zoom: These buttons zoom in or out either horizontally or vertically. You may then adjust your view by using the scrollbars on the right and bottom sides of the graph.
Selecting a specific event (such as BCAST or REDUCE in this case) with the left mouse button brings up more specific information about the event from the logfile. Examples of these windows are shown below.
- Screenshot when left-clicking on BCAST
- File:Upshot03.png
- Screenshot when left-clicking on REDUCE
- File:Upshot04.png
Detailed Zoom: This button opens up an additional window giving you more options and control on zooming in on certain processes during certain times. An example window is given below.
Print: This button allows you to print results to a standard printer.
Reset: This button resets the view to the original view.
Close: This button will close the current window.
Now play around and have some fun!
A Larger Example
Just to give you an idea of what a larger program looks like in upshot, take a look at the screenshot below generated by the program GalaxSee with two processes.
