wxparaver Quick Reference

  1. Main Window
    1. Overview
    2. Menu Bar
    3. Main Buttons Bar
    4. Workspaces
    5. Window Browser
    6. Files & Window Properties
  2. Main Buttons
    1. Main Window
    2. Histogram
  3. Shortcuts Keys
    1. Overview
    2. Menus
    3. Dialogs and Fields
    4. Main Window Shortcut Keys
    5. Timeline Shortcut Keys
    6. Histogram Shortcut Keys
  4. Objects Selection
    1. Objects default labelling
    2. Objects selection using regular expressions
    3. Examples



Main window

Overview

The main window centralizes most of the information of files, windows and their properties. The main window also allows navigating the main functionalities by the means of menus and buttons.

Every window is identified and their properties can be modified. The main window also allows creating/selecting/combining timelines or histograms.

The following image represents the main window during an analysis session:



The general arrangement of the different sections is as follows: at the top there's a menu bar and a button bar; below them there's the “Workspaces” section and the “Window browser” section and the “Files & Window Properties” section.

<<



Menu bar

The menus and their entries follow general rules. They're separated by areas; some of them have associated shortcuts; others, ending with “...”, tells you that a dialog will be opened; those showing an arrow pointing to the right open submenus.

There are 3 menus, “File”, “Hints” and “Help”. Menu “Hints” may appear disabled if there's no loaded trace.



If you click the menu “File” what you get is:



Basically, the menu entries let the analyst load/unload traces, load Paraver Configuration Files (analysis views constructed as combinations of timelines or histograms), or load/save Sessions (a global analysis state snapshot). Also the user will be able to change the main wxParaver settings with Preferences.

Under “Hints” you'll find a two-level structure of menus related to your your current enabled Workspaces. The second level contains the analysis hints for it. In the example below, you see that only the MPI workspace is enabled.



Finally, the “Help” menu unfolds to the documentation and credits windows:



<<



Main buttons bar

The main buttons appear grouped in three areas: windows creation, windows destruction and utilities, as shown below.



The first three buttons create single, derived timelines and histograms, the button with a red cross icon destroys the current selected window. Finally, the last two buttons open dialogs in order to cut/filter your trace or execute other tools.

<<



Workspaces

Workspaces are sets of the most useful analyses and views and can be enabled or disabled at user request. Their state modify the “Hints” menu next time it's opened.

In the image below there are two active workspaces. The selection can be changed manually by clicking on the right button.



<<



Window browser

It provides information about the available windows for the selected trace.



The current trace is shown in the trace combo box. Changing the selector will show the windows for the new selected trace into the below windows section. Initially it may be empty if no window has been created or no configuration file has been loaded yet for that trace.

The icons on the left of every window entry describe the type of window. In the figure above there are:



Icon

Type of Window


Single timelines (the first one, or also the leafs of the derived timeline “MPI call duration”)


Derived timelines (“MPI call duration” itself). The icons represents the function that the child windows use to compose the derived timeline.


Histograms (the last one)



Clicking on a timeline or a histogram entry selects it. Then, it's surrounded with a grey square (in the example image, “MPI call” timeline appears this way), their properties are fed back into the properties section and if the window itself is currently open, it rises.

Double-click instead shows/hides that window. Notice that being hidden is different from being destroyed (with the button with a red cross icon in the main buttons bar). If you destroy a window then you'll have to create it again if needed, while a hidden window remains loaded.

The tool also allows drag and drop operation picking one timeline into another to create a derived timeline, as if the second button seen in the previous Main icons bar section was clicked. The derived timeline dialog will be open.

Also, right click in a timeline or a histogram entry will open their popup menus.

<<



Files & Window Properties

The last section of the main window is used for two different purposes. These purposes are as a file browser and as a property editor of the current selected window.

You can change from one to the other clicking one of the two buttons on the top left. Left button is for files browser and right button is for window properties.

When “Files” button is clicked a simple file browser is shown. It can be used to navigate and double click to load a file. They can be filtered with the bottom selector between CFG files (*.cfg), Trace files (*.prv or *.prv.gz) or both.



When “Window Properties” button is clicked a collection of properties for the current selected window is shown. These properties depends whether it's a timeline, a derived timeline or a histogram. Every time another window's selected its properties are shown.

The following image depicts the properties of a single timeline:



This one is for the properties of a histogram window:


The properties are grouped under subsections that you can fold/unfold.

