Async

// N pointer chases in one chain
int p = start;
for (int i = 0; i < N; ++i) {
  p = arr[p];
  sum += p;
}
^ This is Faster?
// N pointer chases split into two N/2 chains
int p1 = start1, p2 = start2;
for (int i = 0; i < N / 2; ++i) {
  p1 = arr1[p1];
  p2 = arr2[p2];
  sum += p1 + p2;
}
^ This is Faster?

* The benchmark is run under AMD Ryzen 9.

* For the full benchmark code, please refer here.

* For illustration purposes only, see FAQ for more details.