next up previous
Next: Dynamic Histograms Up: VISUALIZING PARALLEL PROGRAM BEHAVIOR Previous: Alog

Upshot

The first version of upshot was described in [Herrarte and Lusk 1991]. Since then, a number of enhancements have been added, primarily with the goal of allowing the tool to scale to an environment with hundreds or even thousands of processors.

Figure [*] shows a typical upshot display. It was the result of issuing the command

  ../bin/upshot -l grid.16.log -s grid.sts

More generally, the command line operations and their meanings are as follows:

Flag Meaning Valid Range
-l log file name string up to 250 chars
-logfile log file name string up to 250 chars
-s state file name string up to 250 chars
-statefile state file name string up to 250 chars
-ch canvas height 480 to 1000
-cheight canvas height 480 to 1000
-t graph tasks no value necessary
-tasks graph tasks no value necessary

In addition, upshot accepts the usual Xt resource options. For example, to bring it up on a color display with black background, one might say

 ../bin/upshot -l sam_hyp.16.log -s roo.sts 
              -bg black -fg white -bd yellow

The main object in the upshot window is the central viewport onto the canvas showing the time lines of the processes. Each line represents events logged by and states of the process whose identifier appears along the left edge. Time elapsed since the time of the first event is shown along the bottom edge, with units described based on the assumption that the units given in the timestamp field in the logfile are microseconds. The current logfile and statefile are shown at the right.


  
Figure: Upshot view with events and popup data boxes
1#1

One can scroll forward and backward in time using the two scrollbars at the top of the viewport and the buttons along the bottom edge of the window. The entire logfile is partitioned into pages, each consisting of a fixed number of events. Short files have only one page. A page is selected by clicking the left mouse button on its page number. Once a page is selected, it can be scrolled using the middle mouse button on either of the two scrollbars above the display. The page view scrollbar indicates the portion (both size and position) of the visible part of the page. The graph view scrollbar indicates the portion of the part of the canvas visible in the viewport, which is usually about ten times the width of the visible part. These two scrollbars behave the same unless the view has been zoomed in or out. Zooming changes the percentage of the page that is shown, thus changing the size of the page view scrollbar's thumb, but does not change the lower scrollbar, which remains a convenient size for scrolling back and forth in the canvas.

The buttons across the top provide further control of upshot's view. The 2#2 and 3#3 buttons shrink or stretch the canvas along the horizontal axis, allowing detailed separation of events down to the microsecond level. When the horizontal scale changes, the left edge of the viewport remains fixed. It is possible to zoom in or out too far, in which case the initial scales can be restored by the 4#4 button. The zoom factor can be modified by editing the 5#5 box. The zoom factor should always be a positive integer. The 6#6 button brings up a menu of display options. The default is to display only states. Alternatives are to display only events and to display both events and states. Events are displayed as in Figure [*]. The 7#7 button brings up a window for defining a new state. The 8#8 button exits from upshot.

Selecting a specific event with the left mouse button pops up a small window containing all of the information in the logfile for the event, including the integer and string data items. The integer data item is additionally formatted with the format string logged as event type -10. If one uses the middle or right buttons instead, the data box will remain on the screen and can be moved around. It will disappear when selected with any mouse button.

Thus the first few lines of the logfile displayed by upshot in Figure [*] are as follows:

    -2 0 0 8769 0 0
    -3 0 0 17 0 0
    -4 0 0 1 0 0
    -5 0 0 6 0 0
    -6 0 0 0 0 2781263066
    -7 0 0 0 0 2791364419
    -8 0 0 1 0 0
    -1 0 0 0 0 2779321478  May21-90
   -11 0 0 0 0 4294967295   
    -9 0 0 100 0 2779321670  create
   -10 0 0 100 0 2779321734  
    -9 0 0 102 0 2779321791  sends
   -10 0 0 102 0 2779321855  
    -9 0 0 101 0 2779321911  receive
   -10 0 0 101 0 2779321970  
    -9 0 0 4 0 2779322027  working
   -10 0 0 4 0 2779322090  
    -9 0 0 5 0 2779322148  end work
   -10 0 0 5 0 2779322207  
    -9 0 0 6 0 2779322266  wait recv
   -10 0 0 6 0 2779322328  works %d
             .
             .
             .
             .
    6 15 0 0 0 2783527807  w init msg
    6 14 0 0 0 2783544696  w init msg
   102 0 0 2 0 2783546175  s init msg
    6 12 0 0 0 2783561310  w init msg
    4  1 0 0 0 2783570823  working
    6  7 0 0 0 2783577774  w init msg
    6  2 0 0 0 2783594067  w init msg
   101 2 0 0 0 2783608861  r init msg
    6  5 0 0 0 2783610683  w init msg
    6 13 0 0 0 2783627479  w init msg
   102 0 0 3 0 2783642790  s init msg
    5  1 0 0 0 2783664655  done work
   102 1 0 5 0 2783665466  row msg

Note that integer data and character data for an event are shown in popup data boxes, with the integer data formatted with the appropriate printf string.

Recent enhancements to upshot have been in the form of new windows that display the logfile in different ways.



 
next up previous
Next: Dynamic Histograms Up: VISUALIZING PARALLEL PROGRAM BEHAVIOR Previous: Alog
Karen D. Toonen
1998-11-19