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

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСТЕТ

ФАКУЛЬТЕТ ПРИКЛАДНОЙ МАТЕМАТИКИ И ИНФОРМАТИКИ

КАФЕДРА ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ ТЕХНОЛОГИЙ

“УТВЕРЖДАЮ”

Декан ФПМИ Б.Ю. Лемешко

“___ ”____________2011 г.

Дисциплины

«Архитектура ЭВМ и вычислительных систем »

Цели освоения дисциплины

Освоение бакалаврами дисциплины «Архитектура ЭВМ и вычислительных систем » преследует следующие цели:

  • систематизация теоретических знаний о системной организации современной ЭВМ;

  • изучение особенностей архитектур ЭВМ и их влияния на производительность на заданном классе задач;

  • формирование минимальных практических навыков оптимизации прикладных программ под заданную архитектуру ЭВМ (навыки учета особенностей архитектуры целевой ЭВМ в прикладной программе);

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

Темы расчетно-графических заданий

1. Использование влияния оптимизирующего компилятора на время выполнения программы простых алгоритмов.

2. Определить параметры кэш-памяти

2.1. Сравнение способов обхода данных в памяти.

2.2. Изучение способов отображения данных в кэш-память.

2.3. Изучение аппаратной предвыборки данных.

2.4. Изучение работы TLB.

3. Функционирование процессора

3.1. Изучение архитектуры x86/x86-64.

3.2. Разбор ассемблерного листинга.

4. Введение в параллельную обработку

4.1. Использование векторных расширений.

  1. Изучение влияния опций компилятора на время выполнения программы.

  2. Разработка программ некоторого простого алгоритма (вычисление числа Пи, интеграла, квадратного корня, умножения матриц) и определение временной сложности его исполнения.

  3. Исследование влияния параметров иерархии памяти на время выполнения программы.

  4. Изучение SIMD-расширений архитектуры x86. Использование SIMD-расширений при написании программ.

РГЗ 1. Использование влияния оптимизирующего компилятора на время выполнения программы простых алгоритмов.

Для выполнения данной работы необходимо изучить

  • функции замера времени.

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

  • Для каждого доступного компилятора следует сравнить различные уровни оптимизации (например, ключи –O0, –O1, –O2, –O3 для компилятора gcc) и оптимизацию под архитектуру процессора (например, ключи –O3 –march=core2 для компилятора gcc).

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

Варианты заданий:

  • Вычисление числа Пи с помощью разложения в ряд.

  • Вычисление определенного интеграла сложной функции методом трапеций.

  • Вычисление квадратного корня с помощью алгоритма Ньютона.

  • Сортировка методом пузырька.

  • Вычисление числа Пи метом Монте-Карло.

РГЗ 2. Определить параметры кэш-памяти

  1. Определить параметры кэш-памяти: латентность, пропускная способность, объем. Сравнить времена для различных способов обхода массива: прямой обход, обратный обход, обход в случайном порядке.

Для выполнения задания требуется написать программу, выполняющую чтение элементов массива заданного размера в заданном порядке. Процедура обхода массива x[] должна выглядеть следующим образом:

for (i=0, j=0; j<N; j++) i = x[i];

где элементы массива x[] представляют собой связный список, заполненный различным образом в зависимости от способа обхода массива. Например:

  • Для прямого обхода:

  • Для обратного обхода:

  • Для обхода в случайном порядке:

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]