Every subsection contains a list of properties, with their names to the left and their values to the right. If you compare the two images above, for the timeline and the histogram, you'll see how fields and sections are varying depending on the type of window.

The value of a property can be changed by clicking into the right side of the property. Some properties get the data with text boxes, others from lists of values and others open intermediate dialogs.

When the value of a property is modified, the changes are brought inmediately to the window, so it would be recomputed again if needed.

<<



Main Buttons

There's a reduced set of main buttons in wxparaver focused on the main actions: create windows and invoke utilities/external tools.

They're basically divided between the main window and the histogram window.

Main Window

Icon

Action


Creates a new timeline using the current trace (changeable with the trace selector). By default, the applied semantic is “State As Is”


Opens the “Create Derived Timeline Window” Dialog


Opens the “Create Histogram” Dialog


Deletes selected timeline or histogram


Opens the “Cut & Filter” Dialog


Opens the “Run Application” Dialog


Selects the “Files/Directories” view in the “Files & Window Properties” section


Selects the “Window Properties” view in the “Files & Window Properties” section

<<

Histogram

Icon

Action


Open the control timeline


Open data timeline


Open extra control window (in the main window, under Window Properties → 3D → 3rd Window)


Zoom. It swaps the representation of the histogram between the numerical view and a more compact graphical one


Opens a timeline showing only a subset of values. After clicking it, the mouse pointer turns into a crosshears icon. By drag and drop, you can set this range of values.


View gradient colors for values


Horizontal / Vertical. Turns 90º to swap rows and values axis


Hydes / Shows empty columns


Changes the color of the header labels of the colums


Inclusive/Exclusive overlap accumulation mode (only with stacked values). When exclusive mode is set, overlapped values are substracted from base values.


Sort columns following sort criteria (Default, Total, Average, Maximum, Minimum, StDev, Avg/Max)


Change between decreasing/increasing order for the current sort criteria

<<





Shortcuts Keys

Overview

Using shortcuts keys in wxparaver is a good way to improve your productivity. As you'll see, most of them are generic for many applications, so probably you won't need any special effort to get used with them.

Some of the shortcut keys may vary depending on your operative system. This reference is written for GNU/Linux, so variations will explicitly tell for which OS happens. It's also possible that your desktop/virtual machine had them assigned. Current version of wxparaver can't override them.

Menus

The navigation through menus is done with the arrow keys and the Home/End keys, both for the main menu in the main window and for the contextual menus of timelines and histograms (after right click inside them).

Shortcut Keys

Effect

Up / Down arrows

Navigate to previous / next menu item

Home / End

Navigate to first / last item of the menu

Left / Right arrows

Exit from or Enter to a submenu

Enter / Space

Select menu item

Esc

Close menu

<<

Dialogs and Fields

The interaction with wxparaver dialogs follow the usual dialog standards: Tab to move to next field, Space or Enter to change checkboxes or radiobuttons, and common textbox edition.

Shortcut Keys

Effect

Enter

Intro value

Tab

Navigate to next active widget

Shift + Tab

Navigate to previous active widget

Esc

Cancel dialog and exit

Ctrl + A (in textboxes)

Select all

Ctrl + Del (in textboxes)

Delete to next dot/comma or to the end

Left/Right arrows (in textboxes)

Move cursor in text boxes

Enter / Space (in radiobuttons or checkboxes)

Check/uncheck radio button or checkbox

Up / Down arrows (in spin controls)

+1/-1 unit

<<



Main Window Shortcut Keys

They mainly manage the dialogs for handling sessions and opening traces.

Shortcut Keys

Effect

Ctrl + I

Open “Load Session” dialog

Ctrl + DEL

Delete currently selected timeline or histogram

Ctrl + L (Windows only)

Open “Load Session” dialog

Ctrl + S

Open “Save Session” dialog

Ctrl + O

Open trace file

Ctrl + Q

Quit wxparaver

Esc

Close menu / Cancel dialog

<<



Timeline Shortcut Keys

Shortcut Keys

Effect

Ctrl + C

Copy all properties (*)

Ctrl + V

Paste time, objects and window size properties (*)

Drag & Drop

Select a time range and zoom in

Ctrl + Drag & Drop

Select a region and zoom in

Mouse Wheel

Zoom in/out only in time axis

Ctrl + Mouse Wheel

Zoom in/out only in both axis (rows and time)

Shift + Drag & Drop

Pan only in time axis

