| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| |
| <html> |
| <head> |
| <link rel="stylesheet" type="text/css" href="help.css"> |
| <title>Analyzer View</title> |
| </head> |
| |
| <body> |
| <a name="top"></a> |
| <table cellspacing="5"> |
| <tr> |
| <td> |
| <img src="images/trident_transparent.png"> |
| </td> |
| <td> |
| <h1>Analyzer View</h1> |
| </td> |
| </tr> |
| </table> |
| |
| <hr> |
| |
| <h2>Using the Analyzer View</h2> |
| <p> |
| Before formally verifying an MPI C/C++ application, the number of processes needs to be set |
| for the verification run. You will also need to know how to run GEM itself. The links below |
| detail these processes: |
| </p> |
| |
| <ul> |
| <li> |
| <a href="gettingStarted.html">Getting Started</a> |
| </li> |
| <li> |
| <a href="setNumProcs.html">Setting the Number of Processes</a> |
| </li> |
| <li> |
| <a href="gettingStarted.html#rungem">Running GEM</a>. |
| </li> |
| </ul> |
| |
| <p> |
| When GEM has finished the verification of your MPI C/C++ application, the Console, Browser and Analyzer Views will all be |
| opened and depending on what is specified in the <a href="preferences.html#gemprefs">GEM Preference Page</a>, |
| one of these views will be brought to the foreground and given the active focus. |
| </p> |
| |
| <h2>Analyzer Overview</h2> |
| <p> |
| This unique user interface visually displays the output from the log file that was generated |
| at runtime by highlighting lines representing match sets (p2p and collective send-recv matches) in the source file. |
| It shows both the current MPI call, and any matching point-to-point or collective operation. It also allows the |
| user to examine MPI calls for a particular rank with an easy to use <b>Rank Lock</b> feature. In addition, it |
| has a feature to browse calls by rank and by interleaving, as well as launch the |
| <a href="happensBeforeViewer.html">Happens Before (HB) Viewer</a>. |
| </p> |
| |
| <p> |
| <i>The image below shows what the Analyzer View might look like followed by an explanation of its components.</i> |
| </p> |
| |
| <img src="images/analyzerIntegration.png" width="990" height="682"/> |
| |
| <h2 id="runtimeInfo">Runtime Information</h2> |
| <p> |
| On the far left is a label that explains how the program terminated, whether by a deadlock, assertion violation, |
| or without error. The text is green if the nothing is wrong and red when GEM is reporting a problem. |
| </p> |
| |
| <h3 id="hbviewer">Button Explanations</h3> |
| <p> |
| <img height="20" src="images/setNumProcsCombo.gif" width="47" /> The drop down combo-box shows the current number of |
| processes and lets the user conveniently choose a new value for the next GEM run. |
| </p> |
| |
| <p> |
| <img height="16" src="images/trident.gif" width="12" /> This will re-run GEM on the current MPI project. This is |
| equivalent to choosing "Formally Verify MPI Program" from the toolbar button drop-down and is provided for convenience. |
| </p> |
| |
| <p> |
| <img height="17" src="images/hpv-trident.gif" width="15" /> This button will launch the |
| <a href="happensBeforeViewer.html">Happens Before (HB) Viewer</a>, a graphical tool |
| for examining all processes at once and their interactions on a more global level. |
| </p> |
| |
| <p> |
| <img height="16" src="images/browse.gif" width="16" /> <b>Browse MPI Calls</b><br> |
| This opens a new window that shows all MPI Calls and groups them first by the rank that issued |
| them and then by the Interleaving they are found in.<br> |
| </p> |
| |
| <ul> |
| <li> |
| Blue highlighted lines represent calls that are currently highlighted in the code windows. |
| </li> |
| <li> |
| Red highlighted lines represent calls that did NOT complete due to an error. |
| </li> |
| </ul> |
| <img src="images/callBrowser.png"> |
| |
| <br/><br/><br/> |
| <hr/> |
| |
| <h2>Transitions</h2> |
| <p> |
| A transition is essentially an abstraction of an MPI call along with information regarding how the call |
| effects the state of the system. The top left section (aptly titled "Transitions") lets |
| the user change which transition is currently being viewed. |
| </p> |
| |
| The buttons from left to right let the user navigate to the: |
| <ul> |
| <li><img height="16" src="images/first-item.gif" width="16" /> first transition</li> |
| <li><img height="16" src="images/prev-item.gif" width="16" /> previous transition</li> |
| <li><img height="16" src="images/next-item.gif" width="16" /> next transition</li> |
| <li><img height="16" src="images/last-item.gif" width="16" /> last transition</li> |
| </ul> |
| |
| <p> |
| Just to the right of the transition/interleaving buttons is a drop down menu that lets the user lock a |
| rank. The Lock Rank option also allows the user to only step to the previous and next call of a specific |
| rank, instead of all the ranks If no ranks are locked then the calls will be stepped through in internal |
| issue order or program order (depending on your selection in the <a href="#steporder">Step Order Section</a>). |
| </p> |
| |
| <br/><br/> |
| <hr/> |
| |
| <h2>Interleavings</h2> |
| <p> |
| An interleaving is a schedule of transitions, or in other words a possible |
| ordering of MPI calls issued by the scheduler. The top right section (titled "Interleavings") |
| lets the user change which interleaving is being viewed. Doing this will automatically |
| move to the first transition of the new interleaving. These buttons let the user choose which |
| interleaving is currently being navigated. |
| </p> |
| |
| The buttons from left to right let the user navigate to the: |
| <ul> |
| <li><img height="16" src="images/first-item.gif" width="16" /> first interleaving</li> |
| <li><img height="16" src="images/prev-item.gif" width="16" /> previous interleaving</li> |
| <li><img height="16" src="images/next-item.gif" width="16" /> next interleaving</li> |
| <li><img height="16" src="images/last-item.gif" width="16" /> last interleaving</li> |
| </ul> |
| |
| <br/><br/> |
| <hr/> |
| |
| <h2><a name="steporder">Step Order for MPI Calls</a></h2> |
| |
| <p> |
| This is the order in which the <a href="#codewindows">Code Windows</a> will display transistions. |
| </p> |
| |
| The radio buttons from left to right do the following: |
| <ul> |
| <li><b>Internal Issue Order:</b> Step through MPI calls in the order they were issued to the MPI runtime by the ISP Scheduler.</li> |
| <li><b>Program Order:</b> Step through MPI calls in the order they appear in the code.</li> |
| </ul> |
| |
| <br/><br/> |
| <hr/> |
| |
| <h2><a name="codewindows">Code Windows</a></h2> |
| <p> |
| At the top of this section are two labels that explain the MPI Call(s) currently being viewed. |
| On the left is the originating MPI call and on the right is the explanation of the matching MPI |
| call (for example an MPI Send may match with an MPI Recv and in such a situation the Send will be |
| described on the left and the Recv on the right). Some MPI Calls, such as collective operations do not |
| match with anything (like Barrier or Finalize for example) in this situation the label on the right |
| will be blank or simply list the processes involved with the coolective operation. |
| </p> |
| |
| <p> |
| These labels have two lines of information. From top to bottom they are: |
| Rank (aka process id), and then the file and line number where the MPI call |
| is found in the source file. |
| </p> |
| |
| <p> |
| Below these two labels are two windows that both hold complete copies of the |
| source file. These are used to visually show where the calls came from and how |
| they match. In the left window the originating call is highlighted and on |
| the right the matching call is highlighted. |
| </p> |
| |
| <br/><br/> |
| <hr/> |
| |
| <h2>Menu & Toolbar Options</h2> |
| <img src="images/terminate.gif" height="16" width="16"> |
| Terminate Operation - Forcibly terminates the current GEM operation. |
| <br/> |
| <img src="images/help-contents.gif" height="16" width="16"> |
| Get Analyzer Help - Opens the Eclipse help topic related to the Analyzer View page.<br/> |
| |
| <p> |
| <b>Note:</b> This same functionality can be obtained through the Analyzer View context and pull-down menus. |
| </p> |
| |
| <br/><br/> |
| <p><a href="#top">Back to Top</a> | <a href="toc.html">Back to Table of Contents</a></p> |
| <br/><br/> |
| |
| <hr> |
| <center> |
| <p> |
| School of Computing * 50 S. Central Campus Dr. Rm. 3190 * Salt Lake City, UT |
| 84112 * <A href="mailto:isp-dev@cs.utah.edu">isp-dev@cs.utah.edu</a><br> |
| <a href="http://www.eclipse.org/org/documents/epl-v10.php">License</a> |
| </p> |
| </center> |
| |
| </body> |
| |
| </html> |