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

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

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

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

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

Число потоков данных – 32.

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

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

____________________________________________________________________________

Неоптимизированная структура обрабатывалась в 1,329084 раз дольше.

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

Выводы:

При выборке из оперативной памяти происходит получения одной линейки. При этом объем востребованных данных при программировании на языках высокого уровня зачастую меньше размера линейки. Оптимизация структур данных позволяет передавать в одном пакете только востребованные данные. Это позволяет снизить количество кеш-промахов и повышает производительность системы до 2ух раз.

Эксперимент 5. Исследование конфликтов в кэш-памяти

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

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

Размер банка кэш-памяти – 128 К (Объём КП / Б = 1024 К / 8 = 128 К).

Размер линейки кэш-памяти – 128 б.

Число читаемых линеек – 8.

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

Рисунок 7 - Зависимость времени работы процедуры от смещения читаемой ячейки

Выводы:

Конфликты в кэш-памяти возникают в случае чтения данных с шагом, кратным размеру банка памяти. В этом случае задействованным будет только один банк памяти и степень ассоциативности памяти "снижается" до 1. При этом наблюдается постоянное вытеснение данных из кэш-памяти и больший её объём остаётся незадействованным.

Эксперимент 6. Сравнение алгоритмов сортировки

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

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

Количество 64-разрядных элементов массивов – 4 М.

Шаг увеличения размера массива – 128 К.

На рисунке 8 представлена зависимость времени работы алгоритма QuickSort от числа 64-разрядных элементов сортируемого массива (фиолетовый график), аналогичная зависимость времени неоптимизированного алгоритма Radix-Counting (красный график) и аналогичная зависимость времени работы алгоритма Radix-Counting, оптимизированного под восьмипроцессорную вычислительную систему (зелёный график).

Рисунок 8 - Зависимость времени работы алгоритма от числа элементов массива

Выводы:

За счёт разной логики работы различные алгоритмы сортировки по разному используют физическую память, отчего сильно разнится время доступа к ней и время работы алгоритма соответственно. Так, Quick-Sort использует попарные сравнения, отчего увеличивается число обращений к массиву данных, а следовательно и к памяти, в связи с чем увеличивается общее время выполнения сортировки. В Radix-Counting сортировка происходит по-другому, отчего этой подобной проблемы не возникает, что снижает вычислительную сложность. Распараллеливание (см. графики) повышает производительность и без того быстрого алгоритма.

9