Введение 5
1. Цели и задачи 7
2. Существующие подходы в области оптимизации энергопотребления 8
2.1. Регуляторы частоты ОС Android 8
2.2. Альтернативные подходы к оптимизации 12
2.2.1. Алгоритм поиска статей 12
2.2.2. Адаптивные алгоритмы 13
2.2.3. Машинное обучение 15
2.2.4. Предварительные вычисления 19
2.2.5. Выводы 21
3. Инфраструктура для загрузки алгоритмов DVFS 22
3.1. Xiaomi Redmi Note 8 Pro 22
3.2. Права суперпользователя 22
3.3. Особенности работы со сторонними ядрами и прошивками 23
4. Предлагаемый алгоритм DVFS 25
4.1. Стохастическая аппроксимация со случайными направлениями 25
4.2. Модель состояния системы 27
4.3. Алгоритм DVFS 28
5. Особенности реализации алгоритма 29
5.1. Поддержка многоядерности 29
5.2. Поддерживаемые настройки 30
6. Тестирование 31
6.1. Инструменты и критерии тестирования 31
6.2. Методология тестирования 32
6.3. Анализ результатов 35
Заключение
Список литературы
Мобильные устройства сегодня являются неотъемлемой частью жизни современного человека. Важной задачей является увеличение длительности автономной работы этих устройств, т.е. чтобы они работали как можно дольше от аккумулятора, без дополнительной подзарядки. Вместе с тем с каждым годом растет мощность мобильных устройств: появляются новые процессоры со всё большим числом ядер и со всё более сложными вычислительными модулями, которые потребляют значительную часть энергии для своей работы, что сильно снижает время автономной работы мобильных устройств.
Однако большинство прикладных задач, например, отрисовка меню, показ несложных анимаций, обработка очередного видео-кадра и т.д. не требуют таких мощностей. Поэтому очень важно научиться находить баланс между производительностью процессора и энергией, которую он реально потребляет для своей работы в настоящий момент.
Существует ряд исследований, которые показали, что энергопотребление процессора определяется следующим законом [7]: P ~ fu2, где P — мощность, потребляемая процессором, f— его частота и и — напряжение. Следовательно, меняя два этих параметра можно достичь искомого баланса между производительностью и энергопотреблением.
С этой целью в OC Android существует подсистема CPUFreq subsystem [20], которая предоставляет интерфейс для разработки сторонних алгоритмов по регулировке частоты и напряжения процессора. Эти алгоритмы принято называть алгоритмами DVFS (Dynamic Voltage and Frequency Scaling) или, что тоже самое, DVFS-регуляторами.
Таким образом, реализовав сторонний алгоритм DVFS, можно динамически определять оптимальное P-состояние (конфигурацию часто-ты и напряжения), в котором должен находиться процессор, для достижения наилучшего сочетания его производительности и энергоэффективности.
В операционной системе Android существует несколько реализаций подобных алгоритмов, однако, используемые в них подходы не оптимальны. Особенно это проявляется при работе с современными много-ядерными архитектурами. Также у некоторых из этих решений присутствуют и алгоритмические недостатки, например, частые смены сильно отличающихся друг от друга P-состояний, что приводит к существенным потерям энергии при переключении между ними и сильно снижает эффективность подобного подхода [35].
В связи с этим на протяжении последних нескольких лет проводится большое количество исследований более новых и современных подходов к разработке различных алгоритмов DVFS. Все они подразделяются на 3 большие группы: адаптивные алгоритмы [18, 15], машинное обучение [22, 3, 31] и алгоритмы, использующие предварительные вычисления для своей работы [16, 32].
Однако в данный момент не существует алгоритмов регулировки частот, которые базируются на использовании методов стохастической оптимизации. В тоже время подобные методы широко используются для решения схожих оптимизационных задач. Данная работа призвана восполнить этот пробел. Планируется разработать алгоритм регулировки частот процессора на базе стохастической аппроксимации со случайными направлениями. (Simultaneous perturbation stochastic approximation — SPSA [38, 17]).
1. Цели и задачи
Цель данной дипломной работы является разработка алгоритма DVFS с использованием стохастической оптимизации и его апробация на реальном мобильном устройстве.
Для достижения этой цели были сформулированы следующие задачи.
1. Провести обзор существующих подходов в области оптимизации энергопотребления.
2. Выбрать смартфон и создать инфраструктуру для загрузки алгоритмов DVFS.
3. Разработать новый алгоритм DVFS и реализовать его для ОС Android.
4. Сравнить полученный алгоритм с уже существующими алгорит-мами DVFS.
В рамках данной дипломной работы были достигнуты следующие результаты.
1. Проведен обзор существующих подходов к оптимизации энергопотребления, для этого:
— изучены регуляторы: Performance, PowerSave, UserSpace, Ondemand, Conservative и Interactive;
— рассмотрены современные подходы: адаптивные алгоритмы, алгоритмы машинного обучения и алгоритмы, использующие предварительные вычисления.
2. В качестве устройства для апробации выбран смартфон Xiaomi redmi note 8 pro, для него создана инфраструктура загрузки алгоритмов DVFS: собрано и прошито ядро, выбрана и установлена прошивка, поддерживающая установку сторонних ядер Android.
3. Разработан алгоритм DVFS с использованием стохастической оптимизации:
— создана модель, описывающая зависимость состояния смартфона от поступающей нагрузки и используемой им частоты;
— на базе модели реализован алгоритм стохастической аппроксимации и встроен в ядро ОС Android [11].
4. Проведено тестирование полученного DVFS-алгоритма по 5 тестовым случаям, как итог: предлагаемый алгоритм не уступает по эффективности таким популярным регуляторам как OnDemand и Interactive.