Главная / Программирование /
Введение в оптимизацию приложений с использованием компиляторов Intel / Тест 3
Введение в оптимизацию приложений с использованием компиляторов Intel - тест 3
Упражнение 1:
Номер 1
Компиляторы каких языков предоставляет Intel® ?
Ответ:
 (1) C/C++ 
 (2) Java 
 (3) Oberon 
 (4) Forth 
 (5) Fortran 
 (6) C# 
Номер 2
Под какие платформы предоставляются компиляторы Intel?
Ответ:
 (1) Windows 
 (2) Linux 
 (3) MacOS X 
 (4) FreeBSD 
 (5) Solaris 
Номер 3
Что из перечисленного является скалярной оптимизацией?
Ответ:
 (1) свертка констант 
 (2) протяжка копий 
 (3) удаление повторных вычислений 
 (4) продвижение копий 
 (5) вынесение инвариантов цикла 
Упражнение 2:
Номер 1
Анализ потоков данных – это
Ответ:
 (1) техника для анализа того, как данные перемещаются по шине 
 (2) способ сократить перекладывания данных из памяти в кэш 
 (3) техника для сбора информации о значениях переменных 
Номер 2
SSA-представление – это
Ответ:
 (1) представление, в котором каждая функция выполняется один раз 
 (2) представление, в котором каждая переменная используется один раз 
 (3) представление, в котором каждая переменная имеет одно определение 
 (4) конечное представление, после проведения всех оптимизаций 
Номер 3
Какая из частей компилятора в большей степени определяется входным языком?
Ответ:
 (1) Front End 
 (2) Back End 
 (3) внутреннее представление 
 (4) кодогенератор 
 (5) профилировщик 
Упражнение 3:
Номер 1
Что из перечисленного относится к синтаксическому анализу в компиляторе
Ответ:
 (1) грамматический анализ 
 (2) пунктуационный анализ 
 (3) полиморфический анализ 
 (4) лексический анализ 
 (5) протаксический анализ 
Номер 2
Среди утверждений в программе можно установить порядок
Ответ:
 (1) лексикографический 
 (2) графосемантический 
 (3) полидинамический 
 (4) квазиитеративный 
 (5) семиденотационный 
Номер 3
Базовые блоки это
Ответ:
 (1) блоки, из которых составляется программа в визуальном программировании 
 (2) участки кода, в которых производятся основные вычисления 
 (3) участки кода без переходов и меток 
 (4) участки кода, являющиеся входными для программы 
 (5) участки кода, являющиеся входными для функций программы 
Упражнение 4:
Номер 1
Аббревиатура SSA означает
Ответ:
 (1) SSe Alignment 
 (2) Simple Singles Alignment 
 (3) Static Single Assignment 
 (4) Sign Standard Association 
Номер 2
Зависимость это
Ответ:
 (1) связь между утверждениями программы такая, что эти утверждения вычисляют общий результат 
 (2) связь между утверждениями программы такая, что перестановка утверждений изменяет выдаваемый программой результат 
 (3) связь между утверждениями программы такая, что утверждения используют общие данные при вычислениях 
 (4) связь между утверждениями программы такая, что утверждения изменяют одну и ту-же ячейку памяти 
Номер 3
"Мертвый код" может являться результатом
Ответ:
 (1) ошибки сегментации 
 (2) оптимизирующих преобразований 
 (3) снижения скорости исполнения 
 (4) использования слишком длинных названий идентификаторов, которые занимают лишнее место 
Упражнение 5:
Номер 1
Что такое продвижение (протяжка) констант?
Ответ:
 (1) увеличение их значений для улучшения качества программы 
 (2) увеличение их значений для ускорения программы 
 (3) замена использования константы на её значение 
 (4) константное увеличение времени жизни переменной 
Номер 2
Что такое протяжка копий?
Ответ:
 (1) циклическое однонаправленное заполнение файла копиями переменных 
 (2) замена копии переменной оригиналом в тексте программы 
 (3) отслеживание копирования файлов с целью их протяжки 
 (4) удаление излишних операций ввода-вывода 
Номер 3
Что относится к удалению "Мёртвого кода"
Ответ:
 (1) удаление лишних программ 
 (2) удаление неиспользуемых переменных 
 (3) удаление лишних файлов 
 (4) удаление лишних разделов 
