игра брюс 2048
Главная / Программирование / Параллельное программирование с использованием инструментов и технологий Intel / Тест 1

Параллельное программирование с использованием инструментов и технологий Intel - тест 1

Упражнение 1:
Номер 1
Технология программирования OpenMP расширяет язык программирования за счет:

Ответ:

 (1) новых ключевых слов 

 (2) новых библиотечных функций и переменных окружения 

 (3) новых директив и специальных комментариев 


Упражнение 2:
Номер 1
Отметьте верные утверждения об OpenMP:

Ответ:

 (1) OpenMP ориентирован в первую очередь на написание программ для векторно-конвейерных компьютеров 

 (2) большинство конструкций OpenMP реализуется с помощью спецкомментариев 

 (3) все переменные программы делятся на два класса: локальные и общие 

 (4) число параллельных потоков OpenMP приложения может определяться переменной окружения 

 (5) весь параллелизм приложения реализуется только с помощью параллельных циклов 


Упражнение 3:
Номер 1
В критические секции:

Ответ:

 (1) потоки входят последовательно в произвольном порядке 

 (2) потоки входят последовательно в соответствии с порядковым номером потока 

 (3) все потоки входят одновременно 


Упражнение 4:
Номер 1
Для распределения итераций цикла между потоками необходимо использовать следующую директиву OpenMP:

Ответ:

 (1) #pragma omp parallel for 

 (2) #pragma omp for, если данная директива находится внутри параллельного фрагмента 

 (3) #pragma parallel for 


Упражнение 5:
Номер 1
Какая директива OpenMP может быть использована для синхронизации потоков:

Ответ:

 (1) #pragma omp barrier 

 (2) #pragma omp waitall 

 (3) #pragma omp wait 


Упражнение 6:
Номер 1
Вы написали программу с использованием OpenMP. При запуске на 4-ядерной системе оказалось, что загрузка процессора равна 25%. Какова наиболее вероятная причина?

Ответ:

 (1) гонка данных в программе 

 (2) отсутствие ключа /openmp (/Qopenmp) при сборке программы 

 (3) плохая балансировка вычислительной нагрузки между потоками 

 (4) тупик в программе привел к зависанию трех потоков из четырех 


Упражнение 7:
Номер 1
Можно ли использовать директиву OpenMP #pragma omp for в функции f(), в которой не содержится директивы #pragma omp parallel?

Ответ:

 (1) нет. Поскольку параллельные потоки в функции f() не создаются, директива не может быть использована 

 (2) да. Но поскольку параллельные потоки в функции f() не создаются, директива будет проигнорирована компилятором 

 (3) да. Будет ли цикл выполняться несколькими потоками, зависит от того, в каком контексте будет вызвана функция f(): из параллельной секции или из последовательного кода 

 (4) да. Директива будет обработана компилятором, итерации цикла будут поделены между существующими в программе к моменту вызова функции f() потоками 


Упражнение 8:
Номер 1
Имеется следующий код на OpenMP:
double a = 10.0;
  #pragma omp parallel private(a)
  {
   ...
  }
Можно ли средствами OpenMP сделать так, чтобы локальные копии переменной а в каждом потоке имели то же значение, что и исходная переменная a?

Ответ:

 (1) да. Это будет сделано автоматически 

 (2) да. Нужно заменить параметр private на параметр firstprivate 

 (3) нет. Такого способа не существует 


Упражнение 9:
Номер 1
Вы написали программу на языке C. Эта программа работает корректно на подготовленных тестовых данных, но скорость работы вас не устраивает. Каким инструментом, входящим в комплект поставки Parallel Studio, вы воспользуетесь для определения участка программы, на выполнение которого расходуется наибольшее количество времени?

Ответ:

 (1) Parallel Composer 

 (2) Parallel Inspector 

 (3) Parallel Amplifier 

 (4) Parallel Adviser 


Упражнение 10:
Номер 1
Вы написали программу на языке C. При сборке вашей программы выдаётся ошибка: "error LNK2019: unresolved external symbol…". Чем вы воспользуетесь для устранения этой ошибки?

Ответ:

 (1) Parallel Composer 

 (2) Parallel Inspector 

 (3) Parallel Amplifier 

 (4) Parallel Adviser 

 (5) другое 


