Главная / Программирование /
Оптимизация приложений с использованием компиляторов Intel / Тест 7
Оптимизация приложений с использованием компиляторов Intel - тест 7
Упражнение 1:
Номер 1
OpenMP - это:
Ответ:
 (1) опция компилятора, встраивающая код в исполняемый файл 
 (2) технология, позволяющая одновременно выполнять код на нескольких компьютерах 
 (3) технология для параллелизации вычислений на системах с общей памятью 
 (4) технология для параллелизации вычислений на системах с разделенной памятью 
Номер 2
Для распараллеливания необходимо:
Ответ:
 (1) использовать ключ компилятора -Qomp. Компилятор сам выберет регионы, которые нужно распараллелить 
 (2) код для распараллеливания надо заключать в #pragma omp parallel start и end 
 (3) код для распараллеливания необходимо выделять в отдельные функции, помеченные интриником __omp_parallel
 
 (4) код для распараллеливания надо заключать в блоки, перед которыми надо включить прагму #pragma omp parallel
 
Номер 3
При использовании технологии OpenMP поведение переменных следующее:
Ответ:
 (1) в блоках переменных все переменные в разных потоках имеют собственный адрес и не перекрываются 
 (2) все переменные внутри блоков имеют один адрес. необходимо вручную заниматься проблемами одновременного доступа 
 (3) есть возможность указать, какие переменные имеют один адрес, а какие - разный 
Упражнение 2:
Номер 1
OpenMP использует следующую модель распараллеливания:
Ответ:
 (1) модель refork
: каждый раз при начале параллельного цикла создаются новые потоки 
 (2) модель fork-join
: потоки создаются при первом вызове параллельного потока; каждый следующий раз используются уже созданные 
 (3) модель queue: все задачи записываются в очередь; создаются несколько "исполнителей"-потоков и выполняют задачи, которые есть в очереди 
Номер 2
Для распараллеливания цикла нужно использовать:
Ответ:
 (1) #pragma omp parallel for
 
 (2) #pragma omp parallel while
 
 (3) #pragma omp single
 
 (4) #pragma omp set parallel for
 
Номер 3
Следующий модификатор не является служебным для OpenMP:
Ответ:
 (1) nowait
 
 (2) prefork
 
 (3) schedule
 
 (4) reduction
 
Упражнение 3:
Номер 1
Для того, чтобы после выполнения значение переменной скопировалось в общий поток, необходимо:
Ответ:
 (1) добавить переменную в список private
 
 (2) добавить переменную в список lastprivate
 
 (3) добавить переменную в список lastshared
 
 (4) технология не позволяет произвести данное действие 
Номер 2
По умолчанию все переменные, кроме локальных переменных функций и счетчиков цикла, добавляются в список:
Ответ:
 (1) private
 
 (2) shared
 
 (3) lastprivate
 
 (4) firstprivate
 
Номер 3
Shedule clause
принимает параметром следующие типы:
Ответ:
 (1) static
 
 (2) dynamic
 
 (3) variant
 
 (4) object
 
 (5) guided
 
 (6) int
 
 (7) realtime
 
 (8) runtime
 
Упражнение 4:
Номер 1
Директива nowait
используется для:
Ответ:
 (1) избавления от надписи "Press any key to exit" в конце выполнения программы 
 (2) указания компилятору, что необходимо начинать код, не дожидаясь окончания инициализации 
 (3) отключения неявной синхронизации потоков в конце цикла 
 (4) отключения искусственных задержек в потоках 
Номер 2
Для создания точки синхронизации необходимо использовать директиву
Ответ:
 (1) critical
 
 (2) barrier
 
 (3) atomic
 
 (4) master
 
 (5) sync
 
 (6) stop
 
Номер 3
Сколько нитей могут находиться одновременно в критической секции?
Ответ:
 (1) 0 
 (2) 1 
 (3) 2 
 (4) возможно произвольное количество, поскольку OpenMP не ограничивает число потоков 
Упражнение 5:
Номер 1
Какая директива используется для того, чтобы гарантировать корректную работу с переменной в левой части выражения?
Ответ:
 (1) SEMAPHORE
 
 (2) TRANSACTION
 
 (3) ATOMIC
 
 (4) CHECK SHARED
 
 (5) CONTROL SHARED
 
Номер 2
Какая директива используется для того, чтобы обозначить участок кода, исполняемый только главным потоком?
Ответ:
 (1) SOLO
 
 (2) MASTER
 
 (3) ONLYONE
 
 (4) OWNER
 
 (5) SUPER
 
 (6) CREATOR
 
Номер 3
Какая директива означает последовательное исполнение?
Ответ:
 (1) SERIAL
 
 (2) ORDERED
 
 (3) SOLO
 
 (4) MASTER
 
 (5) guided
 
Упражнение 6:
Номер 1
Какая опция определяет способ распределения итераций цикла по нитям?
Ответ:
 (1) SCHEDULE
 
 (2) TT
 
 (3) FORALL
 
 (4) THREADS
 
Номер 2
Какие из перечисленных идентификаторов могут обозначать тип диспетчеризации?
Ответ:
 (1) dispatch
 
 (2) nodispatch
 
 (3) runtime
 
 (4) static
 
 (5) serial
 
 (6) ordered
 
Номер 3
Какие из перечисленных идентификаторов могут обозначать тип диспетчеризации?
Ответ:
 (1) random
 
 (2) round-robin
 
 (3) guided
 
 (4) dynamic
 
 (5) serial
 
 (6) concurrent