Czy Ubuntu obsługuje Core Parking?

13

Core parking to nowa funkcja wprowadzona w systemie Windows 7 w celu uzyskania lepszej wydajności baterii .

W zależności od wykorzystania zasobów przez system operacyjny może on zaparkować jeden lub wiele rdzeni procesora wielordzeniowego w celu zmniejszenia zużycia energii i emisji cieplnej przez komputer. Gdy operacje wymagają więcej mocy obliczeniowej, zaparkowane rdzenie są ponownie aktywowane, aby pomóc w zadaniach

Więc mam pytanie, czy mogę to zrobić na Ubuntu 12.04 „Core Parking” ?

Qasim
źródło
3
Świetne pytanie!
NlightNFotis

Odpowiedzi:

9

Na razie nie mam na to jednoznacznej odpowiedzi, jednak oczywiste jest, że jądro Linuksa wykorzystuje pewne mechanizmy oszczędzania energii .

Jednak, przeprowadzając kilka szybkich badań, szybko zdałem sobie sprawę, że najnowsze jądra Linuksa korzystają z funkcji o nazwie ACPI, która jest skrótem od Advanced Configuration and Power Interface .

Co robi ACPI:

specyfikacja Advanced Configuration and Power Interface (ACPI) zapewnia otwarty standard konfiguracji urządzenia i zarządzania energią przez system operacyjny.

za pośrednictwem Wikipedii .

Zasadniczo ACPI pozwala kontrolować różne stany procesora, aby umożliwić lepsze zarządzanie energią.

Różne stany procesora ACPI:

CPU C-States (zarządzanie energią)

Zasadniczo prawdopodobnie nie musisz martwić się o „stany C” procesora. Są one automatycznie kontrolowane przez system jądra + ACPI, biorąc pod uwagę bieżące obciążenie systemu. (CAVEAT: sprawdź notatkę o procesorach AMD Athlon i Duron poniżej). Kod ACPI w nowszych jądrach (2.6+) automatycznie przełącza procesor w stan uśpienia, gdy jest czas bezczynności (uwaga: nie zmienia to częstotliwości procesora. Jest to kontrolowane przez „stany P” - patrz poniżej).

Jedyną rzeczą do zrozumienia jest to, że twój system jest całkowicie „świadomy”, gdy procesor jest chwilowo zatrzymany - nie zauważysz dużej różnicy. Jednak oszczędności energii mogą być znaczne. Pomyśl o tym, jak twój procesor bierze tysiące „mikro-drzemek”, gdy jest bezczynny.

Stany CPU-T (dławienie)

Są one bardzo podobne do „stanów C” (używana jest ta sama instrukcja HLT), jednak różnica polega na tym, że dławienie jest „wymuszane przez ciebie” (jak każdy czwarty cykl musi być cyklem snu, w przeciwieństwie do „stanów C” ”powyżej, które są automatycznie określane przez obciążenie systemu). Zauważ, że częstotliwość NIE została zmieniona ... patrz „Stany P” poniżej.

Stany CPU-P (wydajność)

Wiele procesorów w dzisiejszych czasach (zwłaszcza laptopy) może mieć spowolnioną częstotliwość taktowania „w locie”. Daje to ogromne oszczędności energii. Intel nazywa to „SpeedStep”, a AMD nazywa to „Cool'n'Quiet” lub „PowerNow”. Bardziej ogólnie, stany te nazywane są „stanami P”. Prawie na pewno będziesz musiał wejść do BIOS-u i włączyć PIERWSZĄ tę funkcję!

** Niektóre wzorce zużycia: **

Jakie są oszczędności energii z powyższych stanów procesora? Poniższe dane są pobierane ze strony internetowej AMD. Rozważ AMD 64 3400 + / 2200 MHz z 1 MB pamięci podręcznej L2. Nawiasem mówiąc, kiedy tu jestem, pozwól mi narzekać na konwencję nazewnictwa AMD. Liczba 3400+ nie oznacza przysiadu. To tylko sposób AMD na stwierdzenie, że ten procesor „wygląda” na procesor Intel Pentium-4 pracujący z częstotliwością 3400 MHz. Myślę, że to jest ich sposób na utratę udziału w rynku. Oto wartości zużycia energii w stanie P i T (stan C jest tą samą instrukcją HLT co stan T):

  • Stan wydajności 0 (w pełni aktywny) (2200 MHz): 89 watów
  • Stan wydajności 1 (2000 MHz): 70 watów
  • Stan wydajności 2 (800 MHz): 35 watów
  • Przepustowość (instrukcja HLT): 2,2 W.

Niektóre odniesienia do dalszego czytania

EDYCJE

[EDYCJA 1]: Googlując się, znalazłem też inne posty na niektórych forach (forum OpenSuse wydaje się być odpowiednie do tego, czego szukasz) i odkryłem, że nie jest to tak duży problem dla Linuksa, jak w przypadku systemu Windows i szczególnie w grach. Wykopałem również pewne informacje w dwóch mailach ( pierwsza i druga [kontynuacja] ) na listach dyskusyjnych RedHat, które wydają się być powiązane. Obecnie badam zawarte w nim informacje.

[EDYCJA 2]: Trochę przestudiowałem ten problem i jestem coraz bardziej pewny, że w Linuksie nie ma podstawowego mechanizmu parkowania, chyba że istnieje taki ACPI, którego nie znam. Ciekawe wyniki są pewne elementy oprogramowania, które pozwalają na bezpośrednią manipulację procesora i procesy prowadzone na nim, jak cpuset , numactl i last but not least, CPUfreq . Kontynuuję moje badania.

NlightNFotis
źródło
Myślę, że niektóre urządzenia z Androidem mogą wyłączyć jeden lub więcej rdzeni. Nie jestem jednak pewien, czy jest to zarządzane bezpośrednio przez sprzęt czy jądro.
Leo
2

Jest tu artykuł , w którym wspomniano, że parkowanie rdzeni odnosi się do ustawiania rdzeni w celu przyspieszenia stanów c w celu oszczędzania energii. Stany c są ustawiane za pomocą instrukcji zatrzymania. Jak wspomina NlightNFotis, odbywa się to za pomocą Linuksa dla ACPI.

Być może będziesz w stanie uzyskać więcej informacji o stanach, w których rdzenie są wprowadzane przez system Linux za pomocą powertop( sudo apt-get install powertop) otwartego oprogramowania napisanego przez Intela. Jeśli twój sprzęt obsługuje różne stany c, powinien być w stanie powiedzieć ci, ile procent czasu twoje rdzenie są wprowadzane w te stany o zmniejszonej mocy przez Ubuntu Linux. Patrz poniżej. Im wyższa liczba w stanie c, tym więcej zaoszczędzonej energii.

Zapewnia również znacznie więcej informacji.

Podobnie jak Windows, gdy jest jeszcze coś do zrobienia, Linux może dostosować częstotliwość pracy rdzeni w zależności od zapotrzebowania, chęci oszczędzania energii itp.

Mój laptop nie obsługuje stanów C, chociaż można go zawiesić. Trochę Acer, który mamy z procesorem Atom, obsługuje je, jak widać poniżej.

wprowadź opis zdjęcia tutaj

John S Gruber
źródło