Упражнение 6:
Номер 1
Вынесение инвариантов цикла
Ответ:
 (1) находит и удаляет выражения независящие от индексных переменных цикла 
 (2) находит и выносит за пределы цикла выражения независящие от индексных переменных цикла 
 (3) находит и выносит инварианты цикла в другой цикл 
 (4) ничего из вышеперечисленного не делает 
Номер 2
Почему происходит улучшение производительности при вынесении инвариантов циклов?
Ответ:
 (1) потому что инварианты не несут смысловой нагрузки в цикле – их можно удалить 
 (2) потому что инварианты цикла эффективнее пересчитывать в отдельном цикле 
 (3) потому что инварианты цикла неизменны на каждой итерации – их можно вычислить один раз 
Номер 3
Что такое инвариант цикла?
Ответ:
 (1) выражения, независящие от индексных переменных цикла 
 (2) выражение, неизменное на каждой итерации 
 (3) выражение, используемое для проверки остановки выполнения цикла 
 (4) выражение, содержащее глобальные переменные 
Упражнение 7:
Номер 1
Для чего используются нормализованные циклы?
Ответ:
 (1) для упрощения вычислений 
 (2) для повышения читаемости кода 
 (3) для приведения циклов к общему виду 
Номер 2
Существует ли зависимость в этом фрагменте кода и, если она есть, определите тип зависимости:
DO I=1,N
S1 A(I+1) =F(I)
S2 F(I+1) = A(I)
END DO
Ответ:
 (1) зависимости нет 
 (2) зависимость превносимая циклом 
 (3) зависимость независимая от цикла 
Номер 3
Существует ли зависимость в этом фрагменте кода и, если она есть, определите тип зависимости:
DO I=1,N
S1 A(I)=…
S2 …=A(I)
END DO
Ответ:
 (1) зависимости нет 
 (2) зависимость, превносимая циклом 
 (3) зависимость, независимая от цикла 
Упражнение 8:
Номер 1
Выберите случай FLOW
зависимости между данными?
Ответ:
 (1) READ after WRITE
 
 (2) WRITE after WRITE
 
 (3) READ after READ
 
 (4) WRITE after READ
 
Номер 2
Выберите случай OUTPUT
зависимости между данными?
Ответ:
 (1) READ after WRITE
 
 (2) WRITE after WRITE
 
 (3) READ after READ
 
 (4) WRITE after READ
 
Номер 3
Выберите случай ANTI
зависимости между данными?
Ответ:
 (1) READ after WRITE
 
 (2) WRITE after WRITE
 
 (3) READ after READ
 
 (4) WRITE after READ
 
Упражнение 9:
Номер 1
Что чаще всего является "горячим местом" программы?
Ответ:
 (1) первое присваивание 
 (2) цикл 
 (3) последнее присваивание 
 (4) первая процедура 
Номер 2
Что такое "горячее место" программы?
Ответ:
 (1) строка, написание которой заняло наибольшее время 
 (2) ключевое присваивание 
 (3) наиболее часто исполняемый код 
 (4) весь код, кроме внешнего 
 (5) вызов математической библиотеки 
Номер 3
Почему циклам уделяется много внимания при оптимизации?
Ответ:
 (1) циклы короткие, их проще оптимизировать 
 (2) циклы проще всего анализировать 
 (3) циклы записываются подряд 
 (4) чаще всего циклы являются "горячими местами" программы 
Упражнение 10:
Номер 1
Различаются ли циклы с точки зрения оптимизации?
Ответ:
 (1) нет 
 (2) да, есть те, которые лучше оптимизируются 
 (3) нет, если переменные правильно именованы 
 (4) нет, если это компилятор Intel 
Номер 2
Что может стать причиной непременимости оптимизации цикла?
Ответ:
 (1) ничего 
 (2) одновременный запуск компилятора и среды Visual Studio 
 (3) неудачная форма записи цикла 
 (4) длинное имя переменной 
 (5) длинное имя переменной, только если это итератор 
Номер 3
Есть ли определённые требования к записи циклов?
Ответ:
 (1) никаких требований не существует 
 (2) существуют требования, но их невозможно сформулировать 
 (3) требования есть только на старых языках программирования 
 (4) есть определённый набор требований к "хорошим" циклам для оптимизации