7.3. The Summary Frame

The summary frame contains different views which can be chosen by clicking on their respective tab.

7.3.1. The Summary Tab

The summary tab presents statistics for the entire application and information about the parameters used in the analysis.

The Summary Tab

Figure 7.10. The Summary Tab


The diagrams show various cache size dependent metrics for the whole application. See Section 7.1.2, “Reading the Diagrams”.

The table below the diagram shows the values of some statistics for the entire application at the specific cache size the analysis focuses on and the values of some parameters used in the analysis, see Section 7.1.1, “Reading the Statistics”

7.3.2. The Loops Tab

The Loops Tab

Figure 7.11. The Loops Tab


The loops tab enumerates the loops associated with issues that have been found in the application and some statistics about them. Sometimes the same loop may be the cause of several issues and it may then be a good take an over all look at the loop instead of looking at each of the issues separately.

Loop

Numerical identifier for the current loop. Clicking on this number will bring up information about the loop in the issue frame, see Section 7.4.4, “Issue Details”. It will also highlight the instructions related to the loop in the source frame.

% of misses

The proportion of the total cache misses that are caused by the loop.

% of fetches

The proportion of the total cache fetches that are caused by the loop.

Loops are sorted by this value by default.

Fetch utilization

Average fetch utilization for the instructions involved in this loop. See Section 4.5, “Fetch Utilization”.

Write-back utilization

Average write-back utilization for the instructions in this loop. See Section 4.6, “Write-Back Utilization”

Issues

Icons symbolizing the issues associated with this loop.

7.3.3. The Bandwidth Issues Tab

The Bandwidth Issues Tab

Figure 7.12. The Bandwidth Issues Tab


The bandwidth issues tab lists the issues that primarily affect the memory bandwidth requirement of the application. These are issues that may be hidden by hardware prefetching as long as there is enough memory bandwidth available, but will start to cause cache misses if the memory bandwidth is exhausted.

The following columns are available in the bandwidth issue list:

Issue number

Numerical identifier for the current issue. Clicking on this number will bring up information about the issue in the issue frame, see Section 7.4.4, “Issue Details”. It will also bring up the related source code in the source frame, and highlight the worst line.

Issue type

Issue type and icon. The issue icon is also shown in the source frame.

% of bandwidth

The proportion of the total fetches and write-backs that are caused by the issue. This gives you an idea of which issues cause the most memory-bandwidth usage and therefore are most important to address.

Bandwidth issues are sorted by this value by default.

% of fetches

The percentage of the total cache line fetches that are related to the issue.

% of write-backs

The percentage of the total cache line write-backs that are related to the issue.

Fetch utilization

Average fetch utilization for the instructions involved in this issue. See Section 4.5, “Fetch Utilization”.

Write-back utilization

Average write-back utilization for the instructions involved in this issue. See Section 4.6, “Write-Back Utilization”

7.3.4. The Latency Issues Tab

The Latency Issues Tab

Figure 7.13. The Latency Issues Tab


The latency issues tab lists the issues that primarily cause cache misses. Cache misses cause stalls in the execution and have an immediate negative effect on the execution speed.

The following columns are available in the latency issue list:

Issue number

Numerical identifier for the current issue. Clicking on this number will bring up information about the issue in the issue frame, see Section 7.4.4, “Issue Details”. It will also bring up the related source code in the source frame, and highlight the worst line.

Issue type

Issue type and icon. The issue icon is also shown in the source frame.

% of misses

The proportion of the total cache misses that are caused by the issue. This gives you an idea of which issues cause the most misses and therefore are most important to address.

Latency issues are sorted by this value by default.

HW-Prefetch

An estimate of the fraction of the cache misses related to this issue that are avoided by the hardware prefetcher, assuming that the memory bandwidth limit is not hit. See Section 3.6.2, “Hardware Prefetching”.

Randomness

An estimate of randomness of the memory access pattern for the instructions related to this issue. See Section 4.11, “Access Randomness”.

Fetch utilization

Average fetch utilization for the instructions involved in this issue. See Section 4.5, “Fetch Utilization”.

7.3.5. The Multi-Threading Issues Tab

The Multi-Threading Issues Tab

Figure 7.14. The Multi-Threading Issues Tab


The multi-threading issues tab lists issues related to multithreading and data sharing between threads.

The following columns are available in the multi-threading issue list:

Issue number

Numerical identifier for the current issue. Clicking on this number will bring up information about the issue in the issue frame, see Section 7.4.4, “Issue Details”. It will also bring up the source code for the related to the issue in the source frame.

Issue type

Issue type and icon. The issue icon is also shown in the source frame.

% of communication

The percentage of all cache line communication of the application that is associated with this issue.

Communication utilization

The average communication utilization for the instructions involved an issue. See Section 4.7, “Communication Utilization”.

False sharing

The probability that an access related to an issue will suffer from false sharing. See Section 5.4.1, “False Sharing”.

7.3.6. The Pollution Issues Tab

The Pollution Issues Tab

Figure 7.15. The Pollution Issues Tab


The pollution issues tab lists issues related to cache pollution and non-temporal data.

The following columns are available in the pollution issue list:

Issue number

Numerical identifier for the current issue. Clicking on this number will bring up information about the issue in the issue frame, see Section 7.4.4, “Issue Details”. It will also bring up the source code for the related to the issue in the source frame.

Issue type

Issue type and icon. The issue icon is also shown in the source frame.

% of fetches

The percentage of all fetches of the application that are caused by these non-temporal reuses.

Required cache size

An estimate of the cache size that would be required for the fetch ratio the non-temporal reuses to fall below 80%.

7.3.7. The Files Tab

The Files Tab

Figure 7.16. The Files Tab


The files tab lists the source code files of the application. Clicking on a file opens it in the source code frame.

This tab also lists all loaded modules, binaries and shared libraries (.so, .dll), along with their respective load addresses. This table is useful to understanding code paths and call stack chains in third-party code, for which no debug information is available.

7.3.8. The Execution Tab

The Execution Tab

Figure 7.17. The Execution Tab


The execution tab shows some information about the sampling and analysis the report is based on.

Command line

The command line of the sampled application. Reported to make it easier to reproduce a run.

Sampling start time

The time when the sampling of the application started.

Sampling end time

The time when the sampling of the application ended.

User

The user account that was used when sampling the application.

Sample file

The name of the sample file the report is based non.

Number of samples

The number of samples in the sample file.

Analysis parameters

The command line of the report command when generating the report. Provided to make it easier to repeat the same analysis.

Analysis time

The time when the report was generated.

Effective thread binding

A list of how the threads in the application populate the caches according to the thread binding currently in effect.

Cache number denotes the sibling number of the cache at the selected cache level.

Thread id is the operating thread id number. Depending on the active thread bindning, one or more threads can operate in each cache.

For each thread, Freja sequentially assigns a virtual thread id, starting with 0. It may be easier to use these virtual thread ids when specifying explicit thread bindings. See options --number-of-caches , --group and --real-thread-id in report(1).

Use this table to see the effect of different thread bindings.

7.3.9. The About/Help Tab

The About/Help Tab

Figure 7.18. The About/Help Tab


The about/help tab shows version information for the Freja package that generated the report, contact information for Rogue Wave Software and information about the license used to generate the report.