Главная /
Параллельное программирование с OpenMP /
Рассмотрим фрагмент OpenMP-программы: #include <omp.h> int n=1; int main (void) { omp_set_nested(1); omp_set_dynamic(1); omp_set_num_threads(2); #pragma omp parallel if (n>10) {/*параллельная область*/ … } } Для выполнения параллельной области бу
Рассмотрим фрагмент OpenMP-программы:
#include <omp.h>
int n=1;
int main (void)
{
omp_set_nested(1);
omp_set_dynamic(1);
omp_set_num_threads(2);
#pragma omp parallel if (n>10)
{/*параллельная область*/
…
}
}
Для выполнения параллельной области будет создана группа нитей, состоящая из:
вопрос
Правильный ответ:
1-ой нити
2-х нитей
нескольких нитей (количество создаваемых нитей зависит от переменной окружения
OMP_NUM_THREADS
)
Сложность вопроса
52
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Зачёт в студне отлично. Мчусь кутить отмечать победу над тестом интут
29 дек 2019
Аноним
Пишет вам преподаватель! Оперативно заблокируйте сайт vtone.ru с ответами на интуит. Пожалуйста
12 ноя 2019
Аноним
Какой студент находит вот эти ответы с интуитом? Это же очень простые ответы
01 ноя 2016
Другие ответы на вопросы из темы программирование интуит.
- # Способ распределения витков цикла между нитями группы задается при помощи клаузы schedule(<алгоритм планирования>[,<число итераций>]). Найдите ошибку в следующем фрагменте программы: #pragma omp parallel default(shared) { int i; #pragma omp for schedule(static, omp_get_thread_num()) for (i=0; i<n; i++) { work(i); } }
- # Найдите ошибку в следующем фрагменте программы: int numt=0; #pragma omp parallel { #pragma omp critical { numt=omp_get_num_threads(); #pragma omp barrier #pragma omp flush (numt) } }
- # Выберите наилучшую стратегию распределения витков цикла между нитями, которая для следующего фрагмента программы даст минимальное время выполнения: #include <omp.h> #include<stdio.h> #include<stdlib.h> #include <time.h> #define msec 1000 int main (void){ srand (time(NULL)); omp_set_num_threads (8); #pragma omp parallel { #pragma omp for schedule (runtime) for(int i=0; i<100;i++) { sleep (rand()*msec); } } }
- # Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы: #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: