Ultrabook™ и Intel® Energy Checker SDK

Аннотация

С появлением платформы Ultrabook™, вырос спрос на приложения, отличающиеся высокой энергоэффективностью. Intel® Energy Checker SDK можно использовать в разработке приложений для сбора данных о том, какие компоненты потребляют больше всего электроэнергии и нуждаются в оптимизации. В этой статье описывается Intel Energy Checker SDK и рассматривается его использование при оптимизации энергопотребления в ультрабуках.

Большая производительность при меньшем энергопотреблении

Для ультрабуков большое значение имеет экономный расход электроэнергии, благодаря которому продлевается срок работы устройства от аккумуляторов. Поэтому пользователю предпочтительно использовать более энергоэффективные приложения. Зачастую разработчики приложений создают свои программы на настольных ПК, где показатели потребления электроэнергии намного менее существенны, чем производительность. Тем не менее, теперь приложения следует разрабатывать придерживаясь алгоритмов одинаково энергоэффективных и в режиме активной работы, и в состоянии простоя: если не обращать внимания на вопросы потребления энергии, запуск программы на ультрабуке может обернуться для пользователя неприятной неожиданностью. Для оптимизации энергоэффективности программ, разрабатываемых для ультрабуков, полезно использовать средства анализа, такие как Intel® Energy Checker SDK.

Энергоэффективность

Перед рассказом о содержании Energy Checker SDK следует поговорить о понятии энергоэффективности (ЭЭ). Этот термин широко используется в Intel Energy Checker SDK. Повсеместно принятого определения ЭЭ не существует, но в этой программе используется следующее определение:

ЭЭ=Работа/Энергия

Под понятием «работа» определяется объем «полезной работы», выполненной программным приложением. Простого, четкого и однозначного определения термина «полезная работа» также не существует; то, что считается «полезной работой» в одной программе, может не считаться этим в другом приложении. Решение остается за разработчиком. Например, можно считать работу определенных компонентов программного видеопроигрывателя, выполняющих какую-либо работу для пользователя (например, декодирование видео), полезной работой, а действия других компонентов (получающих доступ к ресурсам, ожидающих ввода, выполняющих синхронизацию) не будут считаться полезной работой.

Подготовка кода к анализу

Первым шагом использования Intel Energy Checker SDK для определения ЭЭ приложения является создание и применение «счетчиков» в программе, определяющих объем «полезной работы». Счетчик - это 64-разрядная (8-байтовая) переменная, в которой хранится количество возникновений определенного события. На языке программирования C для этого используется тип данных unsigned long. Разработчик может создать один или несколько счетчиков в ходе инициализации программного обеспечения. После этого можно создать контейнер для счетчиков, называемый «Productivity Link» (PL). Каждое PL может содержать до 512 счетчиков, одновременно может быть открыто до 10 разных PL, но для большинства программ будет достаточно гораздо меньшего числа счетчиков и PL.

Во время выполнения можно записывать значения в любой счетчик в PL на основе требований разрабочтика. SDK Intel Energy Checker может собирать информацию из PL для определения объема выполненной работы.

Потребляемая энергия

Вторым этапом расчета ЭЭ программного приложения является измерение объема энергии, израсходованной при работе программы. Для этого в Intel Energy Checker SDK применяются два средства, входящие в пакет SDK: Energy Server (ESRV) и Temperature Server (TSRV). ESRV используется для отслеживания потребления электроэнергии по данным внешних измерительных устройств, а TSRV отслеживает показатели температуры по данным термодатчиков. Доступ к счетчикам ESRV и TSRV возможен с помощью любой программы посредством интерфейса API Intel Energy Checker. Помимо счетчиков, определяющих объем работы, разработчикам следует добавить счетчики, собирающие информацию ESRV и, возможно, TSRV. Существует три возможных способа использования ESRV:

  1. Использование измерителя мощности для сбора фактических данных о потреблении электроэнергии платформой.

    Использование измерителя мощности для сбора фактических данных о потреблении электроэнергии платформой Intel® Energy Checker SDK page.
  2. Используйте Intel® Power Gadget для сбора информации об энергопотреблении ЦП для процессоров семейства Intel Core™ 2-го поколения. Вместе с программой Intel Power Gadget, собирающей данные об энергопотреблении процессора, можно использовать внешние измерители мощности, измеряющие расход электроэнергии всей платформой. В блоге под названием «Accessing Intel® Power Gadget From Intel® Energy Checker SDK» рассматривается применение Intel® Power Gadget вместе с Intel® Energy Checker. Автор блога - инженер компании Intel Джун де Вега (Jun De Vega).
  3. Выберите метод моделирования, который будет использовать значение процента загрузки ЦП, возвращаемое операционной системы. Для этого метода не требуются аппаратные зонды и датчики. В пакете SDK Intel Energy Checker этот способ предлагается в качестве допустимого для всех процессоров (а не только для семейства процессоров Intel Core 2-го поколения, как в случае с Intel Power Gadget), если пользователь не располагает измерителем мощности. В состав SDK входит вспомогательная библиотека для доступа к этому показателю.



