Профилирование энергопотребления виртуальных машин (1187417), страница 5
Текст из файла (страница 5)
(Рис. 1) Cpu-intensive тесты из пакета Intel Linpack benchmark
(Рис. 2) I/O-intensive тесты из пакета Intel Linpack benchmark
(Рис. 3) Movie Player
4.4. Обоснование и выводы
Предложенная модель измерения энергопотребления на базе RAPL интерфейса наиболее оптимально решает задачу в выборе места для размещения приложения. Изоляция контекстов исполнения (хостового, контекста монитора, а также гостевого) при размещении приложения позволяет получить наиболее достоверные данные об энергопотреблении.
Предложенное решение на базе RAPL интерфейса, в отличие от моделей измерения с использованием ACPI интерфейса, обеспечивает получение информации об энергопотреблении системы с момента ее запуска.
Предложенный механизм определения величины энергопотребления, использующий интерфейс RAPL, является наиболее приемлемым и перспективным. Использование интеграции датчиков энергопотребления непосредственно в ядре микропроцессора позволяет получить наиболее точные данные.
Результаты тестирования показали, что предложенное решение позволяет реализовать поставленную задачу: прогнозировать энергозатраты на основании анализа получаемых достоверных статистических данных.
-
Задача разработки энергоэффективного ПО
В данной части работы рассмотрена задача разработки энергоэффективного программного обеспечения. Описаны результаты применения программной реализации алгоритма замера и мониторинга энергопотребления для задачи перемножения матриц. Проанализирована энергоэффективность различных прикладных приложений и сценариев запуска приложений в том числе с использованием техники параллельного программирования. Исследованы всевозможные зависимости энергоэффективности от программных характеристик запускаемых приложений.
5.1. Определение энергоэффективности ПО
Зададим набор параметров для определения и оценки энергоэффективности приложений:
1. Потребленная энергия.
2. Времена нахождения процессора в C- и P- состояниях.
3. Число переходов между разными C- и P- состояниями.
4. Загруженность процессора.
5.2. Описание экспериментов
После проверки алгоритма была проведена оценка энергоэффективности ПО в виртуализованной среде. Проверена гипотеза о влияния ресурсов, выделенных ПО, на энергопотребление. Для этого была проверена энергоэффективность различных сценариев запуска приложений. Сначала определим энергопотребление каждого сценария в отдельности. Затем проведем их попарное сравнение и воспользуемся статистическим критерием для проверки гипотез. После чего можно убедиться в их достоверности. Поэтому можно сделать вывод, что классификация сценариев, основываясь на использовании ресурсов – наиболее точный способ оценки их энергопотребления. Отсюда также следует потребность группировки сценариев и отдельных сервисов или приложений для уменьшения суммарного потребления.
Следующим шагом в Оценке энергоэффективности ПО в виртуализованной среде было проведение экспериментов по сравнению энергоэффективности при решении задачи матричного умножения.
Использовалось следующее ПО и аппаратное обеспечение:
-
процессор Intel Core i7-3770 Ivy Bridge: 3400МГц (8 ядер) , 8 Гб DDR3 SDRAM;
-
Ubuntu 13.04 - (хостовая ОС);
-
Windows 7 (гостевая ОС);
-
Parallels Desktop (В качестве гипервизора).
В начале сравнивались последовательная версия и версии с OpenMP. Параллельная реализация являются более энергоэффективными, чем последовательная. Далее на рисунках ниже показана энергоэффективность при различных размерах матриц:
матрица 500x500. Синяя - Последовательная версия, Красная – OpenMP.
матрица 1000x1000. Синяя - Последовательная версия, Красная – OpenMP.
матрица 1500x1500. Синяя - Последовательная версия, Красная – OpenMP.
Вторая серия экспериментов иллюстрирует, как использование различного числа потоков влияет на энергоэффективность. Архитектура современных процессоров устроена так, что распределение работы между ядрами процессора является более энергоэффективным, чем выполнение этой работы при использовании одного ядра. Результаты на графике:
Энергоэффективность параллельной реализации при различном числе потоков. Слева направо – 1 поток, 2 потока, 4 потока, 8 потоков. Всего ядер в системе было 4, поэтому на последнем графике видно некоторое отклонение в большую сторону.
Последняя серия экспериментов иллюстрирует влияние количества переходов между С-state-состояниями процессора на энергопотребление. Рассмотрим задачу, состоящую из нескольких независимых частей, которые можно запускать либо непрерывно друг за другом, либо с некоторыми паузами, что приводит к увеличению числа C-State-переходов. В результате видим, что в случае, когда задачи запускаются непрерывно друг за другом, энергопотребление уменьшается на 15%. Это показывает, что увеличение числа переходов между С-state-состояниями процессора приводит к росту энергопотребления. Таким образом, определенная группировка задач может привести к выигрышу в энергоэффективности приложений.
Влияние количества переходов между C-state состояниями. Красное - Непрерывный запуск задач, Синее - Запуск с паузами между задачами
В итоге, мы опять таки находим подтверждение следующим выводам:
-
Группировка приложений в виртуальной среде, а также виртуальных сервисов может привести к существенному выигрышу в энергоэффективности виртуальной машины.
-
Более эффективное использование ресурсов ведет к оптимизации энергопотребления.
Теперь найдем теоретическое обоснование полученным выводам, построив модель энергопотребления в виртуализованной среде, откуда получим теоретический вывод о том, что энергопотребление виртуальной машины напрямую зависит от выделения ресурсов (в данном случае ресурсов ЦП).
5.3. Математическая модель
Совокупность P и C состояний процессора обозначим соответственно:
Предполагая, что энергия, потребленная процессором, зависит только от его энергосостояний, получим:
- время, проведенное в состоянии
- энергия, потребленная за время T;
- энергия, потребленная во всех С-состояниях, начиная с
(ресурсы процессора).
В случае определения энергопотребления отдельного процесса, оно может быть представлено как общее энергопотребление центрального процессора помноженное на процент использования CPU отдельным процессом:
Теперь после рассмотрения математической модели энергопотребления возникает вопрос о консолидации виртуальных процессов в ВМ или виртуальных сервисов на серверах в кластере для уменьшения энергопотребления одной ВМ или всего дата-центра соответственно. Показана математическая формализация этой задачи. В работе далее будет показано, что это NP-трудная задача.
5.4. Оптимальное энергоэффективное распределение виртуальных процессов/сервисов по серверам, смоделированное многомерной задачей упаковки в контейнеры
Определение 1. - виртуальный сервис:
- требуемое кол-во циклов CPU (ресурсы процессора),
- требуемые ресурсы памяти, и т.д.
– множество n виртуальных сервисов
- 4-х мерный контейнер, представляющий собой сервер с ресурсом процессора -
, ресурсом памяти -
и т.д.
– множество серверов
– искомое распределение
Положим .
Пусть - энергопотребление сервера s (весовая функция),
– множество непустых контейнеров после распределения a.
Цель задачи упаковки найти такое распределение a, что:
-
вектор
соответствует s
-
Сумма весовых функций всех непустых контейнеров минимальна:
Чтобы показать NP-трудность этой задачи, сведем NP-полную задачу упаковки в контейнеры к данной задаче. Для начала сформулируем задачу упаковки в контейнеры:
Определение 2. Пусть множество из n элементов. Каждому элементу соответствует размер
Также пусть
– множество из m контейнеров, каждый из которых имеет один и тот же размер
. Цель задачи упаковки запаковать все элементы из I в наименьшее число контейнеров, так чтобы для каждого контейнера b было выполнено:
.
Теперь продемонстрируем само сведение. Пусть а – искомая функция из Определения 1. Для каждого i из множества I определим вектор с
Для каждого одноразмерного контейнера b определим d-размерный контейнер
,
обозначает длину ребра гиперконтейнера в i-ом направлении. Для каждого d-размерного контейнера s выберем функцию стоимости
содержимым для
.
может также быть записана как
Но в этом случае
и не зависит от числа непустых контейнеров. Поэтому, минимизация
эквивалентна минимизации произведения
, а значит и минимизации k, которое и обозначает число непустых контейнеров.
Заключение
В основе разработанного алгоритма лежит технология RAPL. Она является новейшей в классе технологий оценки и измерения энергозатрат. С помощью нее через специальные моделезависимые регистры и датчики на процессоре стало возможно получить информацию о количестве энергии, потребленной системой с момента запуска. Первым вопросом, возникающим при реализации RAPL интерфейса, является вопрос о месте размещения такого подмодуля. Можем выделить 3 основных контекста исполнения. В ходе анализа было выбрано размещение в контексте монитора виртуальных машин. С помощью чтения соответствующего MSR-а при переключении выбранных контекстов и происходит получение значения потребляемой энергии виртуальным окружением.
Для тестирование алгоритма на гостевой ОС запускались задачи с высокой энергонагрузкой (использовались нагрузочные тесты из пакета Linpack, редактирование видео и другие). Одновременно с исполнением задач, в мониторе по описываемому алгоритму определялось общее количества потребленной энергии. Результаты тестов сравнивались с результатами, полученными от профилировщика PowerTop, работающего в хостовой системе.
Так как тестовое приложение в основном загружало процессор, то результаты замеров должны были совпадать в пределах незначительной погрешности. При сравнении замеров видно, что разность между измерениями не превышает 1.5%, что указывает на достаточную точность измерений. Поэтому, измерения энергии по описываемому алгоритму, являлись достоверными.