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, po raz kolejny okazało się, że korzyści wynikające z jej zastosowania są wysoce wątpliwe.
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 - http://blogs.msdn.com/slavao/archive/2005/11/12/492119.aspx" ).
20.11.2005 11:10
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.