options

Experiment Quality

gcc-dfltgcc-O2gcc-O3nvhpc-O2nvhpc-O3

[ 2 / 3 ] Security settings from the host restrict profiling. Some metrics will be missing or incomplete.

Current value for kernel.perf_event_paranoid is 2. If possible, set it to 1 or check with your system administrator which flag can be used to achieve this.

[ 2 / 3 ] Security settings from the host restrict profiling. Some metrics will be missing or incomplete.

Current value for kernel.perf_event_paranoid is 2. If possible, set it to 1 or check with your system administrator which flag can be used to achieve this.

[ 2 / 3 ] Security settings from the host restrict profiling. Some metrics will be missing or incomplete.

Current value for kernel.perf_event_paranoid is 2. If possible, set it to 1 or check with your system administrator which flag can be used to achieve this.

[ 2 / 3 ] Security settings from the host restrict profiling. Some metrics will be missing or incomplete.

Current value for kernel.perf_event_paranoid is 2. If possible, set it to 1 or check with your system administrator which flag can be used to achieve this.

[ 2 / 3 ] Security settings from the host restrict profiling. Some metrics will be missing or incomplete.

Current value for kernel.perf_event_paranoid is 2. If possible, set it to 1 or check with your system administrator which flag can be used to achieve this.

[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info

-g option gives access to debugging informations, such are source locations.

[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info

-g option gives access to debugging informations, such are source locations.

[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info

-g option gives access to debugging informations, such are source locations.

[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info

-g option gives access to debugging informations, such are source locations.

[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with source/debug info

-g option gives access to debugging informations, such are source locations.

[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present

-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.

[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present

-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.

[ 3 / 3 ] Most of time spent in analyzed modules comes from functions with compilation options informations and -fno-omit-frame-pointer is present

-fno-omit-frame-pointer improves the accuracy of callchains found during the application profiling.

[ 0 / 3 ] Most of time spent in analyzed modules comes from functions without compilation options informations

Functions without compilation options information cumulate 60.92% of the time spent in analyzed modules. For engine_linuxa64_nvidia_ompi, NVHPC cannot record compilation options.

[ 0 / 3 ] Most of time spent in analyzed modules comes from functions without compilation options informations

Functions without compilation options information cumulate 61.47% of the time spent in analyzed modules. For engine_linuxa64_nvidia_ompi, NVHPC cannot record compilation options.

[ 2 / 2 ] Application is correctly profiled ("Others" category represents 1.36 % of the execution time)

To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code

[ 2 / 2 ] Application is correctly profiled ("Others" category represents 1.25 % of the execution time)

To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code

[ 2 / 2 ] Application is correctly profiled ("Others" category represents 1.31 % of the execution time)

To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code

[ 2 / 2 ] Application is correctly profiled ("Others" category represents 1.96 % of the execution time)

To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code

[ 2 / 2 ] Application is correctly profiled ("Others" category represents 2.00 % of the execution time)

To have a representative profiling, it is advised that the category "Others" represents less than 20% of the execution time in order to analyze as much as possible of the user code

[ 3 / 3 ] Optimization level option is correctly used

[ 3 / 3 ] Optimization level option is correctly used

[ 3 / 3 ] Optimization level option is correctly used

[ 0 / 3 ] Optimization level is unknown for some functions (compilation options info are not available)

To have better performances, it is advised to help the compiler by using a proper optimization level (-O2 of higher). Warning, depending on compilers, faster optimization levels can decrease numeric accuracy.

[ 0 / 3 ] Optimization level is unknown for some functions (compilation options info are not available)

To have better performances, it is advised to help the compiler by using a proper optimization level (-O2 of higher). Warning, depending on compilers, faster optimization levels can decrease numeric accuracy.

[ 0 / 3 ] Compilation of some functions is not optimized for the target processor

Application run on the ARM_NEOVERSE_V2 micro-architecture while the code was specialized for armv8-a. Architecture specific options are needed to produce efficient code for a specific processor ( -mcpu=native ).

[ 2.98 / 3 ] Most of time spent in analyzed modules (99.38%) comes from functions compiled with architecture specialization option -mcpu

[ 2.98 / 3 ] Most of time spent in analyzed modules (99.37%) comes from functions compiled with architecture specialization option -mcpu

[ 0 / 3 ] Architecture specific options are unknown for some functions (compilation options info are not available)

Architecture specific options are needed to produce efficient code for a specific processor ( -mcpu=native ).

[ 0 / 3 ] Architecture specific options are unknown for some functions (compilation options info are not available)

Architecture specific options are needed to produce efficient code for a specific processor ( -mcpu=native ).

[ 4 / 4 ] Application profile is long enough (558.25 s)

To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.

[ 4 / 4 ] Application profile is long enough (571.83 s)

To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.

[ 4 / 4 ] Application profile is long enough (560.48 s)

To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.

[ 4 / 4 ] Application profile is long enough (601.94 s)

To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.

[ 4 / 4 ] Application profile is long enough (591.50 s)

To have good quality measurements, it is advised that the application profiling time is greater than 10 seconds.

[ 0 / 0 ] Fastmath not used

Consider to add ffast-math to compilation flags (or replace -O3 with -Ofast) to unlock potential extra speedup by relaxing floating-point computation consistency. Warning: floating-point accuracy may be reduced and the compliance to IEEE/ISO rules/specifications for math functions will be relaxed, typically 'errno' will no longer be set after calling some math functions.

[ 0 / 0 ] Fastmath not used

Consider to add ffast-math to compilation flags (or replace -O3 with -Ofast) to unlock potential extra speedup by relaxing floating-point computation consistency. Warning: floating-point accuracy may be reduced and the compliance to IEEE/ISO rules/specifications for math functions will be relaxed, typically 'errno' will no longer be set after calling some math functions.

[ 0 / 0 ] Fastmath not used

Consider to add ffast-math to compilation flags (or replace -O3 with -Ofast) to unlock potential extra speedup by relaxing floating-point computation consistency. Warning: floating-point accuracy may be reduced and the compliance to IEEE/ISO rules/specifications for math functions will be relaxed, typically 'errno' will no longer be set after calling some math functions.

Not available for this run

Not available for this run

[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.

[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.

[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.

[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.

[ 1 / 1 ] Lstopo present. The Topology lstopo report will be generated.

Code Quality

gcc-dfltgcc-O2gcc-O3nvhpc-O2nvhpc-O3

[ 4 / 4 ] CPU activity is good

CPU cores are active 96.85% of time

[ 4 / 4 ] CPU activity is good

CPU cores are active 96.88% of time

[ 4 / 4 ] CPU activity is good

CPU cores are active 96.84% of time

[ 4 / 4 ] CPU activity is good

CPU cores are active 94.60% of time

[ 4 / 4 ] CPU activity is good

CPU cores are active 94.84% of time

[ 4 / 4 ] Affinity is good (99.51%)

Threads are not migrating to CPU cores: probably successfully pinned

[ 4 / 4 ] Affinity is good (99.37%)

Threads are not migrating to CPU cores: probably successfully pinned

[ 4 / 4 ] Affinity is good (99.35%)

Threads are not migrating to CPU cores: probably successfully pinned

[ 4 / 4 ] Affinity is good (97.66%)

Threads are not migrating to CPU cores: probably successfully pinned

[ 4 / 4 ] Affinity is good (98.05%)

Threads are not migrating to CPU cores: probably successfully pinned

[ 3 / 3 ] Functions mostly use all threads

Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (0.00%)

[ 3 / 3 ] Functions mostly use all threads

Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (0.00%)

[ 3 / 3 ] Functions mostly use all threads

Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (0.00%)

[ 3 / 3 ] Functions mostly use all threads

Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (0.00%)

[ 3 / 3 ] Functions mostly use all threads

Functions running on a reduced number of threads (typically sequential code) cover less than 10% of application walltime (0.00%)

[ 3 / 3 ] Cumulative Outermost/In between loops coverage (2.96%) lower than cumulative innermost loop coverage (57.22%)

Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex

[ 3 / 3 ] Cumulative Outermost/In between loops coverage (4.93%) lower than cumulative innermost loop coverage (57.12%)

Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex

[ 3 / 3 ] Cumulative Outermost/In between loops coverage (2.96%) lower than cumulative innermost loop coverage (57.94%)

Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex

[ 3 / 3 ] Cumulative Outermost/In between loops coverage (6.91%) lower than cumulative innermost loop coverage (49.08%)

Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex

[ 3 / 3 ] Cumulative Outermost/In between loops coverage (4.81%) lower than cumulative innermost loop coverage (51.62%)

Having cumulative Outermost/In between loops coverage greater than cumulative innermost loop coverage will make loop optimization more complex

[ 4 / 4 ] Threads activity is good

On average, more than 97.24% of observed threads are actually active

[ 4 / 4 ] Threads activity is good

On average, more than 96.93% of observed threads are actually active

[ 4 / 4 ] Threads activity is good

On average, more than 96.82% of observed threads are actually active

[ 4 / 4 ] Threads activity is good

On average, more than 95.00% of observed threads are actually active

[ 4 / 4 ] Threads activity is good

On average, more than 95.16% of observed threads are actually active

[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations

BLAS2 calls usually could make a poor cache usage and could benefit from inlining.

[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations

BLAS2 calls usually could make a poor cache usage and could benefit from inlining.

[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations

BLAS2 calls usually could make a poor cache usage and could benefit from inlining.

[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations

BLAS2 calls usually could make a poor cache usage and could benefit from inlining.

[ 2 / 2 ] Less than 10% (0.00%) is spend in BLAS2 operations

BLAS2 calls usually could make a poor cache usage and could benefit from inlining.

[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (57.22%)

If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.

[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (57.12%)

If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.

[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (57.94%)

If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.

[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (49.08%)

If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.

[ 4 / 4 ] Enough time of the experiment time spent in analyzed innermost loops (51.62%)

If the time spent in analyzed innermost loops is less than 15%, standard innermost loop optimizations such as vectorisation will have a limited impact on application performances.

[ 3 / 3 ] Less than 10% (0.00%) is spend in BLAS1 operations

It could be more efficient to inline by hand BLAS1 operations

[ 3 / 3 ] Less than 10% (0.00%) is spend in BLAS1 operations

It could be more efficient to inline by hand BLAS1 operations

[ 3 / 3 ] Less than 10% (0.00%) is spend in BLAS1 operations

It could be more efficient to inline by hand BLAS1 operations

[ 3 / 3 ] Less than 10% (0.00%) is spend in BLAS1 operations

It could be more efficient to inline by hand BLAS1 operations

[ 3 / 3 ] Less than 10% (0.00%) is spend in BLAS1 operations

It could be more efficient to inline by hand BLAS1 operations

[ 2 / 2 ] Less than 10% (0.07%) is spend in Libm/SVML (special functions)

[ 2 / 2 ] Less than 10% (0.07%) is spend in Libm/SVML (special functions)

[ 2 / 2 ] Less than 10% (0.07%) is spend in Libm/SVML (special functions)

[ 2 / 2 ] Less than 10% (0.00%) is spend in Libm/SVML (special functions)

[ 2 / 2 ] Less than 10% (0.00%) is spend in Libm/SVML (special functions)

[ 4 / 4 ] Loop profile is not flat

No hotspot found in the application (greatest loop coverage is 3.60%), but the twenty hottest loops cumulated coverage is representative enough (25.38% > 20%)

[ 4 / 4 ] Loop profile is not flat

No hotspot found in the application (greatest loop coverage is 3.48%), but the twenty hottest loops cumulated coverage is representative enough (24.51% > 20%)

[ 4 / 4 ] Loop profile is not flat

No hotspot found in the application (greatest loop coverage is 3.59%), but the twenty hottest loops cumulated coverage is representative enough (25.93% > 20%)

[ 4 / 4 ] Loop profile is not flat

No hotspot found in the application (greatest loop coverage is 2.33%), but the twenty hottest loops cumulated coverage is representative enough (25.60% > 20%)

[ 4 / 4 ] Loop profile is not flat

No hotspot found in the application (greatest loop coverage is 2.39%), but the twenty hottest loops cumulated coverage is representative enough (26.95% > 20%)

[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (60.17%)

If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.

[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (62.05%)

If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.

[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (60.89%)

If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.

[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (55.99%)

If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.

[ 4 / 4 ] Enough time of the experiment time spent in analyzed loops (56.43%)

If the time spent in analyzed loops is less than 30%, standard loop optimizations will have a limited impact on application performances.

Loops Overview

Analysisr0r1r2r3r4
Loop Computation IssuesPresence of expensive FP instructions12134
Less than 10% of the FP ADD/SUB/MUL arithmetic operations are performed using FMA88888
Large loop body over microp cache size00102
Presence of a large number of scalar integer instructions66678
Bottleneck in the front-end00102
Control Flow IssuesPresence of calls00001
Presence of 2 to 4 paths22200
Presence of more than 4 paths22111
Non-innermost loop01011
Data Access IssuesPresence of constant non-unit stride data access88954
Presence of indirect access44433
Vectorization RoadblocksPresence of calls00001
Presence of 2 to 4 paths22200
Presence of more than 4 paths22145
Non-innermost loop01011
Presence of constant non-unit stride data access88954
Presence of indirect access44433

×