Dodanie kilku rdzeni do jednego procesora zapewnia znaczne korzyści dzięki wielozadaniowości nowoczesnych systemów operacyjnych. Jednak dla niektórych celów istnieje górny praktyczny limit liczby rdzeni, które dają ulepszenia w stosunku do kosztu ich dodania.
Zaawansowane technologie wielordzeniowe
Procesory wielordzeniowe są dostępne w komputerach osobistych od początku XXI wieku. Projekty wielordzeniowe zajęły się problemem procesorów osiągających pułap fizycznych ograniczeń pod względem szybkości taktowania oraz tego, jak skutecznie mogą być chłodzone i nadal zachowują dokładność. Przechodząc na dodatkowe rdzenie w układzie pojedynczego procesora, producenci uniknęli problemów z szybkością zegara, skutecznie pomnażając ilość danych, które może obsłużyć procesor.
Kiedy zostały wprowadzone na rynek, producenci oferowali tylko dwa rdzenie w jednym procesorze, ale teraz są opcje na cztery, sześć, a nawet 10 lub więcej. Oprócz dodawania rdzeni technologie jednoczesnego wielowątkowości, takie jak Hyper-Threading firmy Intel, mogą podwoić liczbę wirtualnych rdzeni widzianych przez system operacyjny.
Procesy i wątki
Proces to określone zadanie, takie jak program, uruchomiony na komputerze. Proces składa się z jednego lub więcej wątków.
Wątek to po prostu pojedynczy strumień danych z programu przechodzący przez procesor komputera. Każda aplikacja generuje własny jeden lub wiele wątków w zależności od tego, jak działa. Bez wielozadaniowości jednordzeniowy procesor może obsłużyć tylko jeden wątek na raz, więc system szybko przełącza się między wątkami, aby przetwarzać dane w pozornie współbieżny sposób.
Zaletą posiadania wielu rdzeni jest to, że system może obsługiwać więcej niż jeden wątek jednocześnie. Każdy rdzeń może obsługiwać oddzielny strumień danych. Ta architektura znacznie zwiększa wydajność systemu, w którym działają współbieżnie aplikacje. Ponieważ serwery mają tendencję do jednoczesnego uruchamiania wielu aplikacji w danym czasie, technologia została pierwotnie opracowana dla klientów korporacyjnych – ale w miarę jak komputery osobiste stały się bardziej złożone i zwiększyła się wielozadaniowość, one również skorzystały z posiadania dodatkowych rdzeni.
Każdy proces jest jednak zarządzany przez główny wątek, który może zajmować tylko jeden rdzeń. W ten sposób względna szybkość programu, takiego jak gra lub renderer wideo, jest mocno ograniczona do możliwości rdzenia zużywanego przez wątek główny. Wątek główny może bezwzględnie delegować wątki drugorzędne do innych rdzeni - ale gra nie staje się dwa razy szybsza, gdy podwoisz rdzenie. Dlatego nie jest niczym niezwykłym, że gra w pełni wykorzystuje jeden rdzeń (wątek podstawowy), ale widzi tylko częściowe wykorzystanie innych rdzeni dla wątków drugorzędnych. Żadne podwojenie rdzenia nie omija faktu, że podstawowy rdzeń jest ogranicznikiem szybkości dla Twojej aplikacji, a aplikacje wrażliwe na tę architekturę będą działać lepiej niż aplikacje, które nie są.
Zależność oprogramowania
Chociaż koncepcja procesorów wielordzeniowych brzmi atrakcyjnie, istnieje poważne zastrzeżenie dotyczące tej technologii. Aby można było czerpać prawdziwe korzyści z wielu procesorów, oprogramowanie działające na komputerze musi być napisane z obsługą wielowątkowości. Bez oprogramowania obsługującego taką funkcję wątki będą przebiegały głównie przez jeden rdzeń, obniżając w ten sposób ogólną wydajność komputera. W końcu, jeśli może działać tylko na jednym rdzeniu w czterordzeniowym procesorze, może być szybsze uruchomienie go na dwurdzeniowym procesorze z wyższymi bazowymi częstotliwościami zegara.
Wszystkie główne obecne systemy operacyjne obsługują wielowątkowość. Ale wielowątkowość musi być również zapisana w oprogramowaniu aplikacyjnym. Obsługa wielowątkowości w oprogramowaniu konsumenckim poprawiła się na przestrzeni lat, ale w przypadku wielu prostych programów obsługa wielowątkowości nadal nie jest zaimplementowana ze względu na złożoność kompilacji oprogramowania. Na przykład program pocztowy lub przeglądarka internetowa prawdopodobnie nie odniosą tak wielkich korzyści z wielowątkowości, jak program do edycji grafiki lub wideo, w którym komputer przetwarza złożone obliczenia.
Dobrym przykładem na wyjaśnienie tej tendencji jest spojrzenie na typową grę komputerową. Większość gier wymaga jakiegoś silnika renderującego, aby wyświetlić to, co dzieje się w grze. Ponadto, jakaś sztuczna inteligencja kontroluje wydarzenia i postacie w grze. W przypadku jednego rdzenia oba zadania są wykonywane przez przełączanie się między nimi. Takie podejście nie jest wydajne. Gdyby system zawierał wiele procesorów, renderowanie i sztuczna inteligencja mogłyby działać na osobnym rdzeniu – idealna sytuacja dla procesora wielordzeniowego.
Czy 8 > 4 > 2?
Wykroczenie poza dwa rdzenie przynosi mieszane korzyści, biorąc pod uwagę, że odpowiedź dla każdego kupującego komputer zależy od oprogramowania, którego zwykle używa. Na przykład wiele klasycznych gier wciąż oferuje niewielką różnicę wydajności między dwoma a czterema rdzeniami. Nawet współczesne gry – z których niektóre rzekomo wymagają lub obsługują osiem rdzeni – mogą nie działać lepiej niż sześciordzeniowa maszyna z wyższą podstawową częstotliwością zegara, biorąc pod uwagę, że efektywność głównego wątku decyduje o wydajności wydajności wielowątkowej.
Z drugiej strony program do kodowania wideo, który transkoduje wideo, prawdopodobnie przyniesie ogromne korzyści, ponieważ renderowanie pojedynczych klatek może być przekazywane do różnych rdzeni, a następnie łączone przez oprogramowanie w jeden strumień. Zatem posiadanie ośmiu rdzeni będzie nawet bardziej korzystne niż posiadanie czterech. Zasadniczo główny wątek nie wymaga stosunkowo bogatych zasobów; zamiast tego może przeznaczyć ciężką pracę na wątki potomne, które maksymalizują liczbę rdzeni procesora.
Prędkości zegara
Ogólnie rzecz biorąc, wyższa częstotliwość zegara będzie oznaczać szybszy procesor. Prędkości zegara stają się bardziej mgliste, gdy weźmie się pod uwagę prędkości w stosunku do wielu rdzeni, ponieważ procesory przetwarzają wiele wątków danych dzięki dodatkowym rdzeniom, ale każdy z tych rdzeni będzie działał z mniejszą prędkością z powodu ograniczeń termicznych.
Na przykład procesor dwurdzeniowy może obsługiwać podstawowe szybkości zegara 3,5 GHz dla każdego procesora, podczas gdy procesor czterordzeniowy może działać tylko z częstotliwością 3,0 GHz. Wystarczy spojrzeć na pojedynczy rdzeń na każdym z nich, aby dwurdzeniowy procesor był o 14 procent szybszy niż czterordzeniowy. Tak więc, jeśli masz program, który jest tylko jednowątkowy, dwurdzeniowy procesor jest w rzeczywistości bardziej wydajny. Z drugiej strony, jeśli twoje oprogramowanie może korzystać ze wszystkich czterech procesorów, czterordzeniowy procesor będzie w rzeczywistości o około 70 procent szybszy niż procesor dwurdzeniowy.
Wnioski
W większości przypadków posiadanie procesora o większej liczbie rdzeni jest ogólnie lepsze, jeśli oprogramowanie i typowe przypadki użycia go obsługują. W większości przypadków dwurdzeniowy lub czterordzeniowy procesor będzie więcej niż wystarczającą mocą dla podstawowego użytkownika komputera. Większość konsumentów nie odczuje wymiernych korzyści z wyjścia poza cztery rdzenie procesora, ponieważ tak niewiele niespecjalistycznego oprogramowania z niego korzysta. Najlepszy przypadek użycia procesorów o dużej liczbie rdzeni dotyczy maszyn, które wykonują złożone zadania, takie jak edycja wideo na komputerach stacjonarnych, niektóre formy zaawansowanych gier lub skomplikowane programy naukowe i matematyczne.
Sprawdź nasze przemyślenia na temat szybkości komputera, której potrzebuję? aby lepiej zorientować się, jaki typ procesora najlepiej odpowiada Twoim potrzebom obliczeniowym.