<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Оптимизация вычислений по электропотреблению</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>I. Zacharov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>O. Panarin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Skolkovo Institute of Science and Technology Skolkovo Innovation Center</institution>
          ,
          <addr-line>3 Nobel Street, Moscow 121205</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <fpage>230</fpage>
      <lpage>237</lpage>
      <kwd-group>
        <kwd>High Performance Computing</kwd>
        <kwd>Energy Efficiency</kwd>
        <kwd>DVFS</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>В высоконагруженных вычислениях (ВВ) традиционно внимание
уделялось методам решения оптимизированных по времени решения задачи.
При этом полностью игнорировался аспект использования электроэнергии для
получения этого решения.</p>
      <p>В современных центрах обработки данных (ЦОД) и центрах
коллективного пользования потребление электроэнергии играет существенную
роль в оперативных расходах центров. Так же, потолок поставляемой
электроэнергии ограничивает вычислительную мощность установленных
устройств.</p>
      <p>
        Энергия, потребляемая вычислительными устройствами, является
основным параметром оптимизации вычислительного процесса и
предоставляемых услуг в интернете. Исследование ЦОД Google [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] показало,
что сервера в комьютерном центре в среднем работают при 10-50% загрузки.
Хотя электропотребление уменьшается при уменьшении нагрузки, это
уменьшение не прямо пропорционально уменьшению нагрузки, и сервера
потребляют до 50% пиковой мощности, не производя никакой вычислительной
работы. Разработаны методы борьбы с этим явлением, включающим
виртуализацию серверов [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. При этом множество сервисов консолидируется на
одном физическом сервере, увеличивая утилизацию и соответственно
энергоэффективность.
      </p>
      <p>
        Такое направление развития не удовлетворяет требованиям ВВ и даже
требованиям обработки баз данных. Для последних, так же характерно условие
увеличения энергоэфективности при увеличении производительности [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], что
идет вразрез с консолидацией сервисов на одной физической платформе.
      </p>
      <p>Оптимизация приложений по энергопотреблению и по скорости
вычислений особенно важны на мобильных платформах. Скорость вычислений
критична для обработки данных на автономных автомобилях и в то же время на
таких платформах есть серьезное ограничение по потребляемой электрической
мощности. В частности, эксперименты с оптимизацией процесса ввода/вывода
проведенные в данном исследовании диктовались требованиями мобильных
приложений.</p>
      <p>Для обеспечения энергоэффективности ВВ предлагается путь увеличения
эффективности самих вычислений. Для этого проводятся исследования
эффективности вычислений как функции потребляемой энергии. В данной
статье приведено отдельное исследование высокопроизводительной записи
данных, являющейся компонентом многих вычислительных пакетов и систем
анализа Больших данных а так же системы оперативной памяти.
Утилизация процессоров и Энергоэффективность вычислений
Высоконагруженные вычисления имеют повышенные требования к
производительности компьютера и при выполнении ВВ компьютер загружен
полностью. Это можно охарактеризовать уровнем утилизации (U), который
Ttot:
при этом в операционной системе (ОС) Linux время простоя и другие
характеристики, накопленные с начала запуска системы, регистрируется ОС в
метрике /proc/stat.</p>
      <p>
        Полная утилизация не означает, что вычисления обладают высокой
степенью эффективности, в частности по потреблению электроэнергии.
Эффективность потребления электроэнергии (ЕЕ) выражается через
произведенную работу:
(1)
(2)
при этом Работа приложения характеризует колличество произведенных
операций и Скорость приложения - колличество операций в секунду,
соответственно. Так для ВВ с плавающей точкой скорость выражается через
Flop/s, а мощность измеряется в Ваттах. По этой метрике для бенчмарка
Linpack составляется список наиболее экономных систем Green 500 [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], где
первое место на ноябрь 2017 года занимает японская система "Shoubu system B"
со значением 17 GFlops/W. Для ВВ не ориентированных на операции с
плавающей точкой Скорость приложения может характеризоваться в других
единицах. На пример HPCC RandomAccess измеряет "global updates per second"
(GUPs) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], а GRAPH500 измеряет "traversed edges per second" (TEPS) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        Управление энергопотреблением осуществляется через установку рабочей
частоты процессоров с механизмом динамической зависимости DVFS. Это
возможно на всех типах процессоров Intel (автоматически и командой
cpufreqset) и графических процессорах Nvidia (автоматически и командой nvidia-smi).
Так система настройки потребляемой мощности процессора Intel RAPL
допускает регулировку в широких пределах [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Подстройка тактовой частоты
из операционной системы осуществляется соответствующим планировщиком
по показанию загруженности системы через череду значений таблицы (P-states)
связывающей частоту и рабочее напряжение по данным производителя. Однако
эта регулировка не охватывает другие подсистемы, такие как оперативная
память, системы хранения, сети и т.д., которые могут потреблять до 50% всей
поставляемой мощности. Управление этими ресурсами требует отдельного
исследования.
      </p>
      <p>Для представленой работы использовалась рабочая станция с одним
процессорм Intel E3-1281 и графической картой Nvidia GX1050. Это
оборудование было выбрано из-за удобства использования интегрированного
датчика энергопотребления и для отработки методов измерения эффективности
вычислений на всех устройствах, как то процессор, графическая карта и
системы хранения. Основные параметры потребления рабочей станции
приведены в таблице:
Устройство / Потребление
1 x Intel E3-1281 (4 cores), 0.7 - 3.7 GHz DVFS
Nvidia GTX 1050
2 x NVMe SSD storage
Mellanox ConnectX-4 card
Board и преобразователи энергии
Total
Колонки min и max показывают разброс параметров потребления без
нагрузки и при полной нагрузке соответственно. В данной работе не
исследовалось управление потреблением периферийных устройств, так как эта
работа запланирована на более поздний срок, и внимание уделено только
управлению энергопотреблением процессора изменением тактовой частоты. .</p>
      <p>Зависимость полной потребляемой мощности от частоты процессора
исследовалась с использованием регистров процессора RAPL и
интегрированного датчика потребления всего компьютера. Результаты
показаны на рис. 1.</p>
      <p>Рис. 1. Зависимость потребляемой мощности от рабочей частоты процессора.
Синий график (Cortex) показывает общее потребление всего компьютера.</p>
      <p>Когда компьютер не нагружен (утилизация равна нулю) процессор имеет
дополнительные ступени ожидания, опускающие потребление вычислительных
ядер почти до нуля. Потребление пакета, состоящего из различных
преобразователей энергии, процессора и памяти, спускается до 9 W (из них
память потребляет 4.5 W), независимо от выставленной частоты. Этот режим
обозначен на рис. 1. При частоте 700 МГц и утилизации 100% процессорные
ядра потребляют 7 W, весь пакет потребляет 19 W. С этого режима потребление
процессорных ядер плавно увеличивается с увеличением частоты, что видно на
рис. 1.</p>
      <p>Хотя процессорная мощность варьируется средствами DVFС (тактовой
частотой процессора) в пределах 9-92 W, для потребления всей рабочей
станции эта вариация составляет только 54 W (см. "Dynamic range" на рис. 1) из
за того, что потребление всего компьютера не опускается ниже определенного
порога задаваемого нерегулируемыми компонентами.. Таким образом диапазон
управления энергопотреблением процессора составляет только от 19% до 36%
потребления всего компьютера если включены или не-включены
периферийные устройства в расчет.
Рис. 2. Утилизация процессора и скорость записи на внешний носитель
как функция рабочей частоты исполняющего процессора.</p>
      <p>Оптимизация выполнения задания по времени требует максимальной
скорости записи. Сама скорость записи зависит от производительности
внешнего устройства (макс. 4.4 ГБ/с). Как описано выше, в данном алгоритме
программа формирует список буферов и блокируется в ожидании отчета о
записи. Скорость формирования списка зависит от рабочей частоты процессора
и для оптимальной работы должна соответствовать времени получения отчета о
записи, что бы время блокировки было минимальным.
На ординате справа (рис. 2) показана скорость записи и красная кривая
(обозначенная "write RAID-0") растет пропорционально частоте процессора до
отметки 1.8 ГГц. На этой отметке скорость записи достигает максимума. При
этом утилизация (ордината слева) максимальна и на данной отметке снижается
до 95%, т.е. в таком режиме процессор успевает сформировать список, в то
время как периферийное устройство записывает переданные раньше буфера, и
время блокировки оказывается минимальным.</p>
      <p>В таком режиме общее потребление компьютера оказывается около
100 W и приложение записи данных оптимизированно как по времени, так и по
энергоэффективности.</p>
      <p>В ходе эксперимента было установленно, что по умолчанию
Операционная система поднимает частоту процессора до максимальных
значений когда запускается программа пользователя, хотя это не обязательно
для достижения максимальных характеристик производительности.</p>
      <p>
        В данном эскперименте для автоматической регулировки частоты можно
было ориентироваться на показатель утилизации. В современных ядрах Линукс
(начиная с 4.0) есть возможность выбора планировщика, который учитывает
утилизацию процессора и регулирует тактовую частоту по этой характеристике
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Этого, однако, недостаточно для общего случая программ, активно
использующих процессор. Процессор не будет находится в режиме ожидания,
если ему предложена дополнительная нагрузка, а запись данных может идти в
фоновом режиме. При определении оптимальной частоты работы процессора
должны учитываться скорости по метрике определяемой конкретным
приложением.
      </p>
      <p>Рис. 3. Электрическая мощность и скорость доступа к памяти по замеру теста
Triad из пакета STREAMS как функция тактовой частоты процессора.
График производительности теста STREAMS Triad:
показывает (см. рис. 3), что 99% производительности памяти достигается при
частоте 1.7 ГГц и не требует полной тактовой частоты процессора.В данном
эксперименте было показано, что регулировка тактовой частоты должна
производиться по характеристике Скорости приложения (см. уравнение 2),
экономя при этом электроэнергию.</p>
      <p>Для интерпретации полученных результатов были произведены замеры
вычислений Triad в ситуации, когда вычисления производились из данных в
регистрах процессора. В таком случае скорость вычислений прямо
пропорциональна тактовой частоте процессора, т.к. полностью независимы от
периферийных устройств.</p>
      <p>К интерпретации полученных результатов следует добавить, что есть
возможность управлять потреблением процессора через установку тактовой
частоты, но потребление других компонент может зависеть от нагрузки и не
регулируется из Операционной системы. Так, потребление системы памяти
(DIMMS) в эксперименте составляла 10-16 Ватт, системы хранения данных
NVMe на которые записываются данные около 50 Ватт, система графической
обработки 35 Ватт (в режиме ожидания, т.к. ГПУ не использовалась в
эксперименте).
Заключение
В работе показан метод оптимизации вычислительного устройства по
времени (скорости) записи на внешний носитель, доступа к оперативной
памяти и по энергоэффективности. Метод использует скалирование рабочей
частоты процессора при неизменной характеристике выполняемой задачи. Это
только часть нашего исследования по увеличению эффективности
Высоконагруженных вычислений по времени выполнения задания и по
энергоэффективности.</p>
      <p>При практическом применении данного подхода необходимо разработать
метод определения характеристики задачи, которая должна быть соблюдена
при установлении тактовой частоты процессора.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>L.A.</given-names>
            <surname>Barroso</surname>
          </string-name>
          , U. Holzle,
          <article-title>The Case for Energy-Proportional Computing</article-title>
          , Computer Vol.
          <volume>40</volume>
          Issue
          <issue>12</issue>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Jin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <article-title>Energy efficiency and server virtualization in data centers: An empirical investigation</article-title>
          ,
          <source>IEEE Xplore 03 May 2012 DOI: 10.1109/INFCOMW</source>
          .
          <year>2012</year>
          .6193474
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>D.</given-names>
            <surname>Tsirogiannis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Harizopoulos</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Shah, Analyzing the Energy Efficiency of a Database Server</article-title>
          , SIGMOD'
          <fpage>10</fpage>
          ,
          <string-name>
            <surname>June</surname>
          </string-name>
          6-11,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>4. https://www.top500.org/green500/list/2017/06/</mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>5. http://icl.cs.utk.edu/hpcc/</mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>6. https://graph500.org/</mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Intel 64 and IA-32
          <source>Architectures Software Developer's Manual</source>
          , Vol.
          <volume>3B</volume>
          :
          <article-title>System Programming Guide, Part 2</article-title>
          , https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia32
          <article-title>-architectures-software-developer-vol-3b-part-2-manual</article-title>
          .pdf
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>McCalpin</surname>
            ,
            <given-names>John D.</given-names>
          </string-name>
          ,
          <year>1995</year>
          :
          <article-title>"Memory Bandwidth and Machine Balance in Current High Performance Computers"</article-title>
          ,
          <source>IEEE Computer Society Technical Committee on Computer Architecture (TCCA) Newsletter</source>
          ,
          <year>December 1995</year>
          . Available at: http://www.cs.virginia.edu/stream/
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>9. https://www.kernel.org/doc/html/v4.14/admin-guide/pm/cpufreq.html</mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>