| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <html> |
| |
| <head> |
| <link rel="stylesheet" type="text/css" href="help.css"> |
| <title>Happens Before Viewer</title> |
| </head> |
| |
| <body> |
| <a name="top"></a> |
| <table cellspacing="5"> |
| <tr> |
| <td> |
| <img src="images/trident_transparent.png"> |
| </td> |
| <td> |
| <h1>Happens Before Viewer</h1> |
| </td> |
| </tr> |
| </table> |
| |
| <hr> |
| |
| <h2>Running the Happens Before Viewer</h2> |
| <p> |
| The Happens Before Viewer is actually an external tool and is launched from within the |
| <a href="analyzerView.html#hbviewer">Analyzer View</a> or on a pre-existing log file (generated |
| at runtime by GEM) directly. This is done via context menus as shown in the image below. |
| </p> |
| |
| <p> |
| <i> Note: The log file and profiled executable generated by GEM will be in a directory named <b>"gem"</b> at |
| the top level of the current project.</i> |
| </p> |
| <ul> |
| <li> |
| From the Analyzer View, simply click the <b>HB Viewer</b> button after GEM has been run. |
| </li> |
| <li> |
| From the Project Explorer window, right click on the generated log file |
| and select <img height="16" src="images/hpv-trident.gif" width="13" /> |
| <b>Launch Happens Before Viewer</b> from the GEM context menu. |
| </li> |
| |
| </ul> |
| |
| <br> |
| <center> |
| <img src="images/hpvPopUp.png"> |
| </center> |
| <br><br> |
| |
| <h2>Understanding What You See</h2><br> |
| <ul> |
| <li> |
| <b>Showing Interleaving:</b> indicates which interleaving is currently being shown and |
| the total number of interleavings GEM examined. |
| </li> |
| <li> |
| <b>Deadlock:</b> Is either followed by <font COLOR="#00ff00">no </font>or |
| <font COLOR="#ff0000">yes</font>, and indicates if any of the interleavings contain a deadlock. |
| </li> |
| <li> |
| <b>Red Bordered DEADLOCK:</b> At the bottom of the window indicates that at this point the currently selected |
| interleaving is deadlocked. Calls above this will be issued and calls that would come afterward are not shown. |
| </li> |
| <li> |
| <b>Process[Number]:</b> This specifies which Process the calls below it belong to (Where Number is the number |
| of the process in question). The color of the border around this text is arbitrary and serves only to help |
| the human eye distinguish the various columns and return to a column of interest more quickly. |
| </li> |
| <li> |
| <b>Blue Arrows:</b> Show CB (Completes Before) edges that connect intra-process MPI calls |
| (calls within the same MPI process). A CB edge is a guarantee that the source must complete before |
| the destination. For example a Barrier will always have a CB edge connecting it to the next call in |
| the same process because the next call cannot complete before the barrier is finished. It is |
| important to note though that there is only a CB edge to each call blocked by the call in |
| question. As an example lets imagine that a Barrier is followed by a second Barrier and then a Send. There |
| is a CB edge between the first and second Barrier and between the second Barrier and the Send, but none |
| between the first Barrier and the Send because it the second Barriers that directly blocks the send. The |
| CB edges are by default not shown, but the <a href="#changing">Changing What You See</a> section |
| below will show you how to make them appear. |
| </li> |
| <li> |
| <b>Red Arrows:</b> Show CB edges that connect inter-process MPI calls (calls between different processes). |
| </li> |
| <li> |
| <b>Black Arrows:</b> Connect MPI calls that match. For example a Send will have a Black Arrow pointing to the |
| Receive that picks up its message. |
| </li> |
| <li> |
| <b>Dotted Black Arrows:</b> Like solid Block Arrows these connect calls that match. The only difference |
| is that these connect a Red Bordered call. |
| </li> |
| <li> |
| <b>Red Borders:</b> Indicates that this call is the source of a different interleaving and is |
| the cause of the non-determinism (most likely some type of Recv with an MPI_ANY_SOURCE). In other words |
| what is currently being displayed is one potential match for the Red Bordered call, but that another |
| possible match exists and can be viewed by changing which interleaving is being shown. |
| </li> |
| </ul> |
| |
| <br> |
| <img alt="" src="images/hpv.png"> |
| <br><br> |
| |
| <h2><a name="changing">Changing What You See</a></h2> |
| |
| <ul> |
| <li> |
| To change which Interleaving you are viewing you can click on the < or > buttons or click “Goto” |
| after providing the desired interleaving number in the text box next to it. |
| </li> |
| <li> |
| To toggle whether or not you want matches to shown use the check box next to “Show Matches”. |
| </li> |
| <li> |
| To reset the view back to how it was before you made changes click the “Clear” button. |
| </li> |
| <li> |
| To see the source file that generated the log click on “Show Source”. |
| </li> |
| <li> |
| To add Completes-Before (CB) Edges, there are several choices. |
| For a given call, process or some subset of either (e.g. you can select all processes and all calls or |
| some subset therein) |
| <ol> |
| <li> |
| right click the call and select either View InterCB, View IntraCB or View Both as desired. |
| </li> |
| <li> |
| Lastly you will need to indicate whether you want to view the edgesin: the <b>Root Window</b> |
| or in a <b>Separate Window</b> (see images below). A separate window with IntraCB Edges is |
| shown below. |
| </li> |
| </ol> |
| <img src="images/cbChoices.png"><br><br> |
| <br><br> |
| <img src="images/process-intracb.png"><br><br> |
| </li> |
| </ul> |
| |
| <p> |
| You may also change which log file you are viewing by clicking: File -> Open Trace and navigate to the desired file. |
| </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> |