Практическое задание 5 (2018 и раньше)

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

Постановка задачи

Векторизовать заданную программу автоматически или полуавтоматически с помощью компилятора, а также вручную с помощью intrinsics. Сравнить времена работы следующих вариантов программы:

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

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

Отчёт

Отчёт высылайте преподавателю на почту. В отчет необходимо включить:

  • Фамилию И.О.
  • Постановка задачи
  • Описание используемой вычислительной системы и компилятора
  • Результаты выполнения задания: описание выполненных опимизаций и полученное время работы для указанных выше вариантов. Для варианта с ручной векторизацией желательно привести времена расчёта, полученные на разных этапах оптимизации.
  • Вывод по результатам выполнения задания
  • Тексты программ в приложении

File attachments: