Сертификат "Введение в оптимизацию приложений с использованием компиляторов Intel"
  • Сертификат "Введение в оптимизацию приложений с использованием компиляторов Intel"
  • Сертификат "Введение в оптимизацию приложений с использованием компиляторов Intel"
Сертификат "Введение в оптимизацию приложений с использованием компиляторов Intel"
  • Сертификат "Введение в оптимизацию приложений с использованием компиляторов Intel"
  • Сертификат "Введение в оптимизацию приложений с использованием компиляторов Intel"

Введение в оптимизацию приложений с использованием компиляторов Intel

700,00 руб.
В течение часа!
Экзамен "Введение в оптимизацию приложений с использованием компиляторов Intel" для пользователей и системных администраторов.
Количество
Есть в наличии!

Форма сдачи теста: Экстерн
Количество вопросов: 30
Проходной балл: 90% и выше
Срок действия сертификата: неограничен

Сертификат появляется в профиле ресурса INTUIT, и Вы можете заказать его бумажную версию на сайте INTUIT.
10241 шт.
Внимание !
Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier!

Каким целям служит ALU

пересылка данных
выполнение арифметических операций
управляет самим собой
дешифрация инструкций
связь между устройствами



Системные регистры – это

память ALU
память для промежуточных данных
участок памяти внутри ЦП



Устройство управления (CU) предназначено для выполнения следующих функций

выполнение инструкций
пересылка данных
дешифрация инструкций
управляет ALU
запуск ALU



Что такое производительность ЦП?

число задач, выполняемых одновременно
время передачи данных
скорость передачи данных по шине
среднее время выполнения команд



Системная шина используется для

хранения данных
вычислений команд
передачи данных
связи устройств ЦП



Факторы, влияющие на производитель¬ность процессора x86

использование векторных инструкций
эффективность использования внутренней памяти, регистров
качество конвейеризации
объем адресуемой памяти и скорость доступа к внешней памяти
параллелизация и многоядерность
cкорость исполнения и набор инструкций
качество предсказания переходов
качество упреждающей выборки
тактовая частота процессора



Современные процессоры Intel имеют архитектуру

гибрид CISC и RISC
CISC
RISC



Какие факторы не влияют на производительность процессора?

тактовая частота процессора
качество предсказания переходов
используемая операционная система



Почему время доступа к регистрам меньше, чем к ячейкам ОЗУ?

доступ к ним осуществляется параллельно с вычислением
регистры ЦП расположены в самом быстром кэше
они располагаются внутри ЦП



Выберете неверное утверждение

компилятор — транслятор, который осуществляет перевод исходной программы на язык машинных команд или ассемблер
только с помощью компилятора можно показать рост производительности МП, связанный с новыми командами, увеличением количества регистров и т.д.
компилятор — часть микропроцессора, отвечающая за перевод исходной программы на язык машинных команд или ассемблер



Суперскалярный процессор это

процессор, способный исполнять несколько операций за один такт
процессор, специализированный для выполнения скалярных операций
ничего из вышеперечисленного



Суперскалярность процессора это

возможность работать с векторами вместо скаляров
способность исполнять несколько операций за один такт
ничего из вышеперечисленного



Для пересылки данных между ЦП и памятью, а также между ЦП и периферийными устройствами:

используется оперативная память (RAM)
используется арифметико-логическое устройство (ALU)
используются системные регистры
используется системная шина



Время отклика (свойство памяти) — это

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



Суперскалярность – это

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



Какую информацию позволяет получить VTune?

где код неправильно отформатирован
где нужно улучшать производительность приложения
почему программа недостаточно эффективна
где тратится основное время
где находится лишний код



Для чего предназначен VTune™ Performance Analyzer?

для оптимизации скорости работы приложений
для анализа производительности приложения
для уменьшения размера приложения
для ускорения компиляции приложения



Какие требования к программам, анализируемым VTune?

