Главная /
Параллельное программирование с OpenMP /
Найдите ошибку в следующем фрагменте программы: int numt=0; #pragma omp parallel { #pragma omp master { #pragma omp critical { numt=omp_get_num_threads(); } #pragma omp barrier } }
Найдите ошибку в следующем фрагменте программы:
int numt=0;
#pragma omp parallel
{
#pragma omp master
{
#pragma omp critical
{
numt=omp_get_num_threads();
}
#pragma omp barrier
}
}
вопрос
Правильный ответ:
директива
barrier
не может быть использована внутри конструкции master
директива
critical
не может быть использована внутри конструкции master
;
в данном фрагменте программы ошибки нет
Сложность вопроса
61
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Я провалил экзамен, почему я не углядел этот крутой сайт с решениями по интуит в начале года
22 авг 2020
Аноним
Зачёт в студне отлично. Мчусь пить отмечать зачёт интуит
04 авг 2017
Другие ответы на вопросы из темы программирование интуит.
- # Функция omp_get_thread_num возвращает:
- # Найдите ошибку в следующем фрагменте программы: #pragma omp parallel default(shared) { int i; #pragma omp for lastprivate(i) for (i=0; i<n; i++) { i+=2; work(i); } }
- # Найдите ошибку в следующем фрагменте программы: #include <math.h> double x=1024.0; int n=1024; #pragma omp parallel { #pragma omp atomic x=sqrt(x); #pragma omp atomic n&=0177; }
- # Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #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); } }
- # Выберите наилучшую стратегию распределения витков цикла между нитями, которая для следующего фрагмента программы даст минимальное время выполнения: #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<80;i++) { sleep (msec); } } }