RSS

HT nie jest bezwartościowe

Liczba odsłon: 38

Przy okazji prac nad klasą C++ obsługującą macierze, przeprowadziłem test możliwości zrównoleglania operacji matematycznych. Pierwszą ofiarą było mnożenie macierzy — operacja prosta, lecz pracochłonna i trudna w optymalizowaniu.

Zgodnie z oczekiwaniami, na procesorze AMD Athlon XP (pod kontrolą Windows XP) wersja wielowątkowa była minimalnie wolniejsza od jednowątkowej (różnica kilkudziesięciu milisekund na ponad 4 sekundy czasu obliczeń). Co ciekawe, ten sam program uruchomiony pod kontrolą Linuksa – na prawie identycznym procesorze – dał nieco odmienne wyniki: wersja wielowątkowa była minimalnie, ale jednak szybsza.

Uruchomienie programu testowego na komputerze z procesorem Intel Core Duo przyniosło oczekiwany zysk wynikający z dwurdzeniowej architektury procesora. Wersja jednowątkowa była prawie dwukrotnie szybsza niż na Athlonie, jednak wersja wielowątkowa zyskiwała jeszcze około 80% przyspieszenia! W efekcie na coś, co Athlon oblicza ponad 4 sekundy, Core Duo potrzebuje około 2 sekund przy użyciu jednego rdzenia i nieco ponad 1 sekundę przy pracy wielordzeniowej.

Zaskoczeniem jednak okazał się procesor Pentium 4. Choć przy rekordowej częstotliwości 3200 MHz na przemnożenie macierzy potrzebował aż 3 sekund, to wersja wielowątkowa – przy aktywnym trybie HyperThreading – przyspieszyła o ponad pół sekundy. Widać nawet tak prymitywna forma przetwarzania równoległego pozwala wykorzystać całą moc drzemiącą w mikroprocesorze.