Главная / Параллельное программирование с OpenMP / Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы: #include <omp.h> #include <stdio.h> #define N 100 int c[N]; int val= 1; int main (void) { omp_set_num_threads (8); #pragma omp

Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы: #include <omp.h> #include <stdio.h> #define N 100 int c[N]; int val= 1; int main (void) { omp_set_num_threads (8); #pragma omp parallel shared(val, c) { #pragma omp for for (int i=0; i<N; i++) { #pragma omp critical val = val && (c[i]<100); } } printf (“Result=%4.2f\n”, val); }

вопрос

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

вместо директивы critical использовать механизм семафоров (omp_set_lock/omp_unset_lock)
заменить директиву critical на директиву critical (<имя_критической_секции>)
добавить к директиве for клаузу reduction(&&:val) и убрать директиву critical
Сложность вопроса
75
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Комментарии:
Аноним
Благодарю за тесты по intiut'у.
09 окт 2018
Оставить комментарий
Другие ответы на вопросы из темы программирование интуит.