Главная / Программирование /
Оптимизация приложений с использованием компиляторов Intel / Тест 6
Оптимизация приложений с использованием компиляторов Intel - тест 6
Упражнение 1:
Номер 1
Что такое ядро процессора?
Ответ:
 (1) часть процессора, которая извлекает из памяти и исполняет инструкции 
 (2) часть процессора, которая работает с общим кэшем 
 (3) часть процессора, которая выполняет арифметические операции над данными 
Номер 2
Что является серьезным ограничением производительности современных вычислительных систем?
Ответ:
 (1) количеством памяти 
 (2) тактовая частота процессоров 
 (3) скоростью взаимодействия с памятью 
 (4) наличие кэша второго уровня 
Номер 3
На какие типы по использованию памяти делятся многопроцессорные системы?
Ответ:
 (1) системы с общей памятью 
 (2) системы с распределенной памятью 
 (3) системы со случайным доступом к памяти 
 (4) системы с неоднородным доступом к памяти 
Упражнение 2:
Номер 1
Выберите свойство, характеризующее вычислительную систему с распределенной памятью:
Ответ:
 (1) каждый процессор полностью автономен. Существует некоторая коммуникационная среда 
 (2) все процессоры равноудалены от памяти. Связь с памятью осуществляется через общую шину данных 
 (3) память физически распределена между процессорами. Единое адресное пространство поддерживается на аппаратном уровне 
Номер 2
Выберите свойство характеризующее вычислительную систему с общей памятью:
Ответ:
 (1) каждый процессор полностью автономен. Существует некоторая коммуникационная среда 
 (2) все процессоры равноудалены от памяти. Связь с памятью осуществляется через общую шину данных 
 (3) память физически распределена между процессорами. Единое адресное пространство поддерживается на аппаратном уровне 
Номер 3
Выберите свойство характеризующее вычислительную систему с неоднородным доступом к памяти:
Ответ:
 (1) каждый процессор полностью автономен. Существует некоторая коммуникационная среда 
 (2) все процессоры равноудалены от памяти. Связь с памятью осуществляется через общую шину данных 
 (3) память физически распределена между процессорами. Единое адресное пространство поддерживается на аппаратном уровне 
Упражнение 3:
Номер 1
Какие свойства есть у вычислительных систем с распределенной памятью?
Ответ:
 (1) хорошая масштабируемость 
 (2) разное время доступа к разным сегментам памяти 
 (3) хорошее межпроцессорное взаимодействие 
 (4) необходимость синхронизации подсистемы кэшей 
Номер 2
Какие свойства есть у вычислительных систем с общей памятью?
Ответ:
 (1) хорошая масштабируемость 
 (2) разное время доступа к разным сегментам памяти 
 (3) хорошее межпроцессорное взаимодействие 
 (4) необходимость синхронизации подсистемы кэшей 
Номер 3
Какие свойства есть у вычислительных систем с неоднородным доступом к памяти?
Ответ:
 (1) хорошая масштабируемость 
 (2) разное время доступа к разным сегментам памяти 
 (3) хорошее межпроцессорное взаимодействие 
 (4) необходимость синхронизации подсистемы кэшей 
Упражнение 4:
Номер 1
Какие недостатки есть у системы с распределенной памятью?
Ответ:
 (1) медленное межпроцессорное взаимодействие 
 (2) плохая масштабируемость 
 (3) большие затраты на синхронизацию подсистем кэшей 
 (4) разное время доступа к разным сегментам памяти 
Номер 2
Какие недостатки есть у системы с общей памятью?
Ответ:
 (1) медленное межпроцессорное взаимодействие 
 (2) плохая масштабируемость 
 (3) большие затраты на синхронизацию подсистем кэшей 
 (4) разное время доступа к разным сегментам памяти 
Номер 3
Какие недостатки есть у системы с неоднородным доступом к памяти?
Ответ:
 (1) медленное межпроцессорное взаимодействие 
 (2) плохая масштабируемость 
 (3) большие затраты на синхронизацию подсистем кэшей 
 (4) разное время доступа к разным сегментам памяти 
Упражнение 5:
Номер 1
Назовите плюсы использования многопоточных приложений.
Ответ:
 (1) объем используемой оперативной памяти уменьшается пропорционально кол-ву используемых реальных ядер 
 (2) вычислительные ресурсы увеличиваются пропорционально кол-ву используемых реальных ядер 
 (3) уменьшается общее количество инструкций процессора 
Номер 2
Назовите минусы использования многопоточных приложений.
Ответ:
 (1) усложнение разработки 
 (2) создание потоков имеет свою цену 
 (3) объем используемой оперативной памяти увеличивается пропорционально кол-ву используемых ядер 
 (4) потоки конкурируют за ресурсы 
 (5) необходимость синхронизировать потоки 
Упражнение 6:
Номер 1
В чем цель автоматической параллелизации?
Ответ:
 (1) использование ресурсов многопроцессорной вычислительной системы без переписывания кода 
 (2) сделать более качественную, по сравнению с ручной, параллелизацию 
 (3) освободить программистов от ручной параллелизации 
