Other Facilities



next up previous
Next: Scalable Visual Feedback Up: Ariadne: Modeling Language Previous: Pt-chain

Other Facilities

In order to be useful, Ariadne has to provide other commands for doing post-mortem event-based debugging. These include loading of trace files, moving the focus of attention to different phases of the computation trace, doing coarse grained static filtering etc.
  1. Loading of trace file is accomplished by the command
    load <trace-file-name>
    Each entry in the trace file is supposed to contain the pid of the process where the event occurs, the pid of the other process (if any) involved in that event, the event type, and any user defined tag associated with the event. Ariadne assumes processor consistency model of parallel computation - namely between two processes messages are received in the order that they were sent. It automatically calculates Lamport Timestamp for events based on this assumption, and can handle dummy events used to handle edge conditions.

  2. Matching is done when Ariadne is issued the command
    match <match-variable> = <Pt-Chain>; This matches the Pt-Chain expression, and assigns the matching abstract event tree structure to the match-variable.

    We will now discuss how to match the scatter-gather DAG structure discussed in Section gif. Note that the DAG in question can be considered as a superposition of two rooted trees - one signifying the causal ordering, and one the program-order of the sending process. Thus we can ensure that the pattern matched is indeed the one the user intended, by doing a two-step matching.
    ch co_find = <: M @ R :> W @ R;
    pch CoFind = co_find onsome 0..3;
    match first = CoFind;
    ch po_find = M R+ W @ R;
    pch PoFind = po_find onsome 0..3;
    match second = PoFind with [ first ];
    The last statement does the matching, but it only considers the events that were consumed by the match variable first. Thus the second matching acts as an assertion. If it succeeds, then the user knows that everything has gone well. If it fails then something is clearly wrong.

  3. Coarse grained filtering is achieved using cursors. Ariadne allows the user to limit the focus of attention by using the left and right cursors. These are events that can be used to delineate the area of interest for the purposes of behavioral modeling. Only the events between the left and the right cursors are used for modeling purposes. Ariadne allows user to divide the entire execution trace in different phases. The user can move the cursors through commands
    mlc Phase Cold 1
    moves the left cursor to the first Phase event in each process tagged as Cold. By default the left cursor is stationed at the beginning of the trace file. The command
    mrc Phase Hot 3
    moves the right cursor to the third Phase event in each process tagged as Hot. By default the right cursor is stationed at the end of the trace file.



next up previous
Next: Scalable Visual Feedback Up: Ariadne: Modeling Language Previous: Pt-chain



Joydip Kundu