Программные измерители мощности для Microsoft Windows*

Для наиболее точного измерения показателей энергопотребления платформы принято использовать аппаратные измерители мощности. Существует множество моделей таких измерителей (например, NetDAQ Networked Data Acquisition Units компании Fluke или Yokogawa WT210), но не каждый может их себе позволить, да и необходимость использования такого рода устройств возникает довольно редко. Если вы занимаетесь разработкой программных приложений и стремитесь оптимизировать их с точки зрения потребления электроэнергии, можно использовать программный измеритель мощности.

В этой статье рассматриваются три программных измерителя для платформы Microsoft Windows (Intel® Power Gadget, Intel® Power Checker, а также Joulemeter выпущенный лабораторией Microsoft® Research). Каждый из них собирает разные данные. Эта статья поможет разработчикам, не имеющим доступа к внешнему аппаратному измерителю мощности, понять, как работает каждый из описываемых программных измерителей, и как их использовать в цикле оптимизации ПО.

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

Intel® Power Gadget 2.0

Intel® Power Gadget 2.0 — это программный измеритель мощности для процессоров Intel® Core™ второго поколения. В его состав входит гаджет для Microsoft Windows*, драйвер и библиотеки для отслеживания показателей потребляемой мощности процессора (в Вт) с помощью счетчиков электроэнергии, встроенных в процессор. Цель гаджета — помочь конечным пользователям, поставщикам программ, OEM-производителям, разработчикам и т.п. получить более точную информацию о потребляемой мощности программными средствами, без использования дополнительной аппаратуры. Среди дополнительных функций — измерения потребляемой мощности многопроцессорными системами, а также вызываемые извне API для извлечения данных о потребляемой мощности в коде.

Использование

После установки Intel Power Gadget на панели гаджетов Windows® 7 появляется гаджет, отображающий потребляемую мощность процессора при обработке какой-либо нагрузки или в режиме бездействия. Для гаджета в меню Options (Параметры) настраиваются два параметра: Sampling Resolution (частота выборки, мс) и Max Power (максимальная мощность, Вт). Можно начать записывать данные гаджета, выбрав расположение и имя CSV-файла в меню Options, нажав кнопку Start Log (Начать ведение журнала). По завершении записи данных нажмите кнопку Stop Log (Завершить ведение журнала). CSV-файл с данными будет находиться в указанном расположении.

Данные показателей

Графический пользовательский интерфейс программы Intel Power Gadget предоставляет графическое отображение мощности процессора (Вт) и тактовой частоты (МГц) в реальном времени. На экране отображаются данные за последние 110 секунд.

В файле журнала в формате CSV содержатся следующие столбцы: System Time (системное время в каждый момент измерения), RDTSC (счетчик штампа времени чтения — количество циклов с момента подачи питания на ЦП или его сброса), CPU Frequency (частота ЦП в МГц), Package Power (потребляемая мощность, Вт). Два последних столбца дублируются для каждого процессорного гнезда в системе. В системе с одним процессорным гнездом будет один столбец с частотой ЦП и один с мощностью. В заголовке столбца будет указано гнездо, для которого получены данные. В последней строке файла будет указано значение общей потребленной энергии процессора (мВт-ч).

Требования к системе

Для использования Intel Power Gadget тестовая платформа должна быть оборудована одним или несколькими процессорами Intel® Core второго поколения. Предыдущие поколения и семейства процессоров не поддерживаются. Поддерживаются операционные системы Microsoft Windows* 7 (32-разрядная или 64-разрядная версии), Microsoft Windows* Server 2008 и Microsoft Windows* Server 2008 RC2 (64-разрядные серверные платформы). Кроме того, потребуется установить пакет Microsoft* .Net Framework 4 и распространяемый пакет Microsoft Visual C++ 2010 с пакетом обновления 1 (SP1), версия для архитектуры x86 или x64 в зависимости от ОС. Наличие двух последних пакетов проверяется при установке; при их отсутствии они будут загружены и установлены.

Ссылка для загрузки

Ссылки для загрузки см. в статье «Intel® Power Gadget 2.0» (/en-us/articles/intel-power-gadget).

Прочие вспомогательные ссылки

Блог “Accessing Intel® Power Gadget 2.0 library in C++” в IDZ описывает использование API Intel Power Gadget и библиотек из кода C++.

Intel® Power Checker

Средство Intel® Power Checker дает возможность быстро и просто измерить потребляемую мощность приложений в режиме бездействия на мобильных платформах с процессорами Intel® Core™ и Intel® Atom™. С помощью Intel Power Checker можно измерить потребляемую мощность любого скомпилированного приложения (особенно если оно предназначено для работы на системах Intel®), в том числе приложений Java. Программу можно использовать как вместе с поддерживаемым внешним измерителем мощности, так и без него.

