Главная /
Параллельное программирование с OpenMP /
Найдите ошибку в следующем фрагменте программы: int numt=0; #pragma omp parallel { #pragma omp single { #pragma omp critical { numt=omp_get_num_threads(); } #pragma omp barrier } }
Найдите ошибку в следующем фрагменте программы:
int numt=0;
#pragma omp parallel
{
#pragma omp single
{
#pragma omp critical
{
numt=omp_get_num_threads();
}
#pragma omp barrier
}
}
вопрос
Правильный ответ:
директива
critical
не может быть использована внутри конструкции single
директива
barrier
не может быть использована внутри конструкции single
в данном фрагменте программы ошибки нет
Сложность вопроса
31
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Экзамен сдал и ладушки.!!!
01 ноя 2018
Аноним
Зачёт всё. Иду отмечать отмечать 5 в зачётке по тесту
15 мар 2017
Аноним
Я сотрудник университета! Срочно заблокируйте этот ваш сайт с ответами intuit. Не ломайте образование
02 мар 2016
Другие ответы на вопросы из темы программирование интуит.
- # При реализации компилятором редукционного оператора, описанного при помощи клаузы reduction (+: sum), где переменная sum имеет тип integer, для каждой нити создается локальная копия переменной sum, начальное значение которой будет инициализировано:
- # При реализации компилятором редукционного оператора, описанного при помощи клаузы reduction (*: prod), где переменная prod имеет тип integer, для каждой нити создается локальная копия переменной prod, начальное значение которой будет инициализировано:
- # Найдите ошибку в следующем фрагменте программы: #define N 10 int A[N],B[N]; #pragma omp parallel default(shared) { int i; #pragma omp master for (i=0; i<N; i++) { A[i]=0; } #pragma omp barrier B[N-1]=B[N-1] + A[N-1]; }
- # Определите количество нитей, между которыми будет распределена работа в параллельной области: #include "omp.h" void work(int i); int main () { int n; n=10; #pragma omp parallel num_threads(4) if (n>20) { #pragma omp for for (int i=0;i<n;i++) work (i); } }
- # Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы: #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); }