использовать только язык С++
заголовочные файлы должны соответствовать стандарту VTune
ни один из перечисленных ответов
каждый исходный файл должен занимать не более 150 килобайт



VTune поддерживает языки:

ни один из перечисленных ответов
только C/C++
только языки, поддерживаемые компилятором Intel
только языки, поддерживаемые Microsoft Visual Studio



Какие возможности поддерживает VTune?

сбор и привязка к коду основных событий процессора
интеграция в Microsoft Visual Studio
учет энергопотребления процессора
поддержка многоядерности и многопоточности
обнаружение некорректной работы с памятью



Какие операционные системы поддерживаются VTune?

OS/2
VAX-VMS
Linux
PDP-11
Windows



Какие инструменты входят в VTune?

Hotspots
Concurrency
Locks and Waits
Valgrind



Что такое профилирование программы?

пересборка программы
бинарная инструментация
составление документации пользователя
сбор различных характеристик



Что не позволяет делать VTune?

отправлять программу для анализа специалистами Intel
просматривать ассеблерный код программы
дополнять программу средствами защиты от копирования
анализировать исходный код программы



Какое событие отвечает за неправильно предсказанные ветвления?

ничего из вышеперечисленного
L2_LINES_IN.SELF.DEMAND
BR_INST_RETIRED.MISPRED
INST_RETIRED.ANY



Какое событие отвечает за количество тактов процессора?

BUS_TRANS_ANY.ALL_AGENTS
L2_LINES_IN.SELF.DEMAND
CPU_CLK_UNHALTED.CORE
ничего из вышеперечисленного



Какое событие отвечает за количество исполненных инструкций?

INST_RETIRED.ANY
BR_INST_RETIRED.MISPRED
L2_LINES_IN.SELF.DEMAND
ничего из вышеперечисленного



Каким образом происходит оптимизация посредством VTune

VTune модифицирует код программы с каждым запуском, настраивая его под архитектуру
VTune используется только для сбора информации, оптимизация производится вне VTune
VTune модифицирует код программы только один раз, настраивая его под архитектуру
посредством редактирования ассемблерного кода в соответствующем разделе VTune



Какие процессоры подойдут для использования VTune?

Intel Pentium IV
Intel Core Duo
AMD Phenom
Intel Core i7
AMD Athlon



Как VTune оптимизирует производительность?

ничего из вышеперечисленного
код приложения модифицируется оптимизируется с учётом объёма данных
кэш контроллируется VTune и совершает меньше промахов
процессор оптимизируется для обработки приложения



Под какие платформы предоставляются компиляторы Intel?

Solaris
Windows
Linux
FreeBSD
MacOS X



Компиляторы каких языков предоставляет Intel® ?

Fortran
C#
Oberon
Forth
Java
C/C++



Что из перечисленного является скалярной оптимизацией?

удаление повторных вычислений
продвижение копий
вынесение инвариантов цикла
свертка констант
протяжка копий



Анализ потоков данных – это

техника для сбора информации о значениях переменных
техника для анализа того, как данные перемещаются по шине
способ сократить перекладывания данных из памяти в кэш



SSA-представление – это

представление, в котором каждая функция выполняется один раз
представление, в котором каждая переменная используется один раз
представление, в котором каждая переменная имеет одно определение
конечное представление, после проведения всех оптимизаций



Какая из частей компилятора в большей степени определяется входным языком?

Back End
кодогенератор
внутреннее представление
профилировщик
Front End



Базовые блоки это

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



Среди утверждений в программе можно установить порядок

лексикографический
семиденотационный
графосемантический
полидинамический
квазиитеративный



Что из перечисленного относится к синтаксическому анализу в компиляторе

лексический анализ
пунктуационный анализ
грамматический анализ
протаксический анализ
полиморфический анализ



Зависимость это

связь между утверждениями программы такая, что перестановка утверждений изменяет выдаваемый программой результат
связь между утверждениями программы такая, что утверждения изменяют одну и ту-же ячейку памяти
связь между утверждениями программы такая, что эти утверждения вычисляют общий результат
связь между утверждениями программы такая, что утверждения используют общие данные при вычислениях



