| ID | Module | Source Location | Source Function | Level | Max Time Over Threads (s) | Time w.r.t. Wall Time (s) | Coverage (% app. time) | Speedup if no scalar integer | Speedup if FP arith vectorized | Speedup if fully vectorized | Speedup if FP only | Number of paths | Vectorization Ratio (%) | Vector Length Use (%) | Flops (GFLOP/s) | CQA cycles | CQA cycles if no scalar integer | CQA cycles if FP arith vectorized | CQA cycles if fully vectorized | CQA cycles if FP only |
| ○Loop 29 | exec | cg.cpp:108-113 | cg_calc_ur(int, int, int, double, double*, double*, double const*, double*, double const*) [clone .omp_outlined] | Innermost | 116.27 | 115.19 | 43.16 | 1.00 | 1.00 | 1.00 | 2.00 | 1 | 100.00 | 100.00 | 35.23 | 6.00 | 6.00 | 6.00 | 6.00 | 3.00 |
| ○Loop 25 | exec | cg.cpp:86-90 | cg_calc_w(int, int, int, double*, double const*, double*, double const*, double const*) [clone .omp_outlined] | Innermost | 88.93 | 87.22 | 32.68 | 1.00 | 1.00 | 1.00 | 1.10 | 1 | 95.45 | 100.00 | 116.16 | 11.00 | 11.00 | 11.00 | 11.00 | 10.00 |
| ○Loop 33 | exec | cg.cpp:128-131 | cg_calc_p(int, int, int, double, double*, double const*) [clone .omp_outlined] | Innermost | 55.70 | 55.02 | 20.62 | 1.00 | 1.00 | 1.00 | 3.00 | 1 | 88.89 | 91.67 | 24.58 | 3.00 | 3.00 | 3.00 | 3.00 | 1.00 |
| ○Loop 24 | exec | cg.cpp:85-86,cg.cpp:90-90 | cg_calc_w(int, int, int, double*, double const*, double*, double const*, double const*) [clone .omp_outlined] | Outermost | 0.99 | 0.82 | 0.31 | 5.00 | 1.00 | 2.73 | 5.00 | 1 | 2.11 | 26.76 | 32.65 | 30.00 | 6.00 | 30.00 | 11.00 | 6.00 |
| ○Loop 28 | exec | cg.cpp:105-108,cg.cpp:111-113 | cg_calc_ur(int, int, int, double, double*, double*, double const*, double*, double const*) [clone .omp_outlined] | Outermost | 0.61 | 0.42 | 0.16 | 8.00 | 1.00 | 4.21 | 13.33 | 6 | 4.44 | 27.50 | 22.75 | 20.00 | 2.50 | 20.00 | 4.75 | 1.50 |
| ○Loop 93 | exec | local_halos.cpp:13-15 | update_left(int, int, int, int, double*, bool) [clone .omp_outlined] | Innermost | 0.14 | 0.10 | 0.04 | 1.00 | 1.00 | 4.00 | 1.00 | 1 | 0.00 | 25.00 | 0.00 | 1.00 | 1.00 | 1.00 | 0.25 | 1.00 |
| ○Loop 96 | exec | local_halos.cpp:28-30 | update_right(int, int, int, int, double*, bool) [clone .omp_outlined] | Innermost | 0.10 | 0.05 | 0.02 | 1.00 | 1.00 | 4.00 | 1.00 | 1 | 0.00 | 25.00 | 0.00 | 1.00 | 1.00 | 1.00 | 0.25 | 1.00 |
| ○Loop 0 | exec | cg.cpp:21-25 | cg_init(int, int, int, int, double, double, double*, double const*, double const*, double*, double*, double*, double*, double*, double*) [clone .omp_outlined] | Innermost | 0.07 | 0.02 | 0.01 | NA | NA | NA | NA | NA | NA | NA | 5.56 | NA | NA | NA | NA | NA |
| ○Loop 21 | exec | cg.cpp:62-68 | cg_init(int, int, int, int, double, double, double*, double const*, double const*, double*, double*, double*, double*, double*, double*) [clone .omp_outlined.6] | Innermost | 0.04 | 0.02 | 0.01 | NA | NA | NA | NA | NA | NA | NA | 69.81 | NA | NA | NA | NA | NA |
| ○Loop 158 | exec | solver_methods.cpp:71-72 | calculate_residual(int, int, int, double const*, double const*, double*, double const*, double const*) [clone .omp_outlined] | Innermost | 0.05 | 0.02 | 0.01 | NA | NA | NA | NA | NA | NA | NA | 62.45 | NA | NA | NA | NA | NA |
| ○Loop 103 | exec | local_halos.cpp:60-62 | update_bottom(int, int, int, int, double*, bool) [clone .omp_outlined] | Single | 0.05 | 0.01 | 0.01 | NA | NA | NA | NA | NA | NA | NA | 0.00 | NA | NA | NA | NA | NA |
| ○Loop 15 | exec | cg.cpp:49-50 | cg_init(int, int, int, int, double, double, double*, double const*, double const*, double*, double*, double*, double*, double*, double*) [clone .omp_outlined.4] | Innermost | 0.04 | 0.01 | 0.00 | NA | NA | NA | NA | NA | NA | NA | 47.76 | NA | NA | NA | NA | NA |
| ○Loop 100 | exec | local_halos.cpp:44-46 | update_top(int, int, int, int, double*, bool) [clone .omp_outlined] | Single | 0.05 | 0.01 | 0.00 | NA | NA | NA | NA | NA | NA | NA | 0.00 | NA | NA | NA | NA | NA |
| ○Loop 30 | exec | cg.cpp:127-128,cg.cpp:131-131 | cg_calc_p(int, int, int, double, double*, double const*) [clone .omp_outlined] | Outermost | 0.05 | 0.01 | 0.00 | NA | NA | NA | NA | NA | NA | NA | 29.23 | NA | NA | NA | NA | NA |
| ○Loop 155 | exec | solver_methods.cpp:53-55 | copy_u(int, int, int, double*, double const*) [clone .omp_outlined] | Innermost | 0.04 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | 0.00 | NA | NA | NA | NA | NA |
| ○Loop 167 | exec | solver_methods.cpp:103-105 | finalise(int, int, int, double*, double const*, double*) [clone .omp_outlined] | Innermost | 0.03 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | 8.89 | NA | NA | NA | NA | NA |
| ○Loop 83 | exec | kernel_initialise.cpp:51-56,kernel_initialise.cpp:67-70 | run_set_chunk_state(Chunk*, Settings&, State*) | Innermost | 0.08 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | 122.66 | NA | NA | NA | NA | NA |
| ○Loop 225 | exec | cg_driver.cpp:69-74 | cg_main_step_driver(Chunk*, Settings&, int, double*, double*) | Single | 0.04 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | 0.00 | NA | NA | NA | NA | NA |
| ○Loop 7 | exec | cg.cpp:35-37 | cg_init(int, int, int, int, double, double, double*, double const*, double const*, double*, double*, double*, double*, double*, double*) [clone .omp_outlined.2] | Innermost | 0.03 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | 0.00 | NA | NA | NA | NA | NA |
| ○Loop 92 | exec | local_halos.cpp:12-13 | update_left(int, int, int, int, double*, bool) [clone .omp_outlined] | Outermost | 0.03 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | 0.00 | NA | NA | NA | NA | NA |
| ○Loop 168 | exec | solver_methods.cpp:28-35 | run_field_summary(Chunk*, Settings&, double*, double*, double*, double*) | Innermost | 0.03 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | 479.98 | NA | NA | NA | NA | NA |