2 из 61 Введение. Оценка энергоэффективности программ: –Подходы к определению энергоэффективности; –Программные средства. Тестовые задачи. Реализация экспериментов: –Исследовательская инфраструктура; –Численные результаты. Заключение. –Выводы; –Развитие проекта. Н.Новгород, 2011 г.Power Consumption Project Содержание
3 из 61 Введение Н.Новгород, 2011 г.Power Consumption Project
4 из 61 Введение Популярность мобильных устройств неуклонно растет. Н.Новгород, 2011 г.Power Consumption Project
5 из 61 Введение Возможности увеличения емкости батарей не безграничны. Н.Новгород, 2011 г.Power Consumption Project
6 из 61 Задачи: Определение величин (метрик), которые необходимы для анализа энергоэффективности ПО. Анализ и изучение инструментов, которые позволяют программным образом определять энергопотребление ПО. Реализация тестовых задач. Разработка исследовательской инфраструктуры: –Возможность автоматического запуска экспериментов; –Численное и графическое представление результатов. Проведение экспериментов и интерпретация результатов. Постановка задачи Н.Новгород, 2011 г.Power Consumption Project
7 из 61 Оценка энергоэффективности программ Н.Новгород, 2011 г.Power Consumption Project
Подходы к определению энергоэффективности 8 из 61 В чем можно измерить энергопотребление? Текущее напряжение (в Вольтах); Текущая сила тока (в Амперах); Текущая мощность потребления (в Ваттах). Основной характеристикой энергопотребления является текущая потребляемая мощность. Н.Новгород, 2011 г.Power Consumption Project (1)
Подходы к определению энергоэффективности 9 из 61 Основная характеристика батареи – ёмкость (в Ватт-часах). Ёмкость показывает, сколько часов проработает мобильное устройство при мощности потребления в 1 Ватт. Если знать ёмкость батареи, можно определить, сколько мобильное устройство проработает при определенной потребляемой мощности: где E – ёмкость батареи. Н.Новгород, 2011 г.Power Consumption Project (2)
10 из 61 C-States Степень «засыпания» процессора при ожидании характеризуется его С-state состоянием. Н.Новгород, 2011 г.Power Consumption Project 1 Energy-Efficient Platforms – Considerations for Application Software and Services
11 из 61 Готовые программные комплексы сторонних разработчиков API операционной системы Драйвер батареи Уровень абстракции Подходы к определению энергоэффективности Н.Новгород, 2011 г.Power Consumption Project
Подходы к определению энергоэффективности 12 из 61 Готовые программные комплексы сторонних разработчиков API операционной системы Драйвер батареи I.Достоинства: 1.Максимально точные данные. 2.Возможность получения данных в удобном формате II.Недостатки: 1.Самый низкий уровень. 2.Сложность реализации измерителя. 3.Сильная зависимость от модели батареи. Н.Новгород, 2011 г.Power Consumption Project
Подходы к определению энергоэффективности 13 из 61 Готовые программные комплексы сторонних разработчиков API операционной системы Драйвер батареи I.Достоинства: 1.Достаточно точные данные. 2.Возможность получения данных в удобном формате II.Недостатки: 1.Сложность реализации измерителя. 2.Сильная зависимость от операционной системы. Н.Новгород, 2011 г.Power Consumption Project
Подходы к определению энергоэффективности 14 из 61 Готовые программные комплексы сторонних разработчиков API операционной системы Драйвер батареи I.Достоинства: 1.Простота реализации измерителя. 2.Возможность работы на различных платформах. II.Недостатки: 1.Нет возможности получать данные в удобном формате. 2.Менее точные данные. Н.Новгород, 2011 г.Power Consumption Project
15 из 61 Программные средства Intel(R) Power Checker Perfmon Intel(R) Power Informer Powertop Joulemeter Требования к ОС Отображение мощности, потребляемой системой Отображение С-State Отображение результатов в реальном времени Возможность проведения серии экспериментов Период обновления данных (сек) Возможность запуска на различных версиях ОС Возможность записи результатов в файл Windows Linux 1,0 15,01,0??? Н.Новгород, 2011 г.Power Consumption Project
16 из 61 Тестовые задачи Н.Новгород, 2011 г.Power Consumption Project
17 из 61 Тестовые задачи Рассматриваемые технологии: OpenMP Intel ® Cilk Plus Intel ® Threading Building Blocks Streaming SIMD Extensions (SSE) Рассматриваемые алгоритмы: Умножение матрицы на вектор Умножение матрицы на матрицу Быстрое преобразование Фурье Алгоритм выделения краев Canny Используемые языки программирования: С/С++ Дополнительные средства: Intel® Math Kernel Library (MKL) Н.Новгород, 2011 г.Power Consumption Project
18 из 61 Тестовые задачи SingleOpenMPTBBCilk+SSEMKL Умножение матрицы на вектор Умножение матрицы на матрицу Быстрое преобразование Фурье Н.Новгород, 2011 г.Power Consumption Project Алгоритм выделения краев Canny
19 из 61 Исследовательская инфраструктура Н.Новгород, 2011 г.Power Consumption Project
20 из 61 Ход выполнения скрипта Главный скрипт Скрипт запуска экспериментов Скрипт сбора данных Отчет с временем начала и конца каждого эксперимента Отчет Perfmon Запуск Perfmon для ведения отчета Чтение параметров из файла Запуск серии экспериментов Остановка Perfmon и подготовка отчета Скрипт для работы с Perfmon Таблица с результатами Н.Новгород, 2011 г.Power Consumption Project
21 из 61 Ход выполнения скрипта Главный скрипт Скрипт запуска экспериментов Скрипт сбора данных Отчет с временем начала и конца каждого эксперимента Отчет Perfmon Запуск Perfmon для ведения отчета Чтение параметров из файла Запуск серии экспериментов Остановка Perfmon и подготовка отчета Скрипт для работы с Perfmon Таблица с результатами Н.Новгород, 2011 г.Power Consumption Project
22 из 61 Ход выполнения скрипта Главный скрипт Скрипт запуска экспериментов Скрипт сбора данных Отчет с временем начала и конца каждого эксперимента Отчет Perfmon Запуск Perfmon для ведения отчета Чтение параметров из файла Запуск серии экспериментов Остановка Perfmon и подготовка отчета Скрипт для работы с Perfmon Таблица с результатами Н.Новгород, 2011 г.Power Consumption Project
23 из 61 Ход выполнения скрипта Главный скрипт Скрипт запуска экспериментов Скрипт сбора данных Отчет с временем начала и конца каждого эксперимента Отчет Perfmon Запуск Perfmon для ведения отчета Чтение параметров из файла Запуск серии экспериментов Остановка Perfmon и подготовка отчета Скрипт для работы с Perfmon Таблица с результатами Н.Новгород, 2011 г.Power Consumption Project
24 из 61 Ход выполнения скрипта Главный скрипт Скрипт запуска экспериментов Скрипт сбора данных Отчет с временем начала и конца каждого эксперимента Отчет Perfmon Запуск Perfmon для ведения отчета Чтение параметров из файла Запуск серии экспериментов Остановка Perfmon и подготовка отчета Скрипт для работы с Perfmon Таблица с результатами Н.Новгород, 2011 г.Power Consumption Project
25 из 61 Ход выполнения скрипта Главный скрипт Скрипт запуска экспериментов Скрипт сбора данных Таблица с результатами Отчет с временем начала и конца каждого эксперимента Отчет Perfmon Запуск Perfmon для ведения отчета Чтение параметров из файла Запуск серии экспериментов Остановка Perfmon и подготовка отчета Скрипт для работы с Perfmon Н.Новгород, 2011 г.Power Consumption Project
26 из 61 Результаты экспериментов Н.Новгород, 2011 г.Power Consumption Project
27 из 61 Тестовая система Все эксперименты проводились на следующей машине: –Processor: Mobile QuadCore Intel Core i7 2GHz (2.9 GHz Turbo Boost) –Cache: L1 32 Kb, L2 256 Kb, L3 6Mb –RAM: 4Gb, DDR MHz –HDD: 64Gb SSD –Operating System: Windows 7 Ultimate (x64) Н.Новгород, 2011 г.Power Consumption Project
28 из 61 Сравнение параллельных технологий Умножение матрицы на вектор P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
29 из 61 Сравнение параллельных технологий Умножение матрицы на вектор E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
30 из 61 Быстрое преобразование Фурье Сравнение параллельных технологий P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
31 из 61 Сравнение параллельных технологий Быстрое преобразование Фурье E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
32 из 61 Сравнение параллельных технологий Умножение матрицы на матрицу P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
33 из 61 Сравнение параллельных технологий Умножение матрицы на матрицу E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
34 из 61 Сравнение при разном количестве потоков Алгоритм выделения краев Canny (OpenMP) P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
35 из 61 Сравнение при разном количестве потоков Алгоритм выделения краев Canny (TBB) P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
36 из 61 Сравнение при разном количестве потоков Алгоритм выделения краев Canny E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
37 из 61 Сравнение при разном количестве потоков Умножение матрицы на матрицу (OpenMP) P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
38 из 61 Сравнение при разном количестве потоков Умножение матрицы на матрицу (OpenMP) E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
39 из 61 Сравнение при разном количестве потоков Умножение матрицы на матрицу (OpenMP) E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
40 из 61 Зависимость от C-State Умножение матрицы на матрицу. P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
41 из 61 Зависимость от C-State E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
42 из 61 Тест на доступ к памяти Суммирование элементов вектора P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
43 из 61 Тест на доступ к памяти Суммирование элементов вектора E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
44 из 61 Сравнение с другими вариантами реализаций Алгоритм выделения краев Canny. Немного изменим реализацию: поменяем местами циклы. Тем самым уменьшим количество «прыжков» по памяти. P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
45 из 61 Алгоритм выделения краев Canny. Сравнение с другими вариантами реализаций E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
46 из 61 Сравнение с другими вариантами реализаций Умножение матрицы на матрицу. Уменьшили количество «прыжков» по памяти путем транспонирования второй матрицы. P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
47 из 61 Умножение матрицы на матрицу. Сравнение с другими вариантами реализаций E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
48 из 61 Сравнение с использованием SSE Умножение матрицы на вектор P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
49 из 61 Сравнение с использованием SSE Умножение матрицы на вектор E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
50 из 61 Сравнение с использованием SSE Умножение матрицы на матрицу P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
51 из 61 Сравнение с использованием SSE Умножение матрицы на матрицу E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
52 из 61 Сравнение с MKL Быстрое преобразование Фурье P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
53 из 61 Сравнение с MKL Быстрое преобразование Фурье E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
54 из 61 Сравнение с MKL Умножение матрицы на вектор P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
55 из 61 Сравнение с MKL Умножение матрицы на вектор E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
56 из 61 Сравнение с MKL Умножение матрицы на матрицу P (мВт) t (c) Н.Новгород, 2011 г.Power Consumption Project
57 из 61 Сравнение с MKL Умножение матрицы на матрицу E (мВт*час) Н.Новгород, 2011 г.Power Consumption Project
58 из 61 Заключение Н.Новгород, 2011 г.Power Consumption Project
Определены метрики, которые необходимы для анализа энергоэффективности ПО. Изучены инструменты, которые позволяют программным образом определять энергопотребление ПО. Реализованы тестовые задачи. Разработана исследовательская инфраструктура. Проведены эксперименты. 59 из 61 Заключение Практический результат работы: Создана рабочая схема, позволяющая измерить энергопотребление и сравнить энергоэффективность программ. Используя данную схему, был проведен ряд экспериментов. Данная схема обладает рядом ограничений и требует дальнейшего улучшения. Н.Новгород, 2011 г.Power Consumption Project
60 из 61 Развитие проекта В наши ближайшие планы входит: Создание собственного инструмента измерения энергопотребления ПО, который будет позволять: –Получать максимально точные измерения. –Сохранять результаты в удобном формате. –Быть максимально независимыми от платформы, на которой проводятся исследования. В наши дальнейшие планы входит: Создание комплекса рекомендаций для разработчиков по созданию энергоэффективного ПО. Создание профилировщика, который сможет: Проводить автоматический анализ кода. Выдавать рекомендации разработчику по повышению энергоэффективности кода. Н.Новгород, 2011 г.Power Consumption Project
61 из 61 Спасибо за внимание! ??? Н.Новгород, 2011 г.Power Consumption Project
62 из 61 Energy-Efficient Platforms – Considerations for Application Software and Services – В.Д. Кустикова Описание технологии Intel Cilk Plus – А.В. Сысоев, И.Б. Мееров, А.А. Сиднев Средства разработки параллельных программ для систем с общей памятью. Библиотека Intel Threading Building Blocks – А.А. Сиднев Образовательный комплекс «Параллельные численные методы». Лабораторная работа 5. Фильтрация изображений. Быстрое преобразование Фурье – Kaisa Korhonen «Predicting mobile device battery life» – Н.Новгород, 2011 г.Power Consumption Project Список литературы