Введение 5
Конструкторская часть 6
1 Статистический анализ быстродействия программ 6
1.1 Технологии компиляторов 6
1.2 Сложность разработки компиляторов 7
1.3 Подходы к решению проблемы сложности эвристик ... 8
1.4 Итеративная компиляция 8
1.5 Машинное обучение 9
1.6 Коллективная оптимизация 9
1.7 Выводы 10
2 Методология моделирования, применяемая в системе Adaptor . 11
2.1 Статистические методы обработки информации 11
2.1.1 Регрессионный анализ 11
2.1.2 Перекрёстная проверка 13
2.2 Метод моделирования эффективности исполнения
программ Velocitas 14
2.3 Выводы 14
Технологическая часть 16
3 Программная реализация инструментария Adaptor 16
3.1 Выбор языка программирования 16
3.1.1 Рассмотрение альтернатив 16
3.1.2 Итоговое решение 17
3.2 Репозиторий исходных кодов экспериментальных
программ 17
3.2.1 Рассмотрение альтернатив 18
3.2.2 Итоговое решение 18
3.3 База данных экспериментов 18
3.3.1 Рассмотрение альтернатив 19
3.3.2 Итоговое решение 19
3.4 Установка инструментария Adaptorна компьютер
пользователя 20
3.5 Расширяемость инструментария Adaptor 20
3.6 Платформа для использования инструментария Adaptor21
3.7 Архитектура инструметария Adaptor 21
3.8 Эксперимент по оптимизации программы 22
3.8.1 Время исполнения программы 23
3.8.2 Калибровка времени исполнения программы . . 24
3.8.3 Интерактивное окружение проведения
экспериментов 25
3.9 Конвейер обработки данных в системе Orange 25
3.10 Выводы 39
Исследовательская часть 40
4 Оценка эффективности инструментария Adaptor 40
4.1 Проверка точности измерения времени 41
4.2 Сравнение компиляторов GCC и LLVM на тестовом
наборе Polybench 41
4.3 Моделирование и предсказание производительности
программы из набора Polybench на различном аппаратном обеспечении 46
4.3.1 Серия экспериментов 1 47
4.3.2 Серия экспериментов 2 49
4.3.3 Серия экспериментов 3 54
4.4 Выводы 57
Организационно-экономическая часть 58
5 Введение 58
6 Основные этапы проекта разработки нового изделия 58
7 Расчёт трудоёмкости разработки программного продукта .... 59
8 Календарный план-график проекта 63
9 Затраты на разработку программного продукта 63
9.1 Расчёт материальных затрат 64
9.1.1 Расчёт затрат на оборудование 64
9.2 Расчёт амортизационных отчислений 65
9.3 Расчёт заработной платы 65
9.4 Расчёт отчислений в социальные фонды 66
9.5 Прочие затраты 67
10 Определение цены программного продукта 67
11 Выводы по организационно-экономической части дипломного
проекта 68
Охрана труда и экология 69
12 Проектирование рабочего места оператора ПЭВМ 69
12.1 Требования к рабочим помещениям 69
12.2 Требования к освещению 69
12.3 Расчёт системы освещения в помещении 71
12.4 Требования к микроклимату 73
13 Расчёт системы вентиляции 73
13.1 Выбор вентилятора 75
13.2 Требования к размещению оборудования 78
13.3 Требования к мониторам 81
13.4 Требования по электробезопасности 83
14 Выводы 84
Список использованных источников
Приложение
Разработка современного математического обеспечения САПР — сложная задача, требующая больших вложений материальных и временных ресурсов. Зачастую для достижения оптимальности по таким критериям, как производительность, объём занимаемой памяти, и энергопотребление требуется ручная настройка компилятора — выбор вариантов тонких настроек оптимизации под определённую программно-аппаратную платформу с учётом особенностей решаемой задачи. Это плохо формализованная задача, которая часто решается разработчиками МО методом проб и ошибок. В результате этого оптимальность часто не достигается ни по одному из выбранных критериев.
Распространённой проблемой для исследователей и инженеров является то, что параметры компиляции подбираются под конкретный набор входных данных, на конкретной программно-аппаратной платформе [1,2]. При этом для набора данных, встречающегося в реальных задачах (а не используемого во время подбора оптимальных параметров), оптимальные параметры могут оказаться иными.
Для увеличения возможностей по тонкой оптимизации математического программного обеспечения для рабочих станций и суперкомпьютеров необходима формализация поисковой области. С помощью построения модели производительности программ возможно достичь лучшего понимания воздействия оптимизаций компилятора на интересующие разработчика критерии эффективности программы. Таким образом можно сделать поиск оптимальных настроек более направленным и локализованным, сокращая цикл разработки математического обеспечения, стоимость разработки и поддержки.
Цель — разработать систему сбора, систематизации, формализации данных о производительности компилируемых программ в зависимости от настроек компилятора и программно-аппаратной платформы, а также выполняющую функции поддержки базы знаний и обучения с целью моделирования и предсказания эффективности программ.
Примером критерия эффективности является производительность программы на данной программно-аппаратной платформе.