Главная /
Параллельное программирование с использованием инструментов и технологий Intel, Проверка знаний /
В программе на OpenMP распараллелен следующий цикл, где выполнение функции f() может занимать существенно разное время в зависимости от значения входного аргумента #pragma omp for(i = 0; i < 1000; i++) с += func(i); Каким образом можно добиться наилучш
В программе на OpenMP распараллелен следующий цикл, где выполнение функции f() может занимать существенно разное время в зависимости от значения входного аргумента
#pragma omp for(i = 0; i < 1000; i++)
с += func(i);
Каким образом можно добиться наилучшей балансировки вычислительной нагрузки между потоками?
вопрос
Правильный ответ:
использовать статическое расписание вида
#pragma omp for schedule(static, chunk)
. Значение chunk
взять равным 10
использовать статическое расписание вида
#pragma omp for schedule(static, chunk)
. Значение chunk
подобрать экспериментально
использовать динамическое расписание вида
#pragma omp for schedule(dynamic, chunk)
. Значение chunk
взять равным 10
использовать динамическое расписание вида
#pragma omp for schedule(dynamic, chunk)
. Значение chunk
подобрать экспериментально
средствами OpenMP балансировку улучшить невозможно
Сложность вопроса
90
Сложность курса: Параллельное программирование с использованием инструментов и технологий Intel, Проверка знаний
78
Оценить вопрос
Комментарии:
Аноним
Это очень простецкий решебник intuit.
02 авг 2020
Аноним
Зачёт всё. Мчусь пить отмечать экзамен интуит
06 сен 2019
Другие ответы на вопросы из темы программирование интуит.
- # Статическая конвейерезация выполняется
- # Ускорение за счёт параллельного выполнения
- # В программе на OpenMP распараллелен следующий цикл #pragma omp parallel(i = 0; i < 1000; i++) #pragma omp for for (j = 0; j < 1000; j++) с[i] += a[i][j] * b[j]; Является ли данная параллельная реализация корректной?
- # Пусть написан следующий параллельный код: #pragma omp parallel for shared(a) private(i,j,sum) \ schedule (dynamic, CHUNK) ordered { for (i=0; i < NMAX; i++) { sum = 0; for (j=i; j < NMAX; j++) sum += a[i][j]; #pragma omp ordered printf ("Сумма элементов строки %d равна %f\n",i,sum); } Будет ли суммирование происходить параллельно?
- # В функциях приема сообщений MPI структура MPI_Status используется для: