The goal of the Statistical Preview is to help a user select a frame for viewing prupose. It consists of two windows. The major window is titled ``View & Frame Selector'' window, which is usually called ``Preview'' contains a graphical representation of all the activities going on during the run of the program sppm. It is shown in Figure 2. Activities in ``Preview'' are computed in the following way: the whole duration of the job sppm is divided into 512 time bins. For each time bin, there are counters for each states and arrows occured in the time bin. The counter of each state/arrow will be incremented by the statistical weight which equals to the ratio of the duration of state/arrow to the width of time bin that the state/arrow is in. Because of this definition of the statistical weight for each state/arrow, very short duration states or arrows become statistically insignificant and will not contribute much to the accumulative activities of all the states and arrows. The visual consequence is that states/arrows with very short duration are not noticeable in the ``Preview''. The graphical representation of the activities of the logfiles is, by default, in accumulative histogram mode which can be turned on/off through the button selection sequence, Graph->Type->Bar. The other mode is the non-accumulative curve mode which can be enabled by the button selection sequence, Graph->Type->Line. It is shown in the Figure 3. Since it is non-accumulative as in histogram mode, it distinguishes the relative importance of various states.
In the lower left hand corner of the ``Preview'', there is a ``Frame Information'' panel which lists the number of frames in the logfile, N. In this case, there are only 3 frames in the file. One may wonder how big is each frame and how it is determined? The frame size is determined by the program that generates the slog files4. In generally, the smaller the frame, the better the performance of Jumpshot-3 will be in refreshing the screen. But if an overly small frame size is used, it will be increasingly difficult to navigate to the frame that is being selected. And each frame will contain too little data for user to form a coherent overall picture of the code. Next to the label Current Frame, there is a dialog box which shows the current frame index which starts from 0 to the last frame of the file, N-1, and is initialized to 0 when the GUI starts. User can change the frame index by typing in the dialog box or through buttons in the ``Frame Operations'', where Previous and Next buttons decrements and increments the frame index respectively. But user is also allowed to click on the graphical display to select a frame of interest. A red line will then show up in the graph to highlight the frame selected. Currently the red line is located in the middle of the frame, so the red line is moved non-uniformly along the X-axis. The redundancy in frame selection operations allows the end user to fine tune which frame to view when the logfile contains a lot of frames. For MPI program running in a multihreaded environment as in AIX SMP box, the logfile may contain various threads information. In that case, the ``Connectivity Options'' and ``View Options'' panels become very useful. User is allowed to choose different combinations of these options to see how threads are dispatched and used in a MPI Program. More details will be in the next section.Next to the ``Preview'', there is a smaller window titled ``Legend'' which contains a set of radio buttons with different colors. They are tagged with the names of the MPI and user defined calls made in the code sppm. An illustration of ``Legend'' is shown in the Figure 4. Below the list of radio buttons, there are Select/Deselect, All, None and Change Color buttons.
``Preview'' together with its corresponding ``Legend'' windows are meant to be used side by side to help the end users to select frames which are of interest to them. If some of the states displayed in the ``Preview'' seems useless and confusing, like operating system generated state ``Running''. In this case, the ``Running'' state is the one that messes up the overall picture of the code, it can be easily removed by first highlight the state through clicking on the name ``Running'' in the ``Legend''. Then click on Select/Deselect button will remove ``Running'' from the ``Preview''. In Figure 5, all MPI and system related states are deselected in the ``Preview'' to highlight the user defined states ``layout'', ``setup'', ``bdrys'' and ``glbl''. It becomes apparent that all the communications between the user MPI Processes are done in regular interval. Also all communications, i.e. arrows, are within the user defined state ``bdrys''. Assume one is interested in the behaviour of the program between the last two instances of MPI_Allreduce, one can simply click on None to deselect all the states and arrows, highlight MPI_Allreduce, then click Select/Deselect to display only MPI_Allreduce in the ``Preview''. Now click on any region between the last two MPI_Allreduce's in the ``Preview''. Then the frame index is changed from 0 to 2, and a red line is positioned in the middle of the frame 2 and is also in between the last two instances of MPI_Allreduce. Now it is time to select the properties of the frame to be viewed. Most end users who are interested in the performance of the code sppm should select Connected States option with either MPI-Process or Thread view. If you are intereted in how the operating system dispatches threads among CPUs allocated for the job, you may want to select Disconnected States in Processor view.
![]()
![]()
|