Obawiam się, że odpowiedź jest, jak zawsze, „zależy od tego, co robisz”.
Tak, maleją zyski z dodawania coraz większej liczby rdzeni i zawsze będzie tak, jeśli uruchomisz tylko jedną aplikację na raz .
Nawet w dobrze wykonanej aplikacji wielowątkowej wiele wątków jest wykonywanych tak, aby czekać na najwolniejsze komponenty komputera - dysk twardy, sieć - bez wpływu na widoczną wydajność użytkownika. Nie można ich poprawić przez większą równoległość, więc teoretyczne ograniczenie przyspieszenia jest nieosiągalne ze względów praktycznych.
Warto zauważyć, że istnieje kilka „dużych” aplikacji, które nie są wielowątkowe (po prostu sprawdź odpowiednik Menedżera zadań systemu operacyjnego, powinien być w stanie powiedzieć, ile należy do każdego procesu - na przykład mój Firefox używa obecnie 31 ).
Oczywiście uruchamianie wielu niezależnych aplikacji nie jest tak ograniczone przez te ograniczenia. Gdy dodajesz więcej rdzeni, możesz uruchamiać więcej aplikacji jednocześnie przy niewielkim spadku wydajności przetwarzania (wydajność dysku twardego, sieci itp. Nie skaluje się jednak tak ładnie). W praktyce nawet to podlega zmniejszającym się zwrotom, ponieważ istnieje nieunikniony narzut związany z zarządzaniem rozkładem pracy między rdzeniami, rurociągami komunikacyjnymi i tak dalej.
Na przykład ten artykuł Tom's Hardware (z 2009 r.) Próbuje spojrzeć na wydajność kilku procesorów wielordzeniowych w jednoczesnych aplikacjach - uruchamiając grę obok skanu AVG (oba prawdopodobnie są wielowątkowe). Wszystkie czterordzeniowe, trzy- i dwurdzeniowe procesory działają podobnie z samą grą, ale dodają jednoczesne skanowanie AVG, a wydajność (mierzona średnim FPS) spada odpowiednio o 22%, 40% i 59%.
Tak więc, chociaż czterordzeniowy rdzeń nie oferował żadnego wzrostu wydajności w porównaniu z podwójnym rdzeniem podczas uruchamiania jednej intensywnej aplikacji, gdy tylko pojawiło się inne intensywne zadanie, okazało się, że jest dwukrotnie wydajniejsze. Niestety nie mogę znaleźć wiele innych rzeczy, które sprawdzałyby, jak dobrze to się skaluje z większą liczbą rdzeni i bardziej intensywnymi zadaniami.
A potem musisz wziąć pod uwagę nowoczesne funkcje procesorów, takie jak Turbo Boost Intela / Turbo Core AMD. Te szczególne funkcje pozwalają wielordzeniowemu procesorowi zaparkować rdzenie (ustawić je w wolniejszym trybie o niskiej mocy) i wykorzystać zapasową energię do przetaktowania rdzeni, które pozostają aktywne - pozwalając procesorowi zoptymalizować się, aby zapewnić tyle mocy przetwarzania w miarę możliwości dla liczby zadań, z którymi jest prezentowany.