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.