Главная /
Параллельное программирование с OpenMP /
Найдите ошибку в следующем фрагменте программы: #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 10
int i;
#pragma omp parallel
{
int tmp = 0;
#pragma omp for private(tmp)
for (i=0; i<N; i++) {
tmp += i;
}
}
вопрос
Правильный ответ:
не определен класс для переменной
i
(отсутствует клауза private (i)
)
начальное значение переменной
tmp
в параллельном цикле не определено
в данном фрагменте программы ошибки нет
Сложность вопроса
84
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Это было сложно
28 апр 2018
Аноним
Если бы не опубликованные решения - я бы не смог решить c этими тестами интуит.
13 авг 2016
Другие ответы на вопросы из темы программирование интуит.
- # Найдите ошибку в следующем фрагменте программы: #define N 10 int icount; #pragma omp threadprivate(icount) #pragma omp parallel { #pragma omp for for (icount=0; icount<N; icount++) { … } }
- # Найдите ошибку в следующем фрагменте программы: int numt=0; #pragma omp parallel { #pragma omp critical { numt=omp_get_num_threads(); #pragma omp barrier #pragma omp flush (numt) } }
- # Найдите ошибку в следующем фрагменте программы: #include <omp.h> int numproc; #pragma omp threadprivate(numproc) int main (void){ numproc=omp_get_num_procs(); #pragma omp parallel { if (numproc < 4) do_small_work(); else do_big_work (); } }
- # Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы: #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); }
- # Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы: #include <omp.h> #include <unistd.h> #define msec 1000 int main (void){ omp_set_num_threads (8); #pragma omp parallel for for (int i=0; i<5; i++) for (int j=0; j<5; j++) sleep (msec); }