Intel Power Checker версии 2.0 поддерживает измерение мощности при работесистемы от аккумулятора и от электросети. Внешнее измерение мощности поддерживается только для процессоров Intel® Core второго поколения (требуется программа Intel Power Gadget).

Использование

В программе Intel Power Checker предоставлен графический пользовательский интерфейс с мастером, помогающим выполнить анализ потребляемой мощности за 4 шага. Эти 4 шага описываются ниже. Но перед началом измерения проверьте, какой именно фрагмент приложения или нагрузки нужно измерить, поскольку Power Checker проводит измерения только в течение 30 секунд. В качестве измеряемой нагрузки можно использовать ресурсоемкие вычисления или же какой-либо этап работы программы, который можно считать типовым для ее предполагаемого использования.

Шаг 1. Выбор аппаратного измерителя мощности

Если к системе подключен внешний измеритель мощности, но на первом экране мастера можно выбрать его модель. По умолчанию предполагается, что внешнее устройство не используется. В этом случае программа Intel Power Checker определит, способна ли система предоставлять данные о потребляемой мощности, а также установлен ли нужный драйвер EzPwr.sys. (Этот драйвер устанавливается по умолчанию вместе с Intel Power Gadget)

Шаг 2. Измерение базового уровня.

На следующем экране мастера Intel® Power Checker выполнит первое измерение. Цель — измерить базовый уровень потребляемой мощности оборудования, пока ваше приложение еще не запущено. На этом этапе необходимо отключить все ненужные процессы: обновление ОС, службу индексирования, антивирусы, проигрыватели мультимедиа, веб-браузеры.

Закрыв все ненужные программы и процессы, нажмите кнопку Start, чтобы приступить к измерению. В программе Intel Power Checker предусмотрена 15-секундная задержка, в течение которой вы можете отодвинуть клавиатуру и мышь таким образом, чтобы случайно до них не дотрагиваться, и система могла бы перейти в состояние полного бездействия, необходимое для измерения. После этой задержки программа будет измерять уровень потребляемой мощности системы в состоянии бездействия в течение 30 секунд. Индикатор хода выполнения покажет, сколько времени осталось до завершения этого этапа. По завершении измерения базового уровня нажмите кнопку «Далее», чтобы перейти к следующему этапу.

Шаг 3. Измерение активного приложения

Мастер предложит запустить приложение, которое нужно измерить. Сделав это, нажмите кнопку Refresh List (Обновить список), чтобы процесс этого приложения появился в списке. С помощью полосы прокрутки найдите нужное приложение в списке процессов и щелкните его, чтобы его выбрать. Затем нажмите кнопку «Далее», чтобы начать измерение мощности.

Перед началом измерения убедитесь, что ваше приложение находится в нужном для измерения состоянии. Если в приложении применяются какие-либо начальные вычисления, для которых не нужно измерять мощность, необходимо пропустить их, и лишь затем приступать к измерению. После запуска нагрузки приложения нажмите кнопку «Start», чтобы начать измерение. Всегда начинайте измерение после запуска нагрузки или важной части программы; убедитесь, что эта нагрузка проработает дольше 30 секунд, чтобы измеренные данные были точными.

Шаг 4. Измерение приложения в режиме бездействия

На заключительном этапе измеряется потребляемая мощность бездействующего приложения. После перехода приложения в состояние бездействия измеритель выдержит 15-секундную задержку, чтобы система успела «успокоиться», а затем в течение 30 секунд будет измерять потребляемую мощность.

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

Данные показателей

На экране View Results мастера Intel Power Checker отображаются основные сведения об измерении. Указывается тип процессора, тип и модель используемого источника питания. Для каждого из трех этапов измерений предоставляются значения 4 показателей. Вот они:

  • Elapsed Time: Точное время (с) продолжительности каждого этапа.
  • Energy Consumption: Степень разрядки аккумулятора в течение каждого из трех этапов.
  • Average C3 State Residency: Средний процент времени, в течение которого система находилась в состоянии С3 в ходе сбора данных.
  • Platform Timer Period: Время сбора данных таймера платформы (мс)

Требования к системе

Intel Power Checker можно использовать на ноутбуках и нетбуках с процессорами Intel® Core™ и Intel® Atom™. Также можно провести анализ на настольном ПК с внешним измерителем мощности или на настольном ПК, способным предоставить данные о потреблении электроэнергии. Для запуска анализа требуется среда выполнения Java* (JRE) версии 6 с обновлением 11 или более поздней версии. Поддерживаются операционные системы Microsoft Windows*XP с пакетом обновления 3 (SP3), Microsoft Windows Vista* с пакетом обновления 2 (SP2), Microsoft Windows 7 с пакетом обновления 1 (SP1), 32-разрядная или 64-разрядная, а также Microsoft Windows Server 2008 R2.