Ctrl + Shift + Drag & Drop

Pan in both axis (rows and time)

Ctrl + U

Undo zoom/pan

Ctrl + R

Redo zoom/pan

Ctrl + T

Set/Unset timing mode

Esc (while Drag & Drop)

Abort current Drag & Drop

<<



Histogram Shortcut Keys

Shortcut Keys

Effect

HOME

Go to the top of the histogram (only in text view)

END

Go to the totals at the bottom of the histogram (only in text view)

PAGE UP

Scroll up (only in text view)

PAGE DOWN

Scroll down (only in text view)

Ctrl + C

Copy all properties (*)

Ctrl + V

Paste time, objects and window size properties (*)

Drag & Drop

Select a columns range and zoom in

Ctrl + Drag & Drop

Select a region and zoom in

Ctrl + U

Undo zoom

Ctrl + R

Redo zoom

Esc (while Drag & Drop)

Abort current Drag & Drop

<<

(*) After "Ctrl+C", "Ctrl+V" can be applied to the same kind of window as well as from timelines to histograms, and vice versa.





Objects Selection

Objects selection window

The objects selection window can be shown clicking the mouse right button both from timeline or histogram windows. The following pop-up menu is then shown:



After clicking the "Select Objects" option, the symbolic information about objects is shown in a selection dialog.

wxparaver reads these symbolic information from the .row file. It usually contains the names for the levels contained in the trace.



This dialog allows objects selection at available levels, separated in different tabs. They can be all checked/unchecked at the same time with buttons "Select All" and "Unselect All", or use "Invert" to swap checked/unchecked states.

A quick way to perform complex selection is by using the "Add checks by objects matching" box. After clicking the "Apply" button, the objects matching the regular expression written in the textbox will be checked.

All the selections or changes are cumulative. It is specially useful when we want a complex selection that can only be done by combining more than one regular expression. Then, just apply them one by one: write the first expression, click on the "Apply" button, and carry on with next expression. Of course, in any step it's possible to swap between Posix and Quick form for less or more general selections, or select some objects by directly clicking on them.

<<

Objects default labelling

The objects default naming convention in EBNF is as follows:

  1. id = [1-9][0-9]*
  2. node = id
  3. cpu = id
  4. appl = id
  5. task = id
  6. thread = id
  7. resource_hierarchy_label = "SYSTEM" | "NODE ", node | "CPU ", node, ".", cpu
  8. process_hierarchy_label = "WORKLOAD" | "APPL ", appl | "TASK ", appl, ".", task | "THREAD ", appl, ".", task, ".", thread
  9. label = resource_hierarchy_label | process_hierarchy_label

No id level starts with 0. Some valid labels are: "TASK 2.24", "NODE 4", etc. The multilevel numeric suffix references the upper levels index in the defined hierarchy, i.e: "TASK 2.8" is task 8 of application 2, "THREAD 1.2.16" is the 16th thread of task 2 from the application 1.

Most of the times, in the instrumentation phase, Extrae can gather object names and properly label every object for all these levels. If it isn't able, then it will just apply this default labelling. Also, in analysis phase, if the .row file is missing, wxparaver will apply it.

<<

Objects selection using regular expressions

It uses by default the Quick Form, a subset of Posix basic regular expression adapted to our object name conventions, mainly around dot selection and repetitive metachars like '*','+' or '?'. It widely covers the most common selection expressions. For more specific and complex selections that this form can't express, the second option is to directly use Posix Form (Posix basic regular expressions). It can be selected checking "Match as Posix Regular Expression" option. To see how they work, you can find a table with some examples below.

Quick form:

Reg. expression

Card.

Meaning

.

1

'.' (dot character)

#

1

Only one number

?

1

Only one character

+

1-n

One or many alfanumeric

*

0-n

Zero or many alfanumeric

^

0

Begin of expression

$

0

End of expression

[135]

1

Set that matches specific numbers once

[1-3]

1

Range that matches numbers 1 to 3 once. Ranges allowed inside 0-9

TASK

1

Matches the string 'TASK'

Posix basic regular expression form:

Reg. expression

Card.

Meaning

.

1

Any character (use [.] for dot character)

?

0-n

Zero or one repetition of preceeding item

+

1-n

One or many repetitions of preceeding item

*

0-n

zero or many repetitions of preceeding item

^

0

Begin of expression

$

0

End of expression

[135]

1

Set that matches specific numbers once

[1-3]

1