Аббревиатура SSA означает

Simple Singles Alignment
SSe Alignment
Sign Standard Association
Static Single Assignment



"Мертвый код" может являться результатом

оптимизирующих преобразований
использования слишком длинных названий идентификаторов, которые занимают лишнее место
снижения скорости исполнения
ошибки сегментации



Что относится к удалению "Мёртвого кода"

удаление неиспользуемых переменных
удаление лишних программ
удаление лишних разделов
удаление лишних файлов



Что такое протяжка копий?

циклическое однонаправленное заполнение файла копиями переменных
удаление излишних операций ввода-вывода
замена копии переменной оригиналом в тексте программы
отслеживание копирования файлов с целью их протяжки



Что такое продвижение (протяжка) констант?

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



Почему происходит улучшение производительности при вынесении инвариантов циклов?

потому что инварианты цикла эффективнее пересчитывать в отдельном цикле
потому что инварианты не несут смысловой нагрузки в цикле – их можно удалить
потому что инварианты цикла неизменны на каждой итерации – их можно вычислить один раз



Что такое инвариант цикла?

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



Вынесение инвариантов цикла

находит и выносит за пределы цикла выражения независящие от индексных переменных цикла
находит и удаляет выражения независящие от индексных переменных цикла
ничего из вышеперечисленного не делает
находит и выносит инварианты цикла в другой цикл



Существует ли зависимость в этом фрагменте кода и, если она есть, определите тип зависимости:

DO I=1,N
  S1 A(I)=…
  S2 …=A(I)
END DO

зависимости нет
зависимость, превносимая циклом
зависимость, независимая от цикла



Существует ли зависимость в этом фрагменте кода и, если она есть, определите тип зависимости:

DO I=1,N
  S1 A(I+1) =F(I)
  S2 F(I+1) = A(I)
END DO

зависимость независимая от цикла
зависимость превносимая циклом
зависимости нет



Для чего используются нормализованные циклы?

для приведения циклов к общему виду
для повышения читаемости кода
для упрощения вычислений



Выберите случай ANTI зависимости между данными?

WRITE after READ
READ after WRITE
WRITE after WRITE
READ after READ



Выберите случай FLOW зависимости между данными?

READ after WRITE
WRITE after READ
WRITE after WRITE
READ after READ



Выберите случай OUTPUT зависимости между данными?

READ after WRITE
READ after READ
WRITE after WRITE
WRITE after READ



Почему циклам уделяется много внимания при оптимизации?

циклы короткие, их проще оптимизировать
циклы записываются подряд
циклы проще всего анализировать
чаще всего циклы являются "горячими местами" программы



Что такое "горячее место" программы?

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



Что чаще всего является "горячим местом" программы?

первая процедура
цикл
первое присваивание
последнее присваивание



Что может стать причиной непременимости оптимизации цикла?

длинное имя переменной, только если это итератор
одновременный запуск компилятора и среды Visual Studio
неудачная форма записи цикла
длинное имя переменной
ничего

Внимание !
Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier!

Различаются ли циклы с точки зрения оптимизации?

нет, если это компилятор Intel
да, есть те, которые лучше оптимизируются
нет
нет, если переменные правильно именованы



Есть ли определённые требования к записи циклов?

существуют требования, но их невозможно сформулировать
никаких требований не существует
требования есть только на старых языках программирования
есть определённый набор требований к "хорошим" циклам для оптимизации



Каким образом сказывается использование глобальных переменных?

зачастую усложняется читаемость кода
увеличивается размер кода из-за длинных глобальных имён
усложняется оптимизация
никаким образом
остаётся слишком мало имён для локальных



Что из перечисленного относят к плохому стилю программирования?

наличие операторов типа if
наличие циклических конструкций
ничего из перечисленного
использование глобальных переменных
длинные имена функций



Что из перечисленного относят к хорошему стилю программирования?

