Главная /
Параллельное программирование с OpenMP /
Найдите ошибку в следующем фрагменте программы: #define N 10 int A[N], sum; #pragma omp parallel default(shared) num_threads(10) { int iam=omp_get_thread_num(); #pragma omp critical (update_a) #pragma omp critical (update_a) sum +=A[iam]; }
Найдите ошибку в следующем фрагменте программы:
#define N 10
int A[N], sum;
#pragma omp parallel default(shared) num_threads(10)
{
int iam=omp_get_thread_num();
#pragma omp critical (update_a)
#pragma omp critical (update_a)
sum +=A[iam];
}
вопрос
Правильный ответ:
критические секции не могут быть вложены друг в друга
одноименные критические секции не могут быть вложены друг в друга
в данном фрагменте программы ошибки нет
Сложность вопроса
15
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Я провалил сессию, почему я не увидел данный сайт с решениями интуит раньше
06 окт 2019
Аноним
Я провалил зачёт, какого рожна я не увидел этот великолепный сайт с решениями интуит до зачёта
30 ноя 2018
Аноним
Зачёт сдан. Мчусь кутить отмечать 5 в зачётке по тесту
03 авг 2018
Другие ответы на вопросы из темы программирование интуит.
- # Исполняемыми директивами в OpenMP являются:
- # Пусть следующая программа скомпилирована компилятором, поддерживающим вложенный параллелизм. #include <stdio.h> #include "omp.h" int counter; int main() { counter=0; omp_set_nested(0); #pragma omp parallel num_threads(2) { #pragma omp parallel num_threads(2) { #pragma omp atomic counter++; } } printf("Counter=%d\n",counter); } Определите значение переменной counter по завершении выполнения этой программы:
- # Найдите ошибку в следующем фрагменте программы: #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; } } }
- # Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы: #include <omp.h> #include <unistd.h> #define msec 1000 int main (void){ int i; omp_set_num_threads (8); #pragma omp parallel for for (i=0; i<80; i++) sleep (msec); #pragma omp parallel for for (i=0; i<80; i++) sleep (msec); }
- # Переменные, которые разделяются нитями, и доступ к которым обрабатывается в технологии Intel Cluster OpenMP механизмом DSM, могут быть заданы при помощи: