Главная /
Параллельное программирование с OpenMP /
int main (void){ int a, i; #pragma omp parallel shared(a) private(i) { #pragma omp single a = 0; #pragma omp for for (i = 0; i < 10; i++) { a += i; } } }
int main (void){
int a, i;
#pragma omp parallel shared(a) private(i)
{
#pragma omp single
a = 0;
#pragma omp for
for (i = 0; i < 10; i++) {
a += i;
}
}
}
вопрос
Правильный ответ:
перед директивой
for
отсутствует директива barrier
в директиве
for
отсутствует клауза reduction(+:a)
в данном фрагменте программы ошибки нет
Сложность вопроса
74
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Я завалил экзамен, за что я не нашёл данный сайт с всеми ответами по интуит прежде
08 ноя 2016
Другие ответы на вопросы из темы программирование интуит.
- # Функция omp_get_thread_num возвращает:
- # Найдите ошибку в следующем фрагменте программы: #include <math.h> double x=1024.0; int n=1024; #pragma omp parallel { #pragma omp atomic x+=sqrt(x); #pragma omp atomic n&=0177; }
- # Выберите наилучшую стратегию распределения витков цикла между нитями, которая для следующего фрагмента программы даст минимальное время выполнения: #include <omp.h> #include <unistd.h> #define msec 1000 int main (void){ omp_set_num_threads (8); #pragma omp parallel { #pragma omp for schedule (runtime) for(int i=0; i<100;i++) { sleep (i*msec); } } }
- # Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы: #include <omp.h> #include <unistd.h> #define msec 1000 int main (void){ omp_set_num_threads (8); #pragma omp parallel { #pragma omp for for(int i=0; i<80;i++) { sleep (i*msec); } #pragma omp for for(int i=0; i<80;i++) { sleep ((80-i)*msec); } } }
- # При использовании гибридной модели параллельного программирования DVM/OpenMP: