Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет3.doc
Скачиваний:
6
Добавлен:
20.09.2019
Размер:
204 Кб
Скачать
☆

Эксперимент 1. Исследование расслоения динамической памяти

Цель эксперимента: определение способа трансляции физического адреса, используемого при обращении к динамической памяти.

Заданные параметры:

Максимальное расстояние между читаемыми блоками – 32К.

Шаг увеличения расстояния между четырёхбайтовыми ячейками – 128Б.

Размер массива – 1М.

На рисунке 1 приведены результаты эксперимента.

Рисунок 1 - Общий вид результатов эксперимента по исследованию расслоения динамической памяти

Рисунок 2 - Расслоение динамической памяти

Выводы:

До точки Т2 = 4096 байт наблюдаем рост графика, который связан с тем, что при росте шага чтения требуется открытие большего числа страниц. При этом в одном банке памяти может находится одна и та же открытая страница (рис 2).

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

Точка Т1 = 1024 б представляет собой точку локального максимума. Эта точка соответствует размеру одного набора. При этом постоянно происходит обращение к одному и тому же банку, то есть не происходит чередование банков памяти. По её значению этого шага легко можно определить число банков памяти. Для этого размер набора надо разделить на размер линейки:

Б = Т1 / П = 1024 б / 128 б = 8.

Размер одной страницы памяти РС = Т2 / Б = 4096 б / 8 = 512 б.

Число страниц физической оперативной памяти: С = О/(РС * Б) = 1073741824 / (512 * 8) = 262144 шт.

Рисунок 3 - Пример изменения вида графика в зависимости от изменения настраиваемых параметров

Выводы:

Во втором случае, при параметрах 32 К, 32 Б, 1 Мб вид графика во втором случае (см. рис. 3) обусловлен тем, что из прочитанных 128 Б линейки используется лишь 32, а остальные байты попадают в кеш. 3 последующих обращения будут только к кеш-памяти и таким образом, мы при последующем чтении получаем ускорение на 3 / 4

Эксперимент 2. Сравнение эффективности ссылочных и векторных структур

Цель эксперимента: оценка влияния зависимости команд по данным на эффективность вычислений.

Заданные параметры:

Число элементов в списке – 1 М.

Максимальная фрагментация списка – 32 К.

Шаг увеличения фрагментации – 1 К.

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

Обобщённый результат:

____________________________________________________________________________

Список обрабатывался в 20,347627 раз дольше.

Рисунок 4 - Зависимость времени обработки списка и массива от фрагментации

Выводы:

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

Эксперимент 3. Исследование эффективности программной предвыборки

Цель эксперимента: выявление способов ускорения вычислений благодаря применению предвыборки данных.

Заданные параметры:

Шаг увеличения расстояния между читаемыми данными – 512 Б.

Размер массива – 128 К.

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

Обобщённый результат:

____________________________________________________________________________

Обработка без загрузки таблицы страниц в TLB производилась в 2,094776 раз дольше.

Расстояние между пиками примерно по 4 Кб, а сами пики по 20К.

Рисунок 5 - Зависимость времени работы алгоритма от смещения читаемых данных

Выводы:

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