Как задать несколько операций в reduction OpenMP?

Можно ли как-то сократить такой код?
double tmp = 0;
#pragma omp parallel
    {
#pragma omp for reduction(+:tmp)
        for (int i = 0; i < N; ++i) {
            tmp += i * i;
        }

#pragma omp single
        {
            tmp = sqrt(tmp);
        }
    } //end #pragma omp parallel


То есть, можно ли как-то задать в reduction несколько операций/функций, которые необходимо выполнить над переменной в конце?
  • Вопрос задан
  • 243 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы