| 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 (%) | 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:111-113 | cg_calc_ur(int, int, int, double, double*, double*, double const*, double*, double const*) [clone .omp_outlined] | Innermost | 64.10 | 61.04 | 39.83 | 1.00 | 1.00 | 1.14 | 1.33 | 1 | 80.00 | 90.00 | 2.67 | 2.67 | 2.67 | 2.33 | 2.00 |
| ○Loop 25 | exec | cg.cpp:88-90 | cg_calc_w(int, int, int, double*, double const*, double*, double const*, double const*) [clone .omp_outlined] | Innermost | 58.52 | 57.02 | 37.20 | 1.00 | 1.00 | 1.00 | 1.05 | 1 | 94.59 | 97.30 | 5.75 | 5.75 | 5.75 | 5.75 | 5.50 |
| ○Loop 33 | exec | cg.cpp:131-131 | cg_calc_p(int, int, int, double, double*, double const*) [clone .omp_outlined] | Innermost | 26.42 | 25.93 | 16.92 | 1.00 | 1.00 | 1.29 | 1.50 | 1 | 71.43 | 85.71 | 1.50 | 1.50 | 1.50 | 1.17 | 1.00 |
| ○Loop 23 | exec | cg.cpp:85-86 | cg_calc_w(int, int, int, double*, double const*, double*, double const*, double const*) [clone .omp_outlined] | Outermost | 0.24 | 0.15 | 0.10 | 2.79 | 1.00 | 1.62 | 2.79 | 1 | 0.98 | 48.28 | 16.75 | 6.00 | 16.75 | 10.34 | 6.00 |
| ○Loop 28 | exec | cg.cpp:107-108 | cg_calc_ur(int, int, int, double, double*, double*, double const*, double*, double const*) [clone .omp_outlined] | Outermost | 0.08 | 0.05 | 0.03 | 7.78 | 1.00 | 1.91 | 7.78 | 6 | 1.25 | 47.81 | 11.67 | 1.50 | 11.67 | 6.09 | 1.50 |
| ○Loop 91 | exec | local_halos.cpp:13-15 | update_left(int, int, int, int, double*, bool) [clone .omp_outlined] | Innermost | 0.07 | 0.03 | 0.02 | 1.00 | 1.00 | 2.00 | 1.00 | 1 | 0.00 | 50.00 | 1.00 | 1.00 | 1.00 | 0.50 | 1.00 |
| ○Loop 96 | exec | local_halos.cpp:28-30 | update_right(int, int, int, int, double*, bool) [clone .omp_outlined] | Innermost | 0.07 | 0.03 | 0.02 | 1.00 | 1.00 | 2.00 | 1.00 | 1 | 0.00 | 50.00 | 1.00 | 1.00 | 1.00 | 0.50 | 1.00 |
| ○Loop 20 | exec | cg.cpp:64-68 | cg_init(int, int, int, int, double, double, double*, double const*, double const*, double*, double*, double*, double*, double*, double*) [clone .omp_outlined.7] | Innermost | 0.03 | 0.02 | 0.01 | 1.00 | 1.00 | 1.00 | 1.13 | 1 | 97.50 | 98.75 | 6.75 | 6.75 | 6.75 | 6.75 | 6.00 |
| ○Loop 160 | 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.04 | 0.02 | 0.01 | 1.00 | 1.00 | 1.00 | 1.53 | 1 | 95.45 | 97.73 | 3.83 | 3.83 | 3.83 | 3.83 | 2.50 |
| ○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.03 | 0.01 | 0.01 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 99 | exec | local_halos.cpp:46-46 | update_top(int, int, int, int, double*, bool) [clone .omp_outlined] | Single | 0.03 | 0.01 | 0.01 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 16 | exec | cg.cpp:47-50 | cg_init(int, int, int, int, double, double, double*, double const*, double const*, double*, double*, double*, double*, double*, double*) [clone .omp_outlined.5] | Innermost | 0.02 | 0.01 | 0.01 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 168 | exec | solver_methods.cpp:105-105 | finalise(int, int, int, double*, double const*, double*) [clone .omp_outlined] | Innermost | 0.02 | 0.01 | 0.01 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 12 | exec | cg.cpp:37-37 | cg_init(int, int, int, int, double, double, double*, double const*, double const*, double*, double*, double*, double*, double*, double*) [clone .omp_outlined.3] | Innermost | 0.02 | 0.01 | 0.01 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 102 | exec | local_halos.cpp:62-62 | update_bottom(int, int, int, int, double*, bool) [clone .omp_outlined] | Single | 0.02 | 0.01 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 157 | exec | solver_methods.cpp:55-55 | copy_u(int, int, int, double*, double const*) [clone .omp_outlined] | Innermost | 0.02 | 0.01 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 165 | exec | solver_methods.cpp:88-88 | calculate_2norm(int, int, int, double const*, double*) [clone .omp_outlined] | Innermost | 0.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 95 | exec | local_halos.cpp:27-28 | update_right(int, int, int, int, double*, bool) [clone .omp_outlined] | InBetween | 0.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 92 | exec | local_halos.cpp:12-13 | update_left(int, int, int, int, double*, bool) [clone .omp_outlined] | InBetween | 0.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 24 | exec | cg.cpp:85-86 | cg_calc_w(int, int, int, double*, double const*, double*, double const*, double const*) [clone .omp_outlined] | InBetween | 0.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | 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.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 31 | exec | cg.cpp:127-131 | cg_calc_p(int, int, int, double, double*, double const*) [clone .omp_outlined] | InBetween | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 81 | exec | kernel_initialise.cpp:51-56,kernel_initialise.cpp:67-70 | run_set_chunk_state(Chunk*, Settings&, State*) | Innermost | 0.07 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 169 | exec | solver_methods.cpp:30-35 | run_field_summary(Chunk*, Settings&, double*, double*, double*, double*) | Innermost | 0.04 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 222 | exec | cg_driver.cpp:69-74 | cg_main_step_driver(Chunk*, Settings&, int, double*, double*) | Single | 0.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 68 | exec | kernel_initialise.cpp:35-38 | run_set_chunk_data(Chunk*, Settings&) | Innermost | 0.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 76 | exec | kernel_initialise.cpp:80-80 | run_set_chunk_state(Chunk*, Settings&, State*) | Innermost | 0.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 88 | exec | kernel_initialise.cpp:44-44 | run_set_chunk_state(Chunk*, Settings&, State*) | Single | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 281 | exec | remote_halo_driver.cpp:84-93 | remote_halo_driver(Chunk*, Settings&, int) | Innermost | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 279 | exec | remote_halo_driver.cpp:97-103 | remote_halo_driver(Chunk*, Settings&, int) | Single | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 272 | exec | remote_halo_driver.cpp:137-137,remote_halo_driver.cpp:140-146,remote_halo_driver.cpp:150-150 | remote_halo_driver(Chunk*, Settings&, int) | InBetween | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 149 | exec | solver_methods.cpp:16-16 | store_energy(int, int, double const*, double*) [clone .omp_outlined] | Single | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 159 | exec | solver_methods.cpp:68-69,solver_methods.cpp:72-72 | calculate_residual(int, int, int, double const*, double const*, double*, double const*, double const*) [clone .omp_outlined] | Outermost | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 101 | exec | local_halos.cpp:60-62 | update_bottom(int, int, int, int, double*, bool) [clone .omp_outlined] | Single | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 98 | exec | local_halos.cpp:44-46 | update_top(int, int, int, int, double*, bool) [clone .omp_outlined] | Single | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |