You are here


Using PROOF via the Graphical User Interface

Since ROOT v5.04 a dedicated GUI is available to control PROOF sessions. The GUI allows starting a session, to handle packages, to define and run queries and to handle the results of queries. To start the GUI use

root[0] TProof::Open()

This opens the Session Viewer (TSessionViewer) Interface, used to manage local and PROOF sessions. The window looks like this:


Figure 1: Startup Screen

First one has to create a session. For this, select the “Sessions” item in the left list tree and fill in the needed information in the right pane (figure 2).


Figure 2: Creating a New Session

Fields are:

  • Session Name: name used to identify the session.
  • Server name: address (URL) of the server on which the connection will be established.
  • Port: port number used for the connection.
  • Configuration file: the configuration file name that must be used (on the server. i.e.: proof.conf). Typically leave the default value as this is set up by the cluster system manager.
  • Log level: level of log (debug) information.
  • User Name: name used for authentication.
  • Process mode : synchronous / asynchronous

Once the fields have been filled in, save the connection information, it will then be added to the session list in the left pane. The full configuration (including the list of sessions, queries, packages and options) is automatically saved on exit. It is also possible to save and load different configuration files via the menu “File” or with the buttons on the toolbar.



To connect to a server, just select the corresponding item in the tree view and click on the “Connect” button (figure 3), or use the “Session” menu, or click the button on the toolbar, or just double-click on the item itself.


Figure 3: Connecting to a server

A “Password Dialog” will popup (figure 4) allowing authentication on the selected cluster.


Figure 4: Provide a password via the "Password Dialog"

While connecting, a progress bar shows the percentage of worker nodes that have been connected so far (figure 5).


Figure 5: Progress Bar showing percentage of workers connected




Once connected, the session icon is updated to reflect the connected state (figure 6) and the right pane looks like in the figure 7.


Figure 6: Connected Icon


Figure 7: Session Status Screen

Now one can create a new query by clicking the “New Query…” button via the “Session” menu, or with the button on the toolbar or directly via the “New Query…” button on the Status tab. This action will pop up a “Query Dialog” (figure 8).


Figure 8: Query Dialog

A new query is created in a few simple steps:

  1. Select a Chain by a simple click on the “Browse..” button on the right of the Chain’s text entry
  2. A new “Chain Selection Dialog” appears (figure 9), where you can create a chain by executing a macro. Just double-click on the macro name in the file list in the bottom pane to execute the macro. The chain(s) created by the macro will appear in the top pane (list of in memory chain definitions).
     _Figure 9: Chain Selection Dialog_
  3. Next select the desired in memory chain and click Ok. This closes the dialog, and returns to the “Query Dialog”.
  4. Choose the selector to be used for this query by clicking on the “Browse...” button on the right of the Selector text entry. This opens a standard “File Open" dialog (figure 10), where the desired macro can be selected.
     Figure 10: File Open Dialog
  5. At the end, when all fields are populated, click the “Add” button in order to add this query to the list of queries of the current session (figure 11). When no more queries have to be prepared close the dialog with the “Close” button.
     Figure 11: Newly Created Query

Now one can submit the queries to the server via the “Submit” button in the right pane of the Query panel (figure 12), via the “Query” menu or with the button on the toolbar.


Figure 12: Submit Query

A progress bar will show the processing status and feedback histogram for this query (figure 13).


Figure 13: Processing Status: Feedback Histogram & Progress bar

Once the processing has finished, the input and output lists are received and a summary of the results is shown in the “Results” tab in the right pane (figure 14).


Figure 14: Query Results Summary

The output list contains the query results and feedback histograms (figure 15), in case the feedback option had been selected (see section on Feedback below).


Figure 15: Output List



A few predefined system performance feedback histograms can be selected BEFORE submitting the query. They are:

  • Packets processed per node (TH1D).
  • Events processed per node (TH1D).
  • Slaves per file serving node (TH1D).
  • Packet latency per node (TH2D).
  • Packet processing time per node (TH2D).
  • Packet CPU Time per node (TH2D).

These histograms can be selected via the “Options” menu. In order to get Feedback Histograms during the processing of a query, the menu entry “Feedback Active” must be selected (checked), in addition to one or more entries in the “Feedback Histos” submenu (figure 16).


Figure 16: Options Menu: Feedback Histograms




PROOF Archive (PAR) Manager

The “Packages” tab allows user to manage PAR (PROOF ARchive) files from the GUI (figure 17).


Figure 17: The Package Manager tab

The GUI allows to:

  • Upload packages.
  • Enable packages.
  • Disable packages
  • Show all available packages
  • Show which packages are enabled

It is possible to change the order in which the packages are uploaded to the cluster using the buttons “Move Up” and “Move down”. This is important in case packages depend on other packages that must be loaded in a specific order. There is also an option to automatically enable packages at the startup of a session.



The “Command” tab allows you to execute any ROOT command on each PROOF worker node via the GUI. There is a text entry for the command line and output is redirected to a text view (figure 18).


Figure 18: Commands Tab

Bertrand Bellenot - 2009