26.12.2014 Views

Intel® Trace Analyzer User's Reference Guide

Intel® Trace Analyzer User's Reference Guide

Intel® Trace Analyzer User's Reference Guide

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Intel® <strong>Trace</strong> <strong>Analyzer</strong> <strong>User's</strong> <strong>Reference</strong> <strong>Guide</strong><br />

Examples of Advanced Usage of the Grammar<br />

This section includes several examples of manually using the filter expression<br />

grammar and how it provides advanced capabilities in filtering trace data and<br />

speeding up the process of selecting exactly what the user would like to be<br />

analyzed.<br />

For the first example, consider a parenthesized structure that can not be built by<br />

the point and click interface as easily (messages sent by process 0 and starting<br />

or ending between 70000 and 80000 ticks):<br />

p2pfilter( sender( 0 ) && ( start( 70000:80000 ) ||<br />

end( 70000:80000 ) ) )<br />

The following example uses the predicate sr, which is not available in the point<br />

and click interface, to efficiently filter out all messages between processes 0 and<br />

1:<br />

p2pfilter( ! sr( 0:1; 0:1 ) )<br />

Finally, consider the following scenario. With the point and click interface, a<br />

complicated filter is specified for a certain filter class with a large number of<br />

predicates and Boolean operators (both AND and OR, the latter added by using<br />

the Add New Clause button). Now, to negate everything that has been specified<br />

so far (that is, to get exactly the trace data that was previously being filtered out),<br />

use ! in front of the whole expression when in the manual mode. For example,<br />

the filter below specifies MPI_Barrier collective operations that last no longer than<br />

2000 ticks, plus all collective operations with process 0 as the root:<br />

collfilter( type( MPI_Barrier ) && duration( 0:2000 ) || root( 0 ) )<br />

while this filter specifies all the collective operations that do not match the<br />

description above:<br />

collfilter( ! ( type( MPI_Barrier ) && duration( 0:2000 ) ||<br />

root( 0 ) ) )<br />

Filter Expressions in Comparison Mode<br />

In Comparison mode (see Chapter 7, Comparison of two <strong>Trace</strong> Files) the dialog<br />

is extended by a label and a combo box that allows to apply the chosen filter<br />

expression to the other trace file shown in the View. Choosing the option "If<br />

expression is valid in other file." will check if the resulting expression is valid in<br />

the name space of the other file and if so then apply the expression as if you<br />

had manually typed it in the other file's filter dialog. Any previous input in the<br />

target dialog will be overwritten.<br />

The Tagging Dialog<br />

For an explanation of the filtering concept refer to the section called “Tagging<br />

and Filtering”. The usage of this dialog box is as for the Filtering dialog box and<br />

described in the section called “The Filtering Dialog”.<br />

The only difference is that the default Filtering dialog box lets all events pass<br />

while the default Tagging dialog box does not tag any event at all.<br />

Document number: 318120-002 70

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!