Упражнение 11:
Номер 1
Вы написали параллельную программу с использованием потоков на языке C. Вы запустили вашу программу 100 раз на 4-хядерной машине. 98 раз программа отработала корректно, 2 раза программа выдала не корректные данные. Чем вы воспользуетесь в первую очередь при дальнейшей разработке программы?

Ответ:

 (1) Parallel Inspector в режиме Memory Errors 

 (2) Parallel Amplifier в режиме Hotspots 

 (3) Parallel Inspector в режиме Threading Errors 

 (4) Parallel Amplifier в режиме Concurrency 


Упражнение 12:
Номер 1
Под "гонками данных" понимается ситуация, когда:

Ответ:

 (1) несколько потоков работают с разделяемыми данными, и конечный результат зависит от соотношения скоростей потоков 

 (2) несколько потоков работают с данными, локализованными для каждого из потоков, и конечный результат собирается в одну переменную 

 (3) не хватает памяти для размещения данных 


Упражнение 13:
Номер 1
Под "тупиками" понимается ситуация, когда:

Ответ:

 (1) все потоки завершили свою работу 

 (2) возникла взаимная блокировка потоков, ожидающих наступления некоторого события для продолжения работы 

 (3) недостаточно ресурсов для запуска всех потоков  


Упражнение 14:
Номер 1
Библиотека Intel Threading Building Blocks предназначена:

Ответ:

 (1) для поиска ошибок в работе с динамической памятью 

 (2) для поиска гонок данных 

 (3) для распараллеливания программ в системах с общей памятью 


Упражнение 15:
Номер 1
Intel® Parallel Inspector НЕ позволяет

Ответ:

 (1) обнаруживать "гонки данных" (data races) в приложении 

 (2) профилировать приложение для получения максимальной производительности 

 (3) выявлять ошибки, связанные с памятью 

 (4) находить ошибки, связанные с памятью и многопоточностью как в последовательном, так и в параллельном приложении 


Упражнение 16:
Номер 1
Тип анализа, который отсутствует в Intel® Parallel Amplifier 2011:

Ответ:

 (1) Hotspot Analysis 

 (2) Threading Errors Analysis 

 (3) Concurrency Analysis 

 (4) Locks & Wait Analysis 


Упражнение 17:
Номер 1
Можно ли в OpenMP программе управлять количеством потоков выполняющих работу, не меняя кода программы?

Ответ:

 (1) нет, программа сама определяет количество потоков 

 (2) да, но только если программа сама не определяет количество потоков 

 (3) да, используя переменные окружения 


Упражнение 18:
Номер 1
Может ли в OpenMP программе случиться ситуация, когда один поток закончит выполнение двух параллельных регионов, в то время как другой поток все еще выполняет первый параллельный регион, при условии что все потоки запущены средствами OpenMP?

Ответ:

 (1) нет, после окончания каждого параллельного региона все потоки должны закончить его выполнение 

 (2) нет, в программе может быть только один параллельный регион 

 (3) да, каждый поток работает независимо 


Упражнение 19:
Номер 1
Может ли в OpenMP программе случиться ситуация, когда один поток закончит выполнение двух параллельных циклов, в то время как другой поток все еще выполняет первый параллельный цикл, при условии что все потоки запущены средствами OpenMP?

Ответ:

 (1) нет, после окончания каждого параллельного цикла все потоки должны закончить его выполнение 

 (2) нет, в программе может быть только один параллельный цикл 

 (3) да, каждый поток работает независимо 

 (4) да, но только если первый цикл объявлен с клаузой nowait и оба цикла принадлежат одному параллельному региону 


Упражнение 20:
Номер 1
Можно ли в OpenMP параллельном цикле выделить часть кода, которую потоки будут выполнять в определенном порядке, в то время как остальной код цикла будет выполнять ся параллельно?

Ответ:

 (1) нет, в параллельном цикле код выполняется потоками в неопределенном порядке 

 (2) нет, можно только выделять части кода для последовательного выполнения с помощью критических секций, но неопределенно, в каком порядке потоки будут выполнять выделенный код 

 (3) да, одну из секций кода можно выделить для последовательного выполнения потоками в порядке следования итераций с помощью директивы ordered 




Главная / Программирование / Параллельное программирование с использованием инструментов и технологий Intel / Тест 1