Номер 2
Что сообщает /Qpar-report3?
Ответ:
 (1) сообщает какие зависимости препятствуют векторизации 
 (2) сообщает порядок выполнения итераций 
 (3) сообщает причины по которым компилятор не параллелизует тот или иной цикл 
 (4) информирует, если параллелизация невыгодна 
Номер 3
Какой оптимизацией является автопараллелизация в компиляторе Интел?
Ответ:
 (1) цикловой неперестановочной 
 (2) нецикловой перестановочной 
 (3) цикловой перестановочной 
 (4) нецикловой неперестановочной 
Упражнение 7:
Номер 1
Назовите условие необходимое для применения автопараллелизации?
Ответ:
 (1) отсутствие зависимостей в цикле 
 (2) отсутствие вложенных циклов 
 (3) необходима специальная подготовка программы человеком 
Номер 2
Действительно ли определение выгодности автопараллелизации – сложная задача?
Ответ:
 (1) да, потому что существуют эффекты производительности, которые сложно оценить 
 (2) да, потому что компилятор может не иметь представления о количестве итераций в цикле 
 (3) нет, потому что автопараллелизация – цикловая неперестановочная оптимизация 
 (4) нет, потому что все необходимые данные для принятия решения доступны во время компиляции 
Номер 3
Какая директива предлагает компилятору не параллелизировать следующий цикл?
Ответ:
 (1) #pragma prefer concurrent
 
 (2) #pragma no concurrentize
 
 (3) #pragma prefer serial
 
 (4) #pragma serial
 
Упражнение 8:
Номер 1
Какая директива может заставить компилятор параллелизовать следующий цикл?
Ответ:
 (1) #pragma concurrent call
 
 (2) #pragma concurrentize
 
 (3) #pragma prefer serial
 
 (4) #pragma serial
 
Номер 2
Какая директива может заставить компилятор параллелизовать следующий цикл, если это безопасно?
Ответ:
 (1) #pragma prefer concurrent
 
 (2) #pragma concurrentize
 
 (3) #pragma prefer serial
 
 (4) #pragma serial
 
Номер 3
С помощью чего реализована автопараллелизация?
Ответ:
 (1) с помощью библиотек OpenMP 
 (2) с помощью VTune 
 (3) с помощью шаблонов проектирования 
Упражнение 9:
Номер 1
Что такое OpenMP?
Ответ:
 (1) это программный интерфейс, который поддерживает многопроцессорное программирование с общей памятью 
 (2) это программный интерфейс, который проверяет корректность параллелизации 
 (3) это программный интерфейс, который рассчитывает выгоду от применения параллелизации 
Номер 2
Какие аргументы передаются в функцию, реализующую параллелизацию цикла в компиляторе Intel?
Ответ:
 (1) границы цикла 
 (2) номер создаваемого потока для определения итерационного пространства для обработки 
 (3) все используемые объекты 
Номер 3
Как выглядит функция, реализующая параллелизацию цикла в компиляторе Intel?
Ответ:
 (1) внутри находится исходный цикл и его исходные границы 
 (2) внутри находится исходный цикл, его границы определяются с помощью параметров функции 
 (3) внутри находится одна итерация исходного цикла 
Упражнение 10:
Номер 1
Как реализуется параллелизация цикла с помощью функции в компиляторе Intel?
Ответ:
 (1) запускаются несколько экземпляров функции в разных потоках с различными значениями границ цикла 
 (2) итерационное пространство цикла разбивается на несколько частей и каждый поток обрабатывает свою часть итерационного пространства 
 (3) запускаются несколько экземпляров функции в одном потоке с различными значениями границ цикла 
 (4) итерационное пространство цикла разбивается на несколько частей и каждый поток последовательно обрабатывает части итерационного пространства 
Номер 2
Как происходит взаимодействие параллелизации цикла с другими цикловыми оптимизациями в компиляторе Intel?
Ответ:
 (1) при параллелизации невозможны другие цикловые оптимизации 
 (2) проводится оптимизация цикла, потом применяется параллелизация 
 (3) проводится параллелизация цикла, потом применяются оптимизации поточной функции 
Номер 3
Что такое "предвыборка"?
Ответ:
 (1) загрузка данных из относительно медленной памяти в кэш после того, как эта память непосредственно потребовалась процессору 
 (2) загрузка данных из кэша в память до того, как эти данные непосредственно потребовались процессору 
 (3) загрузка данных из относительно медленной памяти в кэш до того, как эта память непосредственно потребовалась процессору 
 (4) чтение адресов памяти с данными для последующей загрузки в кэш 
Упражнение 11:
Номер 1
Какими методами можно использовать технику "предвыборки" для оптимизации приложений?
Ответ:
 (1) использование директивы компилятора 
 (2) использование компиляторной опции для автоматической генерации команд "предвыборки" 
 (3) использование интринсиков 
 (4) покупка и инсталяция программы поддержки програмной предвыборки 
Номер 2
В чем заключаются минусы использования техники "предвыборки"?
Ответ:
 (1) попытка подгружать адреса в кэш может вызвать удаление из кэша нужных адресов 
 (2) реализация механизма "предвыборки" сильно ухудшает производительность приложения 
 (3) невозможность использования этой техники без аппаратной поддержки