Распараллеливание префиксной суммы (Openmp)

У меня есть два вектора, a [n] и b [n], где n - большое число.

a[0] = b[0];

for (i = 1; i < size; i++) {
        a[i] = a[i-1] + b[i];
}

С помощью этого кода мы пытаемся добиться того, чтобы a [i] содержал сумму всех чисел в b [] до b [i]. Мне нужно распараллелить этот цикл, используя openmp.

Основная проблема заключается в том, что [i] зависит от [i-1], поэтому единственный прямой путь, который приходит мне в голову, - это ожидание готовности каждого числа [i-1], что занимает много времени. и не имеет смысла. Есть ли какой-то подход в openmp для решения этой проблемы?

Ответы на вопрос(1)

Ваш ответ на вопрос