Главная /
Параллельное программирование с OpenMP /
Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 #include "omp.h" void work(int i); int main () { #pragma omp parallel { omp_set_schedule (omp_sched_dynamic); #pragma omp for for (int i=0;i<N;i
Определите способ распределения витков цикла между нитями для следующего фрагмента программы:
#define N 100
#include "omp.h"
void work(int i);
int main () {
#pragma omp parallel
{
omp_set_schedule (omp_sched_dynamic);
#pragma omp for
for (int i=0;i<N;i++) work (i);
}
}
вопрос
Правильный ответ:
динамический (dynamic)
зависит от значения переменной окружения
OMP_SCHEDULE
зависит от реализации компилятора
Сложность вопроса
77
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Я провалил сессию, какого рожна я не нашёл этот сайт с всеми ответами по интуит раньше
25 июл 2019
Другие ответы на вопросы из темы программирование интуит.
- # Функция omp_get_num_threads возвращает:
- # Клауза num_threads задает:
- # Пусть перед входом в параллельную область вызывается функция omp_set_num_threads. Пусть в директиве создания этой параллельной области указана клауза num_threads. Количество создаваемых нитей будет:
- # Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 #include "omp.h" void work(int i); int main () { #pragma omp parallel { omp_set_schedule (omp_sched_static); #pragma omp for schedule(dynamic) for (int i=0;i<N;i++) work (i); } }
- # Выберите наилучшую стратегию распределения витков цикла между нитями, которая для следующего фрагмента программы даст минимальное время выполнения: #include <omp.h> #include <unistd.h> #define msec 1000 int main (void){ omp_set_num_threads (8); #pragma omp parallel { #pragma omp for schedule (runtime) for(int i=0; i<100;i++) { sleep (i*msec); } } }