3.10.5. Verbose instrumentationΒΆ

To enable verbose logging, run the application with the version.instrument configuration variable set to verbose.

By default it generates a lot of information. This is controlled by the instrument.verbose.areas configuration variable, which can contain a list of areas. The areas are the following:

AddTask

Task creation.

Blocking

Blocking and unblocking within a task through calls to the blocking API.

ComputePlaceManagement

Starting and stopping compute places (CPUs, GPUs, etc).

DependenciesByAccess

Dependencies by their accesses.

DependenciesByAccessLinks

Dependencies by the links between the accesses to the same data.

DependenciesByGroup

Dependencies by groups of tasks that determine common predecessors and common successors.

LeaderThread

Execution of the leader thread.

LoggingMessages

Additional logging messages.

TaskExecution

Task execution.

TaskStatus

Task status transitions.

TaskWait

Entering and exiting taskwaits.

ThreadManagement

Thread creation, activation and suspension.

UserMutex

User-side mutexes (critical).

The case is ignored, and the all keyword enables all of them. Additionally, an area can have the ! prepended to it to disable it. For instance, areas = [ "AddTask", "TaskExecution" , "TaskWait" ] is a good starting point.

The default value is:

[instrument]
    [instrument.verbose]
        areas = ["all", "!ComputePlaceManagement", "!DependenciesByAccess", "!DependenciesByAccessLinks",
            "!DependenciesByGroup", "!LeaderThread", "!TaskStatus", "!ThreadManagement"]

By default, events are recorded with their timestamp and ordered accordingly. This can be disabled by setting the instrument.verbose.timestamps configuration variable to false.

The output is emitted by default to standard error, but it can be sent to a file by specifying it through the instrument.verbose.output_file option. Also the instrument.verbose.dump_only_on_exit can be set to true to delay the output to the end of the program to avoid getting it mixed with the output of the program.