СПОСОБ ОЦЕНКИ ЭНЕРГОПОТРЕБЛЕНИЯ ВЫЧИСЛИТЕЛЯ
METHOD OF ESTIMATING COMPUTER POWER CONSUMPTION

Предлагаемое изобретение относится к способу определения количества потребленной электроэнергии нового разрабатываемого вычислителя.
Известен способ определения количества потребленной электроэнергии компьютера, описанный в патенте RU 2436144 C2, от 10.11.2011. В данном патенте предлагается определять текущее количество потребляемой электроэнергии для перевода компьютера в наиболее оптимальный сберегающий режим. Данный способ направлен на определение потребляемой энергии всего компьютера и не позволяет применять его для новых, разрабатываемых вычислителей компьютера.
Предлагаемое техническое решение направлено на создание способа оценки энергопотребления нового разрабатываемого вычислителя, содержащего вычислительный кластер (процессоры) с новой архитектурой.
Технический результат предлагаемого технического решения - определение энергопотребления вычислителя на стадии его разработки.
Технический результат достигается тем, что способ оценки энергопотребления вычислителя включает:
- запуск прикладного программного обеспечения на вычислителе, имеющего вычислительный кластер со старой процессорной архитектурой;
- выделение профилировщиком в прикладном программном оборудовании наиболее вычислительно-интенсивных участков (ВИУ) выполнения программы, при этом во время каждого ВИУ выполнения программы синхронно замеряют точное энергопотребление вычислительного кластера старой архитектуры и/или узлов, задействованных в ходе расчета;
- определение для каждого ВИУ процессорных инструкций каждого типа;
- запуск этого же прикладного программного обеспечения на симуляторе, симулирующего запуск и работу программного обеспечения на кластере, имеющего новую процессорную архитектуру;
- проведение вычислений в части ВИУ в симуляторе;
- определение при помощи симулятора новой архитектуры для каждого ВИУ точного числа процессорных инструкций каждого типа;
и пропорциональном пересчете энергопотребления старой архитектуры на новую архитектуру, используя соотношение между числом процессорных инструкций, потребовавшейся для выполнения ВИУ на старой и новой архитектуре, вычисляют энергопотребление на новой архитектуре из формулы:
<mrow><mi>P</mi><mo stretchy="false">(</mo><mi>H</mi><mi>A</mi><mo stretchy="false">)</mo><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>K</mi></munderover><mrow><mi>n</mi><msub><mrow><mo stretchy="false">(</mo><mi>H</mi><mi>A</mi><mo stretchy="false">)</mo></mrow><mi>i</mi></msub><mo>⋅</mo><msub><mi>α</mi><mi>i</mi></msub><mo>⋅</mo><mi>p</mi><msub><mrow><mo stretchy="false">(</mo><mi>C</mi><mi>A</mi><mo stretchy="false">)</mo></mrow><mi>i</mi></msub><mo>+</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>j</mi><mo>=</mo><mi>K</mi><mo>+</mo><mn>1</mn></mrow><mi>N</mi></munderover><mrow><mi>n</mi><msub><mrow><mo stretchy="false">(</mo><mi>H</mi><mi>A</mi><mo stretchy="false">)</mo></mrow><mi>j</mi></msub><mo>⋅</mo><mi>p</mi><msub><mrow><mo stretchy="false">(</mo><mi>H</mi><mi>A</mi><mo stretchy="false">)</mo></mrow><mi>j</mi></msub></mrow></mstyle></mrow></mstyle></mrow>
где
P(HA) - оценка общего энергопотребления для новой архитектуры в ходе выполнения программного обеспечения,
i
n(HA) - число выполненных инструкций с номером i, тип инструкций поддерживается как на старой, так и на новой архитектуре,
i
α - поправочный коэффициент для энерговыделения при выполнении одной процессорной инструкции i-го типа, поддержанного как в старой, так и в новой архитектуре, который определяется разработчиком новой архитектуры,
К - число процессорных инструкций старой архитектуры,
i
p(СА) - энерговыделение при выполнении инструкции типа i на старой архитектуре,
N - число процессорных инструкций новой архитектуры,
j
n(HA) - число инструкций с номером j, тип j поддерживается только на новой архитектуре вычислителя,
j
p(HA) - энерговыделение при выполнении инструкции типа j на новой архитектуре, тип j поддерживается только на новой архитектуре вычислителя;
i
при этом энерговыделение при выполнении инструкции типа i на старой архитектуре - p(CA) определяется путем решения системы линейных алгебраических уравнений вида
<mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>K</mi></munderover><mrow><mi>n</mi><msub><mrow><mo stretchy="false">(</mo><mi>C</mi><mi>A</mi><mo stretchy="false">)</mo></mrow><mi>i</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>⋅</mo><mi>p</mi><msub><mrow><mo stretchy="false">(</mo><mi>C</mi><mi>A</mi><mo stretchy="false">)</mo></mrow><mi>i</mi></msub><mo>=</mo><mi>P</mi><mo stretchy="false">(</mo><mi>C</mi><mi>A</mi><mo stretchy="false">)</mo><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow></mstyle></mrow>
где
i
n(CA)(t) - число выполненных инструкций в момент времени t, для старой архитектуры,
P(CA)(t) - общее энергопотребление системы к моменту времени t.
Основные термины
Процессор (микропроцессор) - микроэлектронное устройство с набором команд (инструкций).
Кластер - вычислительный комплекс, состоящий их нескольких компьютеров (узлов), оснащенных процессорами.
Набор инструкций - набор команд, которые может выполнять процессор.
Старая архитектура - архитектура, которая уже создана и доступна.
Новая архитектура - создаваемая микропроцессорная архитектура, характеристики которой (в т.ч. энергопотребление) требуется определить. Набор инструкций новой архитектуры расширен по сравнению с набором старой архитектуры. В свою очередь, все процессорные инструкции, доступные на старой архитектуре, доступны и на новой.
Симулятор - программное обеспечение, позволяющее выполнять ПО для новой архитектуры на старой архитектуре (симуляция новых инструкций).
На фиг.1 показана схема устройства, реализующая данный способ. Так для каждого компьютера, используемого в кластере, используется цифровой блок питания, благодаря которому измеряется его точное энерговыделение, и, соответственно, легко можно вычислить точное энергопотребление вычислительного кластера старой архитектуры и/или узлов, задействованных в ходе расчета. Благодаря этому можно оценить энергопотребление вычислителя, выполняя операции способа:
- запуск прикладного программного обеспечения на вычислителе, имеющем вычислительный кластер со старой процессорной архитектурой; данное программное обеспечение представляет собой специализированную программу максимально загружающего вычислитель,
- выделение профилировщиком в данном запущенном прикладном программном оборудовании наиболее вычислительно-интенсивных участков (ВИУ) выполнения программы, при этом во время каждого ВИУ выполнения программы синхронно замеряют точное энергопотребление вычислительного кластера старой архитектуры и/или узлов, задействованных в ходе расчета:
- определение для каждого ВИУ процессорных инструкций каждого типа;
- запуск этого же прикладного программного обеспечения на симуляторе, симулирующем запуск и работу программного обеспечения на кластере, имеющем новую процессорную архитектуру; по сути это программа позволяющая выполнять ПО для новой архитектуры на старой архитектуре (т.е. в ходе выполнения программы ей принудительно осуществляется симуляция новых инструкций),
- проведение вычислений в части ВИУ в симуляторе;
- определение при помощи симулятора новой архитектуры для каждого ВИУ точного числа процессорных инструкций каждого типа;
и пропорциональный пересчет энергопотребления старой архитектуры на новую архитектуру, используя соотношение между числом процессорных инструкций, потребовавшейся для выполнения ВИУ на старой и новой архитектуре, вычисляют энергопотребление на новой архитектуре по формуле:
<mrow><mi>P</mi><mo stretchy="false">(</mo><mi>H</mi><mi>A</mi><mo stretchy="false">)</mo><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>K</mi></munderover><mrow><mi>n</mi><msub><mrow><mo stretchy="false">(</mo><mi>H</mi><mi>A</mi><mo stretchy="false">)</mo></mrow><mi>i</mi></msub><mo>⋅</mo><msub><mi>α</mi><mi>i</mi></msub><mo>⋅</mo><mi>p</mi><msub><mrow><mo stretchy="false">(</mo><mi>C</mi><mi>A</mi><mo stretchy="false">)</mo></mrow><mi>i</mi></msub><mo>+</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>j</mi><mo>=</mo><mi>K</mi><mo>+</mo><mn>1</mn></mrow><mi>N</mi></munderover><mrow><mi>n</mi><msub><mrow><mo stretchy="false">(</mo><mi>H</mi><mi>A</mi><mo stretchy="false">)</mo></mrow><mi>j</mi></msub><mo>⋅</mo><mi>p</mi><msub><mrow><mo stretchy="false">(</mo><mi>H</mi><mi>A</mi><mo stretchy="false">)</mo></mrow><mi>j</mi></msub></mrow></mstyle></mrow></mstyle></mrow>
где
P(HA) - оценка общего энергопотребления для новой архитектуры в ходе выполнения программного обеспечения.
i
n(HA) - число выполненных инструкций с номером i, тип инструкций поддерживается как на старой, так и на новой архитектуре,
i
α - поправочный коэффициент для энерговыделения при выполнении одной процессорной инструкции i-го типа, поддержанного старой, так и в новой архитектуре, который определяется разработчиком новой архитектуры,
К - число процессорных инструкций старой архитектуры,
j
p(CA) - энерговыделение при выполнении инструкции типа i на старой архитектуре,
N - число процессорных инструкций новой архитектуры,
j
n(HA) - число инструкций с номером j, тип j поддерживается только на новой архитектуре вычислителя,
j
p(HA) - энерговыделение при выполнении инструкции типа j на новой архитектуре, тип j поддерживается только на новой архитектуре вычислителя;
i
при этом энерговыделение при выполнении инструкции типа i на старой архитектуре - p(CA) определяется путем решения системы линейных алгебраических уравнений вида
<mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>K</mi></munderover><mrow><mi>n</mi><msub><mrow><mo stretchy="false">(</mo><mi>C</mi><mi>A</mi><mo stretchy="false">)</mo></mrow><mi>i</mi></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>⋅</mo><mi>p</mi><msub><mrow><mo stretchy="false">(</mo><mi>C</mi><mi>A</mi><mo stretchy="false">)</mo></mrow><mi>i</mi></msub><mo>=</mo><mi>P</mi><mo stretchy="false">(</mo><mi>C</mi><mi>A</mi><mo stretchy="false">)</mo><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow></mstyle></mrow>
где
i
n(CA)(t) - число выполненных инструкций в момент времени t, для старой архитектуры,
P(CA)(t) - общее энергопотребление системы к моменту времени t.
Выше были раскрыты основные особенности способа оценки энергопотребления вычислителя, но любому специалисту в данной области техники очевидно, что на основе раскрытых данных можно создать вариации способов оценки энергопотребления.