В Г. Эндрюсе Основы многопоточного, параллельного и распределенного программирования нам дан следующий алгоритм, использующий барьеры для вычисления суммы всех префиксов вектора:
В нем говорится, что все барьеры необходимы, чтобы избежать помех между процессами, но я не вижу цели первого барьера сразу после инициализации.В конце концов, значение old [i] зависит только от суммы [i], которая на первой итерации не зависит ни от какого процесса, кроме i.
Действительно ли это нужно?