Главная / Параллельное программирование с OpenMP / Найдите ошибку в следующем фрагменте программы: #define N 10 float c[N]; float sum = 0.0; #pragma omp parallel shared(sum, c) { #pragma omp for reduction (+: sum) nowait for (int i=0; i<N; i++) { sum += c[i]; } #pragma omp single printf ('Sum of array=

Найдите ошибку в следующем фрагменте программы: #define N 10 float c[N]; float sum = 0.0; #pragma omp parallel shared(sum, c) { #pragma omp for reduction (+: sum) nowait for (int i=0; i<N; i++) { sum += c[i]; } #pragma omp single printf (“Sum of array=%4.2f\n”, sum); }

вопрос

Правильный ответ:

редукционная переменная sum объявлена общей(shared)
в директиве for нельзя одновременно указать клаузу reduction и клаузу nowait
до использования значения редукционной переменной sum в операторе печати в блоке single отсутствует барьерная синхронизация нитей
Сложность вопроса
85
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Комментарии:
Аноним
Кто ищет эти вопросы по интуит? Это же не сложно
09 дек 2020
Оставить комментарий
Другие ответы на вопросы из темы программирование интуит.