Całkiem niedawno na desktopach pojawiły się procesory wielordzeniowe. Miały drastycznie podnieść wydajność, a skończyło się na lekkim przyspieszeniu. Dlaczego? Intel i AMD okłamały nas? Otóż nie, to programy nie potrafią wykorzystać “potęgi” przetwarzania symetrycznego. Ale Intel zapowiada, że może to łatwo zmienić.
Przykładowo, na komputerze z jednym procesorem zadania wykonywane są kolejno, jedno po drugim, tak więc najpierw procesor zajmuje się zadaniem A, następnie przelicza B, C, D, itd. Jeżeli nasz komputer jest wyposażony procesor z czterema rdzeniami, wszystkie zadania mogą być wykonywane symultanicznie (jedno zadanie na jeden rdzeń).
Pytanie: dlaczego pospolity użytkownik nie zauważa zwykle różnicy w wydajności pomiędzy maszyną z ośmioma, a maszyną z dwoma jednostkami CPU. Otóż przetwarzanie symetryczne nie zależy wyłącznie od sprzętu. Systemy operacyjne (te nowoczesne w lepszy lub gorszy sposób wspierają już SMP) i aplikacje muszą być przystosowane do pracy na jednostce wieloprocesorowej, w innym wypadku wszystkie programy będą wykonywane na jednym procesorze.
Problem polega na tym, że obecnie bardzo mało aplikacji potrafi wykorzystać potencjał architektury SMP. Jest to związane głównie z tym, że rozwój takiej aplikacji jest bardziej skomplikowany dla programistów i niewielu decyduje się na implementacje wielowątkowości. Tutaj z pomocą przychodzi Intel, ze swoją tajemniczą technologią. Nowy wynalazek Intela podobno potrafi “automagicznie” usprawnić aplikacje o obsługę wielowątkowości bez żadnych zmian w kodzie, potrzebna jest tylko jego rekompilacja. Cały ten proces polega na sprawdzeniu kiedy wykonanie programu można rozłożyć na kilka procesorów.
Ciekawe jak to rozwiązanie sprawdzi się w praktyce. Może czeka nas jedno wielkie rekompilowanie świata Open Source…
PS. Dziękuję za tytuł Niusmena miesiąca! 🙂