Aktualności
2011-12-12
Pomiar energii elektrycznej bez miernika
Szacowanie zużycia energii w HPC
W ostatnich latach kluczowym czynnikiem utrudniającym dalszy wzrost mocy obliczeniowej serwerów stały się ograniczenia związane z coraz większym zużyciem energii elektrycznej. Ograniczenia te wymusiły na producentach procesorów zmianę podejścia – zastą- pienie ciągłego zwiększania częstotliwości na rzecz większej liczby bardziej efektywnych energetycznie jednostek obliczeniowych (rdzeni). Co więcej, zapotrzebowanie na energię elektryczną jest istotnym problemem dla rozwoju dużych centrów obliczeniowych. Z tego względu umiejętne zarządzanie energią, aw szczególności pomiar jej zużycia przez poszczególne serwery iprocesory nabiera szczególnego znaczenia.

Często jednak infrastruktura obliczeniowa nie udostępnia takiej informacji, ainstalacja dodatkowych mierników nie jest możliwa lub wiąże się ze znacznymi kosztami. Mierniki muszą posiadać odpowiednie atesty i udostępniać pomiary zdalnie. Istniejąca infrastruktura obliczeniowa powinna, co często nastręcza wiele problemów, umożliwiać instalację zewnętrznych urządzeń pomiarowych. Mimo wysokich cen (szczególnie mnożąc je przez duże liczby serwerów) wiele mierników nie zapewnia wciąż jeszcze wysokiej precyzji pomiarów. W prze- prowadzanych badaniach błędy list pomiarowych dochodziły do kilkunastu watów.

Wobec powyższych problemów i ograniczeń z pomocą może przyjść opracowana w ramach prac badawczo- rozwojowych metoda estymacji oraz oprogramowanie do szacowania zużycia energii elektrycznej przez serwery obli- czeniowe w zależności od ich stanu oraz uruchomionych aplikacji wielkiej mocy (ang. High Performance Computing, HPC). Oprócz naturalnych korzyści płynących z dokładnego szacowania zużycia energii elektrycznej bez dodatkowych urządzeń, opracowana metoda miała na celu zbadanie jak poszczególne aplikacje iich specyficzne cechy wpływają na pobór mocy serwerów obliczeniowych. Wyniki takich analiz mają zastosowanie wwyborze odpowiedniego typu serwerów dla wybranych klas aplikacji, przewidywania zużycia energii, a w rezultacie - bardziej efektywnego zarządzania zasobami w centrach obliczeniowych.

Pomiary zużycia energii elektrycznej przez serwery obliczeniowe bez użycia urządzeń pomiarowych wymagają oczywiście dostarczenia pewnych informacji związanych z wykonaniem aplikacji HPC jak i z samym serwerem. Przede wszystkim są to dane związane ze stanem pamięci i procesorów serwera ze względu na fakt, że procesor oraz pamięć są odpowiedzialne za około 70% pobieranej mocy, a dodatkowe kilkanaście procent stanowi stosunkowo stały pobór mocy przez jednostkę zasilającą.

Aby zmierzyć charakterystyki aplikacji w różnych warunkach stworzono oprogramowanie App-Meter; dla danych wejściowych stanowiących różną liczbę rdzeni procesora oraz częstotliwości i napięcia App-Meter zbiera dane zawierające wartości tzw. liczników wydajności (ang. performance counters), statystyki systemu i procesów oraz temperaturę procesora (z wbudowanych czujników). Liczniki wydajności obejmują parametry takie jak: liczba instrukcji procesora na sekundę, liczba nietrafionych odwołań do pamięci podręcznej procesora oraz wiele innych szczegółowych informacji pozwalających określić wydajność i charakterystykę aplikacji. W celu zebrania odpowiednich danych App-Meter wykorzystuje mechanizmy oraz interfejsy programistyczne dostępne w systemie Linux (w jądrze 2.6.31 lub nowszym).