наличие операторов выхода из цикла
наличие безусловных переходов
модульность
наличие меток
ничего из перечисленного
короткие имена переменных



Какие цели преследует правильное разбиение программы на процедуры и функции?

растеризация
сериализация
декомпозиция
абстрактизация
стандартизация



Что такое область видимости переменной?

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



Какие цели преследует правильное форматирование кода?

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



Какие недостатки имеют оптимизации процедурного уровня?

не производятся оптимизации циклических конструкций
они лишены недостатков
недостаточная сериализация переменных
неоптимальная работа с памятью
неизвестны многие свойства переданных в процедуру параметров



Какие недостатки имеют оптимизации процедурного уровня?

они лишены недостатков
не производится векторизация
не учитываются переменные типа указатель
неизвестны свойства глобальных переменных
могут быть использованы для процедур, но не для функций



Какие недостатки имеют оптимизации процедурного уровня?

не могут быть использованы в нагруженных функциях
учитывают массивы только константной длинны
каждый вызов процедуры для них – "чёрный ящик"
могут быть использованы для процедур, но не для функций
не учитывают данные типа запись



Для выключения межпроцедурных оптимизаций используется ключ компилятора

/Qno-ipo
/Qipo-disable
/Qip-
/Qip-disable



Для включения межфайловой оптимизации необходимо использовать ключ компилятора
/Qmulti-file
/Qipf
/Qipo
/Om



Какой вид межпроцедурной оптимизации используется по умолчанию?

оптимизации внутри одного файла
никакой межпроцедурной оптимизации
оптимизации без учёта переменных типа "указатель"
многофайловый межпроцедурный анализ



Динамическое выделение памяти

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



Когда требуются динамические структуры данных?

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



В чем неудобства динамического выделения памяти

динамические объекты не могут обмениваться информацией со статическими объектами
массивы попадают в более медленную область памяти
данные становятся фрагментированными
нет возможности набрать статистику запусков
пропадает детерминированность кода



В чем особенность хранения списков в динамической памяти?

в списке должно быть больше пяти элементов
элементы в любой момент могут быть уничтожены сборщиком мусора
элементы могут быть расположены в памяти случайным образом



Выберите верные утверждения

количество регистров обычно превосходит количество переменных в программе
одна из базовых задач кодогенератора – распределение регистров
для распределения регистров используется метод рисования



При распределении регистров выполняется:

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



Для чего используется планирование инструкций?

для составления графа несовместимостей
для предсказания вероятностей переходов
для повышения инструкционного параллелизма
для сравнения прохождения контрольных точек программы с запланированным временем



Каким образом осуществляется планирование инструкций?

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



Для чего могут быть использованы зависимости по данным в процессе кодогенерации?

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



Статический список лучше динамического потому что

не требует накладных расходов по выделению памяти
может содержать элементы произвольного размера
может содержать данные типа "запись"
моделируется на основе статистики



Связанный динамический список хуже линейного потому что

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



В чем особенность хранения списков в динамической памяти?

элементы в любой момент могут быть уничтожены сборщиком мусора
в списке должно быть больше пяти элементов
элементы могут быть расположены в памяти случайным образом



Каким образом можно улучшить размещение элементов списка в динамической памяти

используя несколько процессоров
при помощи контейнеров
отказавшись от сборщика мусора
при помощи инлайнинга



Что такое распараллеливание программы?

ускоренная компиляция программы
одновременная компиляция и исполнение одной и той же программы
трансформация последовательно исполняемой программы в параллельную
лицензированное копирование программы



Какие тенденции можно заметить в развитии процессоров?

параллелизма становится меньше
ничего из перечисленного
понижается скорость вычислений
добавляется больше параллелизма



Что можно отнести к параллельному исполнению?

безусловный переход
конвейеризацию
векторные операции
скалярные операции



SSE - это:

технология, позволяющая выполнять код на стороне сервера
технология, позволяющая одновременно применять одну инструкцию к множеству данных
расширение для конфигурации сервера
язык программирования
потоковое SIMD-расширение процессора



