Pytanie to jest o tyle bardziej istotne, że Linux dominuje na komputerach pełniacych rolę serwerów, tam też kolejne rdzenie dodawane są najszybciej. Zespół z MIT (Massachusetts Institute of Technology) przeprowadził eksperyment, który dał interesującą odpowiedź.
Stworzono system, w którym ośmiordzeniowy procesor symulował zachowanie jednostki o 48 rdzeniach. Następnie stopniowo uruchamiane były kolejne rdzenie wirtualne. Po jakimś czasie okazało się, że zwiększanie ich liczby nie powoduje wzrostu wydajności, a wręcz przeciwnie - spowalnia system. Okazuje się, że to zjawisko można w prosty sposób wytłumaczyć. Otóż w systemach wielordzeniowych wiele jednostek na raz operuje na tym samym fragmencie danych. Tak długo, jak te dane są potrzebne, nie należy ich usuwać z pamięci. Odpowiada za to centralny licznik, który jest zwiększany przez aktywne rdzenie i zmniejszany, gdy informacja przestaje być im potrzebna. Gdy osiągnie wartość zero, miejsce w pamięci jest zwalniane.
Okazuje się, że gdy rośnie liczba rdzeni, każdy z nich wykonuje coraz mniejszą część zadania, a coraz więcej czasu zajmuje samo ustawianie tego licznika. Dla większych wartości sam narzut na sychronizację pochłania znaczną część mocy obliczeniowej.
Programistom udało się po niewielkich modyfikacjach kodu sprawić, że system poradził sobie z tym problemem. Wystarczy, że każdy z rdzeni będzie przechowywał własny licznik dostępu do zasobu, a synchronizacja będzie następować tylko od czasu do czasu. Pozwoliło to znacząco poprawić wydajność procesora i w efektywny sposób wykorzystać wszystkie 48 rdzeni.
"Badania pokazują, jak skaluje się system w chwili obecnej" - komentuje Frans Kaashoek, profesor kierujący grupą wykonująca eksperyment - "Fakt, że główna przeszkodą w skalowaniu okazał się licznik mówi nam, że wiele problemów zostało już rozwiązanych. Oczekiwalismy, że trudności będą znacznie poważniejsze. Wystarczy tylko poprawić sposób liczenia referencji, z czym społeczność linuksowa spokojnie da sobie radę." I dodaje: "Sam fakt, że problem był łatwy do rozwiązania nie oznacza, że łatwo było go odnaleźć. To jednak tylko hipoteza, którą twórcy Linuksa będą musieli sprawdzić na rzeczywistych systemach."
Z kolei profesor Remzi Arpaci-Dusseau tak komentuje wyniki prac - "Głównym pytaniem, na które będą musieli odpowiedzieć twórcy systemu, jest to, co zrobią z systemami, w których liczba rdzeni zdecydowanie wzrośnie. Konieczne może być całkowite przeprojektowanie systemu wedle nowej architektury. Opracowany raport jest pierwszą próbą rozwiązania problemu w sposób naukowy."
Miłośnicy linuksa moga więc być spokojni, podobnie jak nabywcy procesorów wyposażonych w coraz większą liczbę rdzeni.
Źródło: Physorg