Главная /
Параллельное программирование с OpenMP /
Найдите ошибку в следующем фрагменте программы: #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 for for (i=0; i<N; i++) B[i]=A[i]; }
Найдите ошибку в следующем фрагменте программы:
#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 for
for (i=0; i<N; i++)
B[i]=A[i];
}
вопрос
Правильный ответ:
оператор
for
не может быть использован внутри конструкции master
по завершении конструкции
master
отсутствует директива barrier
в данном фрагменте программы ошибки нет
Сложность вопроса
61
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Экзамен прошёл на пять. Спасибо за халяуву
17 июл 2020
Аноним
Я провалил зачёт, почему я не углядел данный сайт с всеми ответами с тестами intuit до сессии
14 авг 2018
Аноним
Какой человек ищет вот эти вопросы по интуит? Это же элементарно
01 июл 2018
Другие ответы на вопросы из темы программирование интуит.
- # Найдите ошибку в следующем фрагменте программы: #define N 10 int i; #pragma omp parallel { int tmp = 0; #pragma omp for private(tmp) for (i=0; i<N; i++) { tmp += i; } }
- # Найдите ошибку в следующем фрагменте программы: #define N 1000 int main (void){ float a[N]; #pragma omp parallel { #pragma omp for for(int i=0; i<N;i++) { float tmp; tmp= a[i]*a[i]; a[i]=1-tmp; } } }
- # Поиск ошибок в OpenMP-программе, выполняемый Intel Thread Checker, основан на:
- # Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы: #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); }
- # Найдите ошибку в следующем фрагменте MPI/OpenMP-программы, вычисляющей число Пи: #include <mpi.h> #include <omp.h> #define num_steps 100000 void main (int argc, char *argv[]) { int numprocs, myid, mysteps; double pi, step, sum = 0.0 ; MPI_Init(&argc, &argv) ; MPI_Comm_Rank(MPI_COMM_WORLD, &myid) ; MPI_Comm_Size(MPI_COMM_WORLD, &numprocs) ; step = 1.0/(double) num_steps ; mysteps = num_steps/numprocs ; #pragma omp parallel shared(myid, mysteps, step) { #pragma omp for reduction(+:sum) for (int i=myid*mysteps; i<(myid+1)*mysteps ; i++){ double x = (i+0.5)*step; sum += 4.0 /(1.0+x*x); } sum *= step ; } MPI_Reduce(&sum, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); MPI_Finalize(); }