Metoda szacowania pobieranej mocy została oparta na analizie statystycznej mającej na celu znalezienie funkcji określającej zależność pomiędzy zmiennymi (danymi opisanymi w poprzednim akapicie), a rzeczywistym poborem mocy. Do znalezienia funkcji wykorzystano model regresji nieliniowej dla uprzednio przefiltrowanego zbioru zmiennych.
Model został zbudowany w oparciu otesty przeprowadzone na zbiorze zróżnicowanych rzeczywistych aplikacji HPC uruchamianych w PCSS (Abinit, NAMD, C-Ray, Mencoder, HMMER, Cavity) uzupełnionych o popularne benchmarki (Linpack, CPUburn). Wymienione aplikacje różnią się sposobem wykorzystania zasobów serwera. Na przykład, CPUburn wbardzo dużym stopniu obciąża tylko procesor, podczas gdy dla Cavity (aplikacja do symulacji przepływów cieczy)  kluczowa jest wydajność i wielkość pamięci, aw szczególności pamięci podręcznej.

Ponieważ poszczególne serwery różnią się swoją charakterystyką wydajnościową i energetyczną, w celu uzyskania wysokiej precyzji estymacji niezbędne jest stworzenie modeli dla każdego serwera z osobna. W naszych pracach zostały zbudowane trzy modele dla różnych platform sprzętowych występujących wPCSS wyposażonych w procesory: Intel Xeon 5160 „Woodcrest”, Intel Xeon E5345 „Clovertown” oraz Opteron 275 „Italy”.

Okazało się, że dla wszystkich 3 modeli najlepsze wyniki dawał ten sam zestaw pięciu zmiennych: temperatura procesora, liczba instrukcji na sekundę, liczba cykli na sekundę, liczba nietrafionych odwołań do pamięci podręcznej procesora oraz przepustowość pamięci. Różnice wystąpiły natomiast w poszczególnych funkcjach transformujących zmienne oraz współczynnikach. Na przykład, na obu serwerach z procesorem Intel zależność pomiędzy liczbą cykli na sekundę oraz mocą była wyrażona za pomocą funkcji pierwiastkowej, podczas gdy wprzypadku procesora AMD była liniowa. Dla wszystkich zmiennych zostały użyte te same funkcje dla różnych procesorów tego samego producenta (Intel), co pozwala na konstrukcję modeli dla szerszych klas serwerów (przy nieco gorszej dokładności oszacowań).

Po przeprowadzeniu testów okazało się, że zastosowanie uzyskanego modelu do estymacji poboru mocy na wymienionych serwerach obliczeniowych dało znakomite wyniki. Błąd standardowy wahał się pomiędzy 2.2W a 4.5W stanowiąc 1-2% całkowitego poboru mocy przez serwer. Co więcej, dla aplikacji ze zbioru użytego do konstrukcji modelu uzyskane pomiary dały lepszą dokładność niż te, pochodzące z dostępnej inteligentnej listwy zasilającej Raritan Dominion PX! Było to prawdopodobnie spowodowane dyskretyzacją pomiarów dokonywaną przez listwę.

Jedną ze zmiennych niezależnych użytych w modelu jest temperatura procesora. Ponieważ na temperaturę mogą wpływać czynniki zewnętrzne, w szczególnych przypadkach wyniki mogłyby zostać zaburzone. Z tego powodu, opracowano również model pozbawiony tej zmiennej. Dokładność pomiarów nieco spadła, ale błąd standardowy nie przekroczył 5.36W.

Stworzone modele mogą być wykorzystywane do pomiaru zużycia energii elektrycznej w infrastrukturze oblicze- niowej, która nie jest wyposażona w odpowiednie urządzenia pomiarowe. Dodanie innego rodzaju serwerów lub zmiana uruchamianych aplikacji wymaga zebrania danych za pomocą narzędzia App-Meter oraz dopasowania modelu. Niemniej jednak, ze względu na wspomniane powyżej podobieństwo modeli dla procesorów tego samego producenta możliwe jest przygotowanie modelu dla szerszej klasy serwerów.

Planowane dalsze prace obejmą testy większej liczby rzeczywistych aplikacji oraz platform sprzętowych w celu zdefiniowania bardziej ogólnego modelu, aw tym klasyfikacji aplikacji oraz przygotowania modeli dla poszczególnych producentów sprzętu. Otrzymane wyniki mogą w przyszłości służyć przewidywaniu zużycia energii przez aplikacje, wyborze platform odpowiednich dla poszczególnych aplikacji oraz metod zarządzania zasobami biorącymi pod uwagę efektywność energetyczną.

Michał Witkowski, PCSS