W innych pytaniach wykazano, że ze względu na stan aplikacji komputerowych procesory wielordzeniowe mają coraz mniejsze zyski. Czy tak jest nadal w dzisiejszym świecie?
Czy większość nowych aplikacji obejmuje wielowątkowość, a zatem korzysta z wielu rdzeni? Jeśli nie, to czy nowsze 64-bitowe systemy operacyjne wykorzystują rdzenie, przypisując zadania / procesy do różnych rdzeni? Czy też procesory wielordzeniowe nadal odczuwają takie same (lub podobne) malejące zwroty?
Kopię zapasową wszelkich roszczeń należy opatrzyć referencjami.
cpu
multi-core
community-faq-proposed
rishimaharaj
źródło
źródło
Odpowiedzi:
To zależy w dużej mierze od tego, co robisz.
W przypadku zwykłych starych programów Word, Excel i Saper oraz wszystkiego innego, czego używa Twoja mama, jeden rdzeń wciąż wystarcza, a więcej niż dwa to przesada. Tego rodzaju aplikacje spędzają większość czasu na biegu jałowym, czekając na dane wejściowe użytkownika.
Do grania zyskasz co najmniej dwa. Następnie zależy to od gry. Teoretycznie możesz uruchomić każdego przeciwnika AI w osobnym wątku, ale centralna logika gry nie może być łatwo zrównoleglona - potrzebujesz jednego miejsca, w którym wszystkie wyniki są zebrane, aby stworzyć spójny stan gry. Więc zwykle jest jeden „główny” wątek, na który wszyscy czekają.
W przypadku multimediów, łamania liczb rzeczywistych i nauki liczy się każdy rdzeń. Są to zadania z natury wielowątkowe lub takie, które można łatwo wykonać, a twórcy mają silną motywację do korzystania z całej dostępnej mocy obliczeniowej.
Zaawansowani użytkownicy lubią wielozadaniowość. Torrent, VirtualBox, zrzuty ekranu, wideo, minecraft i przeglądanie stron internetowych działają jednocześnie. Będziesz więc czerpać korzyści z każdej wymagającej procesora aplikacji mającej swój rdzeń. W dzisiejszych czasach popularne jest transmitowanie na żywo swojej gry. To dwa rdzenie dla gry, przynajmniej jeden dla wątku kodera i przynajmniej jeden dla reszty systemu. To co najmniej 4 rdzenie.
źródło
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.
źródło
Aby dodać paliwo do ognia, przeczytałem tutaj, że Android jest spowolniony przez posiadanie więcej niż jednego rdzenia:
źródło
Oczywiście zależy to od tego, co robisz, ale tak, dochody maleją.
Proste, codzienne aplikacje, takie jak edytor tekstów lub przeglądanie stron internetowych, niewiele korzystają z posiadania więcej niż dwóch rdzeni procesora. Naukowe aplikacje komputerowe i do gier lepiej wykorzystują cztery (lub więcej) rdzenie i / lub funkcję hiperwątkowości, ponieważ mają one na celu maksymalne wykorzystanie nowoczesnego sprzętu, ale korzyści z więcej niż czterech rdzeni są ograniczone.
Ponadto nie wszystko jest ograniczone obliczeniowo. Dodanie rdzeni procesora nie pomoże, jeśli obciążenie jest ograniczone do operacji we / wy. Jeśli kiedykolwiek instalowałeś dysk SSD w celu wymiany mechanicznego dysku twardego, prawdopodobnie wiesz, że codzienna wydajność komputera jest ograniczona częściej niż przez pamięć komputera. W środowiskach o dużym obciążeniu serwera, w których wykorzystywana jest duża liczba rdzeni, aby system mógł obsługiwać jednocześnie dużą liczbę użytkowników i żądań, stosowane są wyspecjalizowane macierze dyskowe, dyski SSD i inne systemy pamięci masowej, aby zapewnić maksymalną wydajność pod obciążeniem.
źródło