| 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 38 | exec | cg.cpp:108-113 | cg_calc_ur(int, int, int, double, double*, double*, double const*, double*, double const*) [clone ._omp_fn.0] | Innermost | 64.79 | 62.20 | 38.68 | 1.00 | 1.07 | 1.07 | 1.00 | 1 | 75.00 | 87.50 | 4.00 | 4.00 | 3.73 | 3.73 | 4.00 |
| ○Loop 31 | exec | cg.cpp:86-90 | cg_calc_w(int, int, int, double*, double const*, double*, double const*, double const*) [clone ._omp_fn.0] | Innermost | 59.85 | 59.38 | 36.92 | 1.00 | 1.04 | 1.04 | 1.00 | 1 | 88.46 | 94.23 | 4.00 | 4.00 | 3.86 | 3.86 | 4.00 |
| ○Loop 43 | exec | cg.cpp:128-131 | cg_calc_p(int, int, int, double, double*, double const*) [clone ._omp_fn.0] | Innermost | 28.19 | 26.48 | 16.47 | 1.00 | 1.00 | 1.00 | 1.17 | 1 | 100.00 | 100.00 | 1.17 | 1.17 | 1.17 | 1.17 | 1.00 |
| ○Loop 40 | exec | cg.cpp:105-105,cg.cpp:108-108 | cg_calc_ur(int, int, int, double, double*, double*, double const*, double*, double const*) [clone ._omp_fn.0] | Outermost | 0.10 | 0.04 | 0.02 | 1.00 | 1.00 | 1.09 | 6.00 | 1 | 0.00 | 90.00 | 2.00 | 2.00 | 2.00 | 1.83 | 0.33 |
| ○Loop 120 | exec | local_halos.cpp:13-15 | update_left(int, int, int, int, double*, bool) [clone ._omp_fn.0] | Innermost | 0.06 | 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 33 | exec | cg.cpp:83-83,cg.cpp:86-86 | cg_calc_w(int, int, int, double*, double const*, double*, double const*, double const*) [clone ._omp_fn.0] | Outermost | 0.07 | 0.03 | 0.02 | 1.00 | 1.00 | 1.08 | 7.00 | 1 | 0.00 | 91.67 | 2.33 | 2.33 | 2.33 | 2.17 | 0.33 |
| ○Loop 25 | 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_fn.3] | Innermost | 0.04 | 0.02 | 0.02 | 1.00 | 1.00 | 2.00 | 1.50 | 1 | 0.00 | 50.00 | 4.50 | 4.50 | 4.50 | 2.25 | 3.00 |
| ○Loop 125 | exec | local_halos.cpp:28-30 | update_right(int, int, int, int, double*, bool) [clone ._omp_fn.0] | Innermost | 0.04 | 0.02 | 0.01 | 1.00 | 1.00 | 2.00 | 3.33 | 1 | 0.00 | 50.00 | 0.83 | 0.83 | 0.83 | 0.42 | 0.25 |
| ○Loop 34 | exec | cg.cpp:105-105 | cg_calc_ur(int, int, int, double, double*, double*, double const*, double*, double const*) [clone ._omp_fn.0] | Innermost | 0.06 | 0.02 | 0.01 | 1.00 | 1.80 | 2.00 | 1.00 | 1 | 0.00 | 50.00 | 2.00 | 2.00 | 1.11 | 1.00 | 2.00 |
| ○Loop 209 | exec | solver_methods.cpp:69-72 | calculate_residual(int, int, int, double const*, double const*, double*, double const*, double const*) [clone ._omp_fn.0] | Innermost | 0.03 | 0.02 | 0.01 | 1.00 | 1.00 | 1.00 | 1.39 | 1 | 100.00 | 100.00 | 3.83 | 3.83 | 3.83 | 3.83 | 2.75 |
| ○Loop 19 | 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_fn.0] | Innermost | 0.04 | 0.01 | 0.01 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 131 | exec | local_halos.cpp:46-46 | update_top(int, int, int, int, double*, bool) [clone ._omp_fn.0] | Innermost | 0.04 | 0.01 | 0.01 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 5 | 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_fn.2] | Innermost | 0.03 | 0.01 | 0.01 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 26 | exec | cg.cpp:83-83 | cg_calc_w(int, int, int, double*, double const*, double*, double const*, double const*) [clone ._omp_fn.0] | Innermost | 0.03 | 0.01 | 0.01 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 134 | exec | local_halos.cpp:62-62 | update_bottom(int, int, int, int, double*, bool) [clone ._omp_fn.0] | Innermost | 0.03 | 0.01 | 0.01 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 39 | exec | cg.cpp:105-105,cg.cpp:108-113 | cg_calc_ur(int, int, int, double, double*, double*, double const*, double*, double const*) [clone ._omp_fn.0] | InBetween | 0.03 | 0.01 | 0.01 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 218 | exec | solver_methods.cpp:103-105 | finalise(int, int, int, double*, double const*, double*) [clone ._omp_fn.0] | Innermost | 0.02 | 0.01 | 0.01 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 32 | exec | cg.cpp:83-83,cg.cpp:86-90 | cg_calc_w(int, int, int, double*, double const*, double*, double const*, double const*) [clone ._omp_fn.0] | InBetween | 0.03 | 0.01 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 45 | exec | cg.cpp:125-125,cg.cpp:128-128 | cg_calc_p(int, int, int, double, double*, double const*) [clone ._omp_fn.0] | Outermost | 0.03 | 0.01 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 204 | exec | solver_methods.cpp:53-55 | copy_u(int, int, int, double*, double const*) [clone ._omp_fn.0] | Innermost | 0.02 | 0.01 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 16 | 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_fn.1] | Innermost | 0.02 | 0.01 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 44 | exec | cg.cpp:127-131 | cg_calc_p(int, int, int, double, double*, double const*) [clone ._omp_fn.0] | InBetween | 0.02 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 215 | exec | solver_methods.cpp:86-88 | calculate_2norm(int, int, int, double const*, double*) [clone ._omp_fn.0] | Innermost | 0.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 126 | exec | local_halos.cpp:28-28 | update_right(int, int, int, int, double*, bool) [clone ._omp_fn.0] | InBetween | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 106 | exec | kernel_initialise.cpp:51-56,kernel_initialise.cpp:69-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 121 | exec | local_halos.cpp:13-13 | update_left(int, int, int, int, double*, bool) [clone ._omp_fn.0] | InBetween | 0.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 132 | exec | local_halos.cpp:58-62 | update_bottom(int, int, int, int, double*, bool) [clone ._omp_fn.0] | Outermost | 0.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 129 | exec | local_halos.cpp:42-46 | update_top(int, int, int, int, double*, bool) [clone ._omp_fn.0] | Outermost | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 119 | exec | local_halos.cpp:10-15 | update_left(int, int, int, int, double*, bool) [clone ._omp_fn.0] | Outermost | 0.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 226 | exec | solver_methods.cpp:28-35 | run_field_summary(Chunk*, Settings&, double*, double*, double*, double*) | Innermost | 0.02 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 124 | exec | local_halos.cpp:25-30 | update_right(int, int, int, int, double*, bool) [clone ._omp_fn.0] | Outermost | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 117 | exec | kernel_initialise.cpp:44-46 | run_set_chunk_state(Chunk*, Settings&, State*) | Single | 0.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 366 | exec | remote_halo_driver.cpp:8-11,remote_halo_driver.cpp:34-38,remote_halo_driver.cpp:150-156 | remote_halo_driver(Chunk*, Settings&, int) | Innermost | 0.01 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 211 | exec | solver_methods.cpp:66-66,solver_methods.cpp:69-69 | calculate_residual(int, int, int, double const*, double const*, double*, double const*, double const*) [clone ._omp_fn.0] | Outermost | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 200 | exec | solver_methods.cpp:16-16 | store_energy(int, int, double const*, double*) [clone ._omp_fn.0] | Innermost | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 102 | exec | kernel_initialise.cpp:35-38 | run_set_chunk_data(Chunk*, Settings&) | Single | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 114 | exec | kernel_initialise.cpp:78-80 | run_set_chunk_state(Chunk*, Settings&, State*) | Innermost | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 367 | exec | remote_halo_driver.cpp:84-93 | 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 210 | exec | solver_methods.cpp:68-72 | calculate_residual(int, int, int, double const*, double const*, double*, double const*, double const*) [clone ._omp_fn.0] | InBetween | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 306 | exec | cg_driver.cpp:69-74 | cg_main_step_driver(Chunk*, Settings&, int, double*, double*) | Single | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 139 | exec | local_halos.cpp:40-40,local_halos.cpp:56-56,local_halos.cpp:79-79,local_halos.cpp:82-82 | update_face(int, int, int, int const*, int, double*, bool) | InBetween | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
| ○Loop 138 | exec | local_halos.cpp:56-58 | update_face(int, int, int, int const*, int, double*, bool) | Innermost | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |