Главная /
Параллельное программирование с OpenMP /
Найдите ошибку в следующем фрагменте программы: int main (void){ int a, i; #pragma omp parallel shared(a) private(i) { #pragma omp master a = 0; #pragma omp for reduction(+:a) for (i = 0; i < 10; i++) { a += i; } } }
Найдите ошибку в следующем фрагменте программы:
int main (void){
int a, i;
#pragma omp parallel shared(a) private(i)
{
#pragma omp master
a = 0;
#pragma omp for reduction(+:a)
for (i = 0; i < 10; i++) {
a += i;
}
}
}
вопрос
Правильный ответ:
в директиве
parallel
клауза shared(a)
должна быть заменена на private(a)
перед директивой
for
отсутствует директива barrier
в данном фрагменте программы ошибки нет
Сложность вопроса
71
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Я завалил зачёт, какого чёрта я не увидел этот сайт с решениями по интуит прежде
12 июн 2019
Аноним
Какой человек ищет вот эти тесты inuit? Это же очень просты вопросы
29 май 2018
Аноним
Если бы не данные подсказки - я бы не смог решить c этими тестами intuit.
17 окт 2017
Другие ответы на вопросы из темы программирование интуит.
- # Найдите ошибку в следующем фрагменте программы: #define N 10 int i; #pragma omp parallel { #pragma omp for private(i) lastprivate(i) for (i=0; i<N; i++) { … } #pragma omp single printf (“Number of iteration=%d\n”, i); }
- # Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 #include "omp.h" void work(int i); int main () { #pragma omp parallel { omp_set_schedule (omp_sched_static); #pragma omp for for (int i=0;i<N;i++) work (i); } }
- # Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 #include "omp.h" void work(int i); int main () { #pragma omp parallel { omp_set_schedule (omp_sched_dynamic); #pragma omp for for (int i=0;i<N;i++) work (i); } }
- # Найдите ошибку в следующем фрагменте программы: #define N 1000 int main (void){ float a[N], tmp; #pragma omp parallel { int i; #pragma omp for private(i) for(i=0; i<N;i++) { tmp= a[i]*a[i]; a[i]=1-tmp; } } }
- # 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; } } }