Параллельные кумулятивные (префиксные) суммы в OpenMP: передача значений между потоками

Предположим, у меня есть функцияf(i) который зависит от индексаi (среди других значений, которые не могут быть предварительно вычислены). Я хочу заполнить массивa чтобы .a[n] = sum(f(i)) from i=0 to n-1

Редактировать: После комментария Христо Илиева я понял, что я делаю, этонакопленная / префиксная сумма.

Это можно записать в коде как

float sum = 0;
for(int i=0; i