Range that matches numbers 1 to 3 once. Ranges allowed inside 0-9

TASK

1

Matches the string 'TASK'

One important issue is about the presence of spaces at the end of this regular expression when writing in the textbox. Given that in some cases we explicitly want them, they're never trimmed, so it's important to be aware of that because they may totally change the selection.

<<

Examples

The following examples compare Quick and pure Posix forms to highlight their differences. The same expressions are written for both of them. It shows how the Quick form is more compact in most of the use cases.

Some results can be matched in many ways (denoted by 'or'). Others can only be done by combining more than one expression (denoted with 'then').

Also note that when writing a 3-level expression it only can refer to threads matching them in an unique way. Nevertheless a 2-level one can match some labels at two levels, like, i.e, Quick form('1.*') matches 'THREAD 1.2.3' at app-task level but also matches 'THREAD 2.1.4' at task-thread level. Using parts of the string like 'THREAD', adding levels separator '.'/'[.]' (depending on Quick/Posix Form) or end of line '$' can solve these ambiguities.

Finally, an example is given to illustrate the existence of Posix Form regex without a compact translation to Quick Form. That happens due to the redefinition of iterative metacharacters {'*','?','+'}, changing their meaning from repetition of preceeding expressions to repetition of any numeric or alphanumeric, more general and handy but less detailed.

Examples:

Quick

Posix

Meaning

Matches

*

.*

Everything

All objects (all strings)

THREAD 1 or THREAD 1*

THREAD 1 or THREAD 1.*

All threads and all tasks from applications starting with 1

THREAD 1.1.1, THREAD 1.1.2 ..., , THREAD 11.2.3, THREAD 12.1.8

THREAD 1.

THREAD 1[.]

Any thread from any task for application 1

THREAD 1.1.1, THREAD 1.1.2 ..., THREAD 1.8.8

THREAD 1.[24][1-3].*

THREAD 1[.][24][1-3][.].*

Any thread from tasks 21, 22, 23, 41, 42, 43 for the application 1

THREAD 1.21.4, ..., THREAD 1.23.7, ..., THREAD 1.43.36

1.*

1[.].*

All objects with at least 2 levels with app or task level ending with 1

TASK 1.1, TASK 1.2, ... TASK 11.32, THREAD 1.2.3, THREAD 2.1.4, THREAD 11.7.8

*.*.1$

.*[.].*[.]1$

Only thread 1 of all tasks from all applications

1.1.1, 1.2.1, 2.1.1, ..., 48.24.1

2.*.4$

2[.].*[.]4$

Only thread 4 of all tasks from application ending with 2

2.1.4, 2.2.4, 2.3.4, 12.1.4, 22.6.4

1.##.4$

1[.][0-9][0-9][.]4$

Only thread 4 of two digits tasks from application 1

1.10.4, 1.11.4, 1.12.4, ..., 1.24.4 (levels starting with 0 may match, by default there's none)

2.[1-8].1$

2[.][1-8][.]1$

Only thread 1 of tasks 1 to 8 for application 2

2.1.1, 2.2.1, ..., 2.8.1

1.[1-8].1 or 1.[1-8].1*

1[.][1-8][.]1 or 1[.][1-8][.]1.*

Threads starting with 1 of tasks 1 to 8

1.1.1, 1.1.10, ..., 1.2.1, 1.2.10, ..., 1.8.16, THREAD 1.6.16

1.[124].1+

1[.][124][.]1[0-9]+

Threads with at least two digits long starting with 1 of tasks 1, 2, or 4 for application 1

1.1.10, 1.1.11, ..., 1.1.100, ..., 1.2.1, ..., 1.4.128, THREAD 1.4.13

CPU [1-9]$ then CPU [1-2]#$ then CPU 3[0-2]$

CPU [1-9]$ then CPU [1-2][0-9]$ then CPU 3[0-2]$

CPUs 1-9, then CPUs 10-29 and then CPUs 30-32

CPU 1, CPU 2, ..., CPU 32

^##.node4$

^[0-9][0-9][.]node4$

Objects starting with two digits and ending with suffix '.node4'

00.node4, 01.node4, 02.node4

-

THREAD 1[.]1+[.]2+

Threads uniquely composed by 2's from tasks only composed by 1's for application 1

THREAD 1.1.2, THREAD 1.1.22, THREAD 1.11.2, THREAD 1.11.22, THREAD 1.111.2, THREAD 1.111.22

<<