Ссылка для загрузки

Загрузить установочный пакет Intel Power Checker можно по ссылке:

/partner/app/software-assessment. Перейдите на вкладку Intel Power Checker и перейдите ниже к ссылке для загрузки.

Прочие вспомогательные ссылки

Видеоролик с демонстрацией использования Intel Power Checker под названием «A Look at Intel Power Checker» см. по ссылке: /en-us/videos/channel/intel-software-partner-program/a-look-at-the-intel-power-checker/1127786023001. Дейв Валдовинос (Dave Valdovinos) и Тэйлор Кидд (Taylor Kidd), специалисты корпорации Intel, показывают работу мастера и измерение мощности игрового приложения.

Joulemeter

Joulemeter — это проект Microsoft Research. Это средство моделирования для измерения электроэнергии, потребляемой виртуальными машинами, серверам, настольными ПК, ноутбуками и даже отдельными приложениями. Измеряется влияние отдельных компонентов (ЦП, экран, память) на общий расход электроэнергии. Одним из преимуществ Joulemeter является способность измерения потребления электроэнергии программными компонентами, в том числе виртуальными машинами, которые не имеют аппаратного интерфейса, а потому применять аппаратный измеритель мощности для них невозможно.

Использование

Перед измерением потребляемой мощности определенной программы Joulemeter должно провести калибровку, чтобы настроиться на параметры оборудования тестовой системы (ЦП, диск, память, экран и пр). Калибровка запускается, когда аккумулятор устройства в достаточной степени заряжен, система находится в состоянии бездействия и работает от аккумулятора. Это займет 15–20 минут, причем в ходе калибровки может меняться яркость экрана. На этом этапе будет определен базовый уровень потребления электроэнергии оборудованием тестовой системы.

После завершения калибровки можно измерять потребляемую мощность приложений с помощью вкладки Power Usage. После нажатия кнопки Start будет отлеживаться мощность ЦП, потребляемая приложением. После измерения или завершения работы приложения нажмите кнопу Stop, чтобы прекратить измерение. Показатели измерений будут записаны в CSV-файл (нужно выбрать расположение файла и ввести его имя, нажав кнопку «Обзор»). Кнопки Start Saving и Stop Saving предназначены для начала и окончания записи данных в указанный файл.

Данные показателей

На вкладке Power Usage приводится текущее использование электроэнергии всеми компонентами: ЦП (выше базового уровня), монитором, дисков, базовое (в состоянии бездействия), а также указывается суммарное потребление. Данные обновляются через каждую секунду. Значения указаны в Вт.

В CSV-файле журнала содержатся столбцы, соответствующие показателям в окне Joulemeter. Также в файл добавляются дополнительные столбцы: Time Stamp (штамп времени, мс) и Application usage in Watts (потребляемая мощность приложения, Вт). Значения в последнем столбце входят в состав значений для ЦП, но получены только для одного отслеживаемого приложения.

Требования к системе

Список каких-то определенных требований для Joulemeter мне не приходилось видеть, но эту программу запускали под управлением операционных систем Microsoft Windows 7 и Windows Server 2008 R2. Программа Joulemeter успешно работала в системах со следующими процессорами: Intel® Core® i5-2540M, Intel® Xeon® L5520 и Intel® Core® 2 Duo T7500.

Ссылка для загрузки

Программу Joulemeter можно загрузить на домашней странице на сайте Microsoft Research под названием «Joulemeter: Computational Energy Measurement and Optimization»: http://research.microsoft.com/en-us/projects/joulemeter/default.aspx.

Прочие вспомогательные ссылки

Основные принципы работы технологий измерения мощности см. в статье Virtual Machine Power Metering and Provisioning. Несколько случаев использования приведены в исследовательских публикациях на домашней странице Microsoft Research Joulemeter.

Заключение

Даже если у вас нет измерителя мощности или вы не можете позволить себе его приобрести для измерения потребляемой мощности разрабатываемых вами программ, можно использовать программные решения. В этой статье мы описали три таких решения, предназначенные для Microsoft Windows. Каждое решение обладает разными возможностями, разными требованиями к системе, и отслеживает потребление электроэнергии разными программными и аппаратными компонентами. Для наиболее эффективного и точного использования любых описанных средств рекомендуем ознакомиться с соответствующей документацией.

Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.