Рисунок 1: Схема использования Intel Energy Checker c приложением (в котором реализованы необходимые счетчики), с подключенным измерителем мощности и зондами внешних условий (с термодатчиками)

Дополнительные компоненты Intel Energy Checker

В состав Intel Energy Checker SDK, помимо уже упомянутых средств, входят еще две вспомогательные программы. PL GUI Monitor - это пользовательский интерфейс, отображающий счетчики PL в запущенной программе, совместимой с API Intel Energy Checker. PL CSV Logger3 - это приложение, собирающее и записывающее показатели счетчиков PL в CSV-файл для дальнейшего анализа в программах обработки электронных таблиц.

В состав Intel Energy Checker SDK входит руководство пользователя Intel® Energy Checker SDK Companion Application User Guide, описывающее возможности и функции обеих этих программ.



Рисунок 2: Запуск PL GUI Monitor при отрисовке изображения

Полный набор Intel Energy Checker SDK включает прочие средства для сборки, создания сценариев, взаимодействия и отслеживания, помогающие разработчикам добавлять счетчики в код и собирать показатели энергоэффективности.

С сайта SDK можно загрузить статью под названием «How Green Is Your Software?». В ней обсуждаются различные подходы к повышению энергоэффективности программного обеспечения. Эта статья находится в разделе “Code, Resources and Documentation” на странице Intel Energy Checker SDK page. Также могут быть полезными заметки в блогах, посвященные Intel Energy Checker, которые написал инженер Intel Джамель Тайеб (Jamel Tayeb):

Using the Intel® Energy Checker SDK at Home

Creating a Simple Device Library for Intel® Energy Checker SDK

Measuring the energy consumed by a command using the Intel® Energy Checker SDK

Оптимизация приложений для ультрабуков

После оснастки кода программы необходимыми счетчиками и реализации плана сбора энергии (с помощью моделирования или измерителя мощности) разработчик сможет собирать информацию о том, как приложение расходует электроэнергию, и применять необходимые меры для оптимизации.

Разработчики приложений для ультрабуков могут работать над оптимизацией потребления электроэнергии в различных областях.

Рассмотрите возможность доработки приложения таким образом, чтобы оно учитывало используемый источник электропитания и переходило в режим пониженного потребления электроэнергии, когда система работает от аккумуляторов.

Проверьте возможности управления электропитанием оборудования и программ, чтобы добиться сбалансированной настройки параметров электропитания. Рекомендованные параметры электропитания можно указать в документации к приложению.

Стремитесь сокращать потребление электроэнергии, когда приложение находится в режиме активной работы. Оптимизировать компоненты программы с наивысшей вычислительной нагрузкой можно с помощью применения многопотоковой обработки и векторных вычислений.

Сокращайте потребление электроэнергии, когда приложение находится в состоянии простоя. Например, можно снизить частоту обновления таймера или настроить периодические действия таким образом, чтобы они все выполнялись в один и тот же период пробуждения системы.



Выводы

Вместе с растущей популярностью ультрабуков растет потребность в приложениях, экономно расходующих электроэнергию. Intel Energy Checker SDK предоставляет разработчикам возможность выявить основные компоненты приложений, нуждающиеся в оптимизации с точки зрения потребления электроэнергии, и проверить эффективность примененных мер по оптимизации. И да здравствуют ультрабуки!

Tag:
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione