Hyper-threading dla nikogo?

Hyper-threading (HT) jest technologią wprowadzoną przez Intela w Pentium 4. Dzięki równoległemu wykonywaniu wielu zadań miała ona prowadzić do wyższej wydajności oprogramowania - zwłaszcza takiego, którego zostało zoptymalizowane do pracy wielowątkowej. Niestety, HT zupełnie nie sprawdził się w kilku korporacyjnych zastosowaniach.

Złośliwcy mawiają, że Pentium 4 jest procesorem, który został zepsuty przez projektantów i którego długi czas życia na rynku wziął się wyłącznie z wysiłku inżynierów. W podobnym tonie opowiada się czasem o HT, choć dzięki niemu miało być możliwe zwiększenie wydajności oprogramowania nawet o 30 procent. Tymczasem testy pokazują, iż technologia zupełnie nie sprawdza się w przypadku baz danych: Slava Oks, jeden z współtwórców MS-SQL Servera 2005, opisał w swoim blogu dziwne zachowanie silnika bazy po włączeniu HT. Obciążenie procesora wzrastało, a wydajność bazy gwałtownie spadała (patrz angielski blog: "Be aware: To Hyper or not to Hyper").

Podobne zachowanie zauważyli użytkownicy serwera terminali Citrix Terminal Server. Okazywało się, że za każdym razem winowajcą był domyślnie włączony w BIOS-ie płyty głównej HT. Jego wyłączenie prowadziło do przywrócenia normalnego poziomu obciążenia.

Jako jedno z prawdopodobnych wyjaśnień problemu podaje się fakt, iż obie jednostki logiczne procesora wyposażonego w HT zmuszone są do wykorzystywania tej samej pamięci cache. Obsługa różnych wątków prowadzi do przetwarzania odmiennych fragmentów danych, których ilość może być wyższa niż suma pojemności L1 i L2. Procesor jest więc zmuszany do sięgania do RAM-u, co znacząco obniża wydajność całej maszyny.


Zobacz również