Главная /
Параллельное программирование с OpenMP /
Найдите ошибку в следующем фрагменте программы: #define N 10 int A[N],B[N],tmp; #pragma omp parallel default(shared) num_threads(10) { int iam=omp_get_thread_num(); tmp=A[iam]; B[iam]=tmp; }
Найдите ошибку в следующем фрагменте программы:
#define N 10
int A[N],B[N],tmp;
#pragma omp parallel default(shared) num_threads(10)
{
int iam=omp_get_thread_num();
tmp=A[iam];
B[iam]=tmp;
}
вопрос
Правильный ответ:
изменение общей переменной
B[iam]
выполняется без какой-либо синхронизации
чтение/изменение общей переменной
tmp
выполняется без какой-либо синхронизации
в данном фрагменте программы ошибки нет
Сложность вопроса
91
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Если бы не эти подсказки - я бы не осилил c этими тестами intuit.
26 июн 2020
Аноним
Спасибо за ответы интуит
12 июн 2016
Другие ответы на вопросы из темы программирование интуит.
- # Найдите ошибку в следующем фрагменте программы: int i=0; int numt = omp_get_max_threads(); #pragma omp parallel default (none) private (i) { #pragma omp for for(i=0; i< numt; i++) Work(i); }
- # Найдите ошибку в следующем фрагменте программы: #define N 10 float c[N]; float sum = 0.0; #pragma omp parallel shared(sum, c) { #pragma omp for reduction (+: sum) nowait for (int i=0; i<N; i++) { sum += c[i]; } #pragma omp single printf (“Sum of array=%4.2f\n”, sum); }
- # Определите значение переменной team_size по завершении выполнения следующей программы: #include <stdio.h> #include "omp.h" int main() { int team_size; team_size=0; #pragma omp parallel num_threads(2) { if (omp_get_thread_num() == 0) { team_size=omp_get_team_size(0); } } printf("Team Size=%d\n",team_size); }
- # Поиск ошибок в OpenMP-программе, выполняемый Intel Thread Checker, основан на:
- # Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы: #include <omp.h> #include <unistd.h> #define msec 1000 int main (void){ omp_set_num_threads (8); for (int i=0; i<80; i++) #pragma omp parallel for for (int j=0; j<80; j++) sleep (msec); }