Технология MMX предоставляет:

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



Векторизация циклов - это

внутренняя функция процессора
перевод растрового изображения в векторное
замена операций над скалярами на операции над векторами
компиляторная оптимизация



Для чего рекомендуется располагать поля структуры по убыванию размера?

для красоты
для уменьшения размеров структуры в результате выравнивания
для увеличения производительности



Для чего нужна опция /Qvec-report ?

для управления векторизацией при компиляции
для управления евристиками векторизации
для диагностики векторизации в процессе компиляции
для диагностики векторизации в процессе выполнения



SIMD - это:

вид компьютерной памяти
"Одни данные - много инструкций"
принцип вычислений, позволяющий обеспечить параллелизм на уровне данных
система Инструкций для Многопользовательского Доступа
"Одна инструкция - много данных"



Какой размер имеют регистры xmm?

16 бит
256 бит
128 бит
64 бита
32 бита



Какой размер имеют регистры ymm?

256 бит
64 бита
32 бита
128 бит
16 бит



Сколько регистров xmm поддерживается в emm64t

8
64
16
4
32



Что является серьезным ограничением производительности современных вычислительных систем?

скоростью взаимодействия с памятью
наличие кэша второго уровня
количеством памяти
тактовая частота процессоров



В чем цель автоматического распараллеливания?

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



Что такое ядро процессора?

часть процессора, которая работает с общим кэшем
часть процессора, которая выполняет арифметические операции над данными
часть процессора, которая извлекает из памяти и исполняет инструкции



На какие типы по использованию памяти делятся многопроцессорные системы?

системы с неоднородным доступом к памяти
системы со случайным доступом к памяти
системы с распределенной памятью
системы с общей памятью



Назовите минусы использования многопоточных приложений.

усложнение разработки
объем используемой оперативной памяти увеличивается пропорционально кол-ву используемых ядер
необходимость синхронизировать потоки
потоки конкурируют за ресурсы
создание потоков имеет свою цену



Назовите плюсы использования многопоточных приложений.

вычислительные ресурсы увеличиваются пропорционально кол-ву используемых реальных ядер
уменьшается общее количество инструкций процессора
объем используемой оперативной памяти уменьшается пропорционально кол-ву используемых реальных ядер



Какая директива может сообщить компилятору, что вызов функции в следующем цикле безопасен для параллельного выполнения?

#pragma prefer serial
#pragma serial
#pragma concurrentize
#pragma concurrent call



Какая директива может заставить компилятор параллелизовать следующий цикл, если это безопасно?

#pragma serial
#pragma prefer serial
#pragma concurrentize
#pragma prefer concurrent



Какая директива предлагает компилятору не параллелизировать следующий цикл?

#pragma prefer serial
#pragma prefer concurrent
#pragma serial
#pragma no concurrentize



Что такое OpenMP?

это программный интерфейс, который поддерживает многопроцессорное программирование с общей памятью
это программный интерфейс, который проверяет корректность параллелизации
это программный интерфейс, который рассчитывает выгоду от применения параллелизации



Что сообщает /Qpar-report3?

информирует, если параллелизация невыгодна
сообщает какие зависимости препятствуют векторизации
сообщает порядок выполнения итераций
сообщает причины по которым компилятор не параллелизует тот или иной цикл


Что такое "предвыборка"?

загрузка данных из кэша в память до того, как эти данные непосредственно потребовались процессору
загрузка данных из относительно медленной памяти в кэш до того, как эта память непосредственно потребовалась процессору
чтение адресов памяти с данными для последующей загрузки в кэш
загрузка данных из относительно медленной памяти в кэш после того, как эта память непосредственно потребовалась процессору



Вы можете обратится к нам напрямую, через:

skype По Skype: molodoyberkut
telegram По Telegram: @MolodoyBerkut
icq По ICQ: 657089516

Или через форму обратной связи на нашем сайте
Пока сочиняется...
4.png