Главная /
Параллельное программирование с OpenMP /
Выберите наилучшую стратегию распределения витков цикла между нитями, которая для следующего фрагмента программы даст минимальное время выполнения: #include <omp.h> #include <unistd.h> #define msec 1000 int main (void){ omp_set_num_threads (4)
Выберите наилучшую стратегию распределения витков цикла между нитями, которая для следующего фрагмента программы даст минимальное время выполнения:
#include <omp.h>
#include <unistd.h>
#define msec 1000
int main (void){
omp_set_num_threads (4);
#pragma omp parallel
{
#pragma omp for schedule (runtime)
for(int i=0; i<40;i++) {
sleep (msec);
}
}
}
вопрос
Правильный ответ:
export OMP_SCHEDULE=”static,10”
export OMP_SCHEDULE=”dynamic,15”
export OMP_SCHEDULE=”static,20”
Сложность вопроса
90
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Зачёт всё. Иду пить отмечать экзамен интуит
19 апр 2019
Аноним
Гранд мерси за ответы по intiut'у.
23 апр 2016
Аноним
Пишет вам сотрудник деканата! Немедленно уничтожьте сайт с ответами с интуит. Умоляю
08 янв 2016
Другие ответы на вопросы из темы программирование интуит.
- # Пусть W(x)a – операция записи в переменную x значения a. Пусть R(x)a – операция чтения переменной x, где a – прочитанное значение переменной x. Пусть S - операция синхронизации. Следующая последовательность событий: P1: W(x)aW(x)bSP2:R(x)aR(x)bSP3:R(x)bR(x)aS
- # Найдите ошибку в следующем фрагменте программы: #include <omp.h> int main (void){ #pragma omp parallel { int numt; #pragma omp single numt=omp_get_num_threads(); if (numt < 4) do_small_work(); else do_big_work (); } }
- # Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы: #define N 80 omp_set_num_threads (8); #pragma omp parallel shared(a,b,c,x,y,z) { #pragma omp for for (int i=0; i<N; i++) { z[i] = x[i] + y[i]; } #pragma omp for for (int i=0; i<N; i++) { a[i] = b[i] + c[i]; } }
- # Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы: #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); }
- # При использовании гибридной модели параллельного программирования MPI/OpenMP: