Главная /
Параллельное программирование с OpenMP /
Найдите ошибку в следующем фрагменте программы: #define N 10 int A[N],B[N]; #pragma omp parallel default(shared) num_threads(10) { int iam=omp_get_thread_num(); int tmp; tmp=A[iam]; B[iam]=tmp; }
Найдите ошибку в следующем фрагменте программы:
#define N 10
int A[N],B[N];
#pragma omp parallel default(shared) num_threads(10)
{
int iam=omp_get_thread_num();
int tmp;
tmp=A[iam];
B[iam]=tmp;
}
вопрос
Правильный ответ:
изменение общей переменной
B[iam]
выполняется без какой-либо синхронизации
чтение/изменение переменной
tmp
выполняется без какой-либо синхронизации
в данном фрагменте программы ошибки нет
Сложность вопроса
73
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
спасибо за тест
19 май 2018
Аноним
Если бы не данные решения - я бы не решил c этими тестами intuit.
16 янв 2018
Другие ответы на вопросы из темы программирование интуит.
- # Процессорная модель консистентности памяти определяется следующим условием:
- # Пусть W(x)a – операция записи в переменную x значения a. Пусть R(x)a – операция чтения переменной x, где a – прочитанное значение переменной x. Пусть S - операция синхронизации. Следующая последовательность событий: P1: W(x)aW(x)bSP2:SR(x)a
- # Параллельная область в OpenMP создается при помощи:
- # Пусть следующая программа скомпилирована компилятором, поддерживающим вложенный параллелизм. #include <stdio.h> #include "omp.h" int counter; int main() { counter=0; omp_set_nested(1); #pragma omp parallel num_threads(2) { if (omp_get_thread_num() == 0) { #pragma omp parallel num_threads(2) { #pragma omp atomic counter++; } } } printf("Counter=%d\n",counter); } Определите значение переменной counter по завершении выполнения этой программы:
- # Определите значение переменной 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(omp_get_level ()); } } printf("Team Size=%d\n",team_size); }