Распараллеливание префиксной суммы (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 для решения этой проблемы?