Организация ЭВМ
и систем
Лабораторная
работа ©1
Использование
оптимизирующего компилятора
Цель:
1) научиться измерять интервалы времени в программах на языке Си,
2) исследовать зависимость времени исполнения программы от использования ключей оптимизации компилятора.
Задание
1. Написать программу на языке Си для решения поставленной задачи. Вычислительную часть оформить отдельной функцией. До и после вызова вычислительной функции вставить соответствующие вызовы функций замера времени.
2. Компилируя программу компилятором gcc без оптимизации, подобрать такое значение параметра задачи N, чтобы вычисление занимало время порядка нескольких десятков секунд.
3. Скомпилировать тестовую программу доступными компиляторами с различными ключами оптимизации и замерить время вычисления при найденном значении параметра. Использовать различные уровни оптимизации, оптимизацию под архитектуру используемого процессора. Результаты представить в таблице:
Компилятор |
Ключи оптимизации |
Время вычисления |
|
|
|
Варианты заданий
1. Вычисление числа Пи по формуле:
,
Параметр: N - число итераций.
2. Вычисление определенного интеграла методом трапеций:
, f(x)=exsin(x), a = 0, b = π.
Параметр: N - число интервалов.
3. Вычисление квадратного корня с помощью алгоритма Ньютона:
Сходящаяся серия итераций: ai+1 = (ai + x / ai ) / 2.
Начальное значение a0 можно взять произвольным.
Параметр: N - число итераций
4. Сортировка методом пузырька.
Дан массив случайных чисел длины N. На первой итерации попарно упорядочиваются все соседние элементы; на второй - все, кроме последнего; на третьей - кроме последнего и предпоследнего и т.п.
Параметр: N - размер массива.
5. Вычисление числа Пи методом Монте-Карло:
Генерируется N точек (x;y), равномерно распределенных на квадрате [0;1]x[0;1]. Вычисляется M - число точек, попавших в четверть круга с радиусом 1 (x2+y2≤1). Число Пи можно приближенно вычислить по формуле: .
Параметр: N
- число точек.
В отчет:
· Фамилия, группа,
· Вариант (что вычислялось),
· Какой способ измерения времени использовался,
· Программа,
· Время для следующих компиляторов и ключей оптимизации (на ccfit):
o
gcc-3.0 -O0
o
gcc-3.0 -O1
o
gcc-3.0 -O2
o
gcc-3.0 -O3
o
icc -O0
o
icc -O1
o
icc -O2
o
icc -O3
o
icc -O3 -march=pentiumiii