Главная /
Параллельное программирование с использованием инструментов и технологий Intel /
Можно ли использовать директиву OpenMP #pragma omp for в функции f(), в которой не содержится директивы #pragma omp parallel?
Можно ли использовать директиву OpenMP #pragma omp for
в функции f()
, в которой не содержится директивы #pragma omp parallel
?
вопрос
Правильный ответ:
нет. Поскольку параллельные потоки в функции
f()
не создаются, директива не может быть использована
да. Но поскольку параллельные потоки в функции
f()
не создаются, директива будет проигнорирована компилятором
да. Будет ли цикл выполняться несколькими потоками, зависит от того, в каком контексте будет вызвана функция
f()
: из параллельной секции или из последовательного кода
да. Директива будет обработана компилятором, итерации цикла будут поделены между существующими в программе к моменту вызова функции
f()
потоками Сложность вопроса
43
Сложность курса: Параллельное программирование с использованием инструментов и технологий Intel
75
Оценить вопрос
Комментарии:
Аноним
Я преподаватель! Прямо сейчас заблокируйте сайт с ответами на интуит. Умоляю
11 апр 2019
Аноним
Если бы не эти ответы - я бы не смог решить c этими тестами интуит.
05 авг 2017
Другие ответы на вопросы из темы программирование интуит.
- # Какая директива OpenMP может быть использована для синхронизации потоков:
- # Вы написали программу на языке C. Эта программа работает корректно на подготовленных тестовых данных, но скорость работы вас не устраивает. Каким инструментом, входящим в комплект поставки Parallel Studio, вы воспользуетесь для определения участка программы, на выполнение которого расходуется наибольшее количество времени?
- # Вы написали программу на языке C. При сборке вашей программы выдаётся ошибка: "error LNK2019: unresolved external symbol…". Чем вы воспользуетесь для устранения этой ошибки?
- # Можно ли в OpenMP программе управлять количеством потоков выполняющих работу, не меняя кода программы?
- # Может ли в OpenMP программе случиться ситуация, когда один поток закончит выполнение двух параллельных циклов, в то время как другой поток все еще выполняет первый параллельный цикл, при условии что все потоки запущены средствами OpenMP?