Главная / Программирование /
Оптимизация приложений с использованием компиляторов 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