2. Generating a graphical representation of the dependency graphΒΆ

To generate the graph, run the application with the NANOS6 environment variable set to graph.

The graph instrumentation creates a subdirectory with the graph in several stages and a script that can be executed to generate a PDF that combines each step in a different page. The progress of the execution can be visualized by advancing the pages. This PDF is intended to be viewed in whole page mode, instead of continuous mode.

The most graph instrumentation environment variables are boolean variables and can take either the 0 or the 1 value.

NANOS6_GRAPH_SHORTEN_FILENAMES (default value: 0)
When generating nodes, do not emit the directory together with the source code file name
NANOS6_GRAPH_SHOW_ALL_STEPS (default value: 0)
Instead of trying to collapse in one step as many related changes as possible, show one at a time.
NANOS6_GRAPH_DISPLAY (default value: 0)
Automatically process the graph through graphviz and display it.
NANOS6_GRAPH_DISPLAY_COMMAND (default value: xdg-open or evince or okular or acroread)
Command to display the final PDF of the graph. Only effective if NANOS6_GRAPH_DISPLAY is 1.
NANOS6_GRAPH_SHOW_LOG (default value: 0)
Emit a table next to the graph with a description of the changes in each frame.

In addition, the following advanced environment variables can be used to debug the runtime:

NANOS6_GRAPH_SHOW_DEPENDENCY_STRUCTURES (default value: 0)
Show the internal data structures that determine when tasks are ready.
NANOS6_GRAPH_SHOW_SPURIOUS_DEPENDENCY_STRUCTURES (default value: 0)
Do not hide internal data structures that do not determine dependencies or that are redundant by transitivity.
NANOS6_GRAPH_SHOW_DEAD_DEPENDENCY_STRUCTURES (default value: 0)
Do not hide the internal data structures after they are no longer relevant.
NANOS6_GRAPH_SHOW_REGIONS (default value: 0)
When showing internal data structures, include the information about the range of data or region that is covered.