Инженер в области робототехники и машинного обучения разработал командный интерфейс (CLI), который контролирует энергопотребление через умную розетку и настраивает производительность системы в соответствии с тарифами на электроэнергию.
Простой инструмент под названием WattWise появился, когда разработчик Навин собрал рабочую станцию с двумя процессорами AMD EPYC и планировал добавить четыре графических ускорителя. Поскольку такая система потребляет много энергии, он хотел контролировать ее потребление с помощью розетки Kasa Smart Plug.
В настоящее время Навин выложил в открытый доступ только часть проекта, отвечающую за мониторинг, а функцию управления частотами процессора и потребляемой мощностью планирует добавить позже.
К сожалению, стандартное приложение Kasa Smart и панель Home Assistant оказались неудобными и не выполняли всех необходимых функций. Поскольку Навин уже использовал терминал для мониторинга через htop, nvtop и nload, он решил создать собственный инструмент вместо того, чтобы пользоваться еще одной программой.
Он разработал терминальную программу, которая получает данные о потреблении энергии через Home Assistant и TP-Link. Она отображает текущую нагрузку в реальном времени (в ваттах и амперах), строит исторические графики потребления и, самое главное, автоматически ограничивает производительность процессора и видеокарты.
Энергопоставщик Навина использует дифференцированную тарификацию, когда электроэнергия в часы пик стоит значительно дороже. Его рабочая станция потребляет до 1400 Вт на полной нагрузке, но снижение частоты процессора с 3,7 ГГц до 1,5 ГГц позволяет сократить потребление примерно на 225 Вт.
Об ограничении производительности видеокарт в проекте пока не упоминается, хотя снижение их частоты GPU могло бы обеспечить еще большую экономию для четырех видеокарт.
Программа оптимизирует тактовую частоту на основе трех параметров:
Далее используется PI-регулятор (Пропорционально-интегральный контроллер) для управления питанием и адаптации системных параметров в соответствии с этими переменными.
Сейчас WattWise поддерживает только одну умную розетку одновременно и работает только с брендом Kasa. Однако Навин планирует добавить поддержку нескольких розеток, интеграцию с другими брендами смарт-розеток, сотрудничество с другими инструментами управления энергопотреблением и дополнительные функции оптимизации производительности.
Навин сделал WattWise открытым проектом под лицензией MIT, поэтому любой может скачать код с GitHub. Если вам интересно, вы можете оставить обратную связь, предложить улучшения или создать собственную версию, адаптированную для других систем.
Обратите внимание, что текущая версия содержит только интерфейс мониторинга, а функция автоматического регулирования производительности все еще находится в разработке.
Сейчас WattWise — это довольно простой инструмент, но часто именно простые решения являются наиболее эффективными.
Источник: tomshardware