Czy wyższa liczba rdzeni lub wyższa częstotliwość taktowania jest bardziej korzystna dla wydajności komputera? [Zamknięte]

16

Przy obniżaniu kosztów krzemu i rosnących potrzebach konsumentów producenci wydają się naciskać na jedną z dwóch rzeczy: szybkość zegara i / lub liczbę rdzeni. Z biegiem czasu nie wydaje się, aby szybkość taktowania procesorów rosła, ale liczba rdzeni procesorów.

Pamiętam zaledwie kilka lat temu, miałem ładny szybki jednordzeniowy procesor Pentium 4. Przejdźmy do przodu i nie sądzę, że można nawet kupić procesor jednordzeniowy (nie wspominając o rosnącym wzroście liczby procesorów wielordzeniowych, nawet w telefonach komórkowych ). Po drodze możemy znaleźć komputery z setkami rdzeni w ciągu kilku lat (i wiem, że wiele systemów operacyjnych już to obsługuje).

Czy bardziej korzystne dla ogólnej wydajności systemu jest zwiększenie prędkości zegara lub zwiększenie liczby rdzeni? Załóżmy, że wchodzimy w setki rdzeni pracujących razem lub prędkości zegara dziesięciokrotnie wyższe niż obecnie (niezależnie od tego, czy jest to fizycznie możliwe).

Jakie są przykłady typowych procesów (np. Szyfrowanie, kompresja plików, edycja obrazów / wideo), które przyniosą największe korzyści? Czy są jakieś procesy, które mogą być, ale obecnie nie są (z przyczyn technicznych) przyspieszane przez zwiększenie ich równoległości?


Załóżmy, że hipotetyczny procesor ma dokładnie taki sam projekt rdzenia (rozmiar słowa, szerokość bitu adresu, rozmiar magistrali pamięci, pamięć podręczna itp.), Więc jedynymi zmiennymi tutaj są szybkość zegara i liczba rdzeni. I znowu nie mówię o jednym, dwóch, a nawet czterech rdzeniach - wyobraź sobie dziesiątki do setek.

Przełom
źródło
9
Wszystko będzie zależeć od tego, co chcesz zrobić na tym komputerze. Wiele rdzeni nadaje się do niektórych celów, a wyższe prędkości zegara do innych.
ChrisF,
@ChrisF Osobiście znam odpowiedź, ale pytam o to z dwóch powodów. Pierwszym z nich jest umieszczenie tych informacji na stronie internetowej (widziałem je tylko w odniesieniu do dwurdzeniowych lub czterordzeniowych procesorów), a drugim jest próba przekazania ludziom wyobrażenia o tym, co nadejdzie „w przyszłości” i pokaż, jakie są zastosowania obu stron równania.
Przełom
3
Powiedziałbym, że chociaż jest to dobre pytanie do rozmowy przy kuflu piwa, to w zasadzie nie jest to dobre pytanie dotyczące wymiany stosów.
EBGreen,
1
Istnieje zbyt wiele zmiennych, a jeśli i inne parametry + ciągłe zmiany technologiczne, aby opracować zwięzłą odpowiedź, która będzie istotna przez dłuższy czas. Jest to interesujący temat na forum lub blogu, ale nie jako coś, co należy określić jako „odpowiedź”. Z tego powodu głosowałem za zamknięciem, więc zacznijcie płonąć !!!
Linker3000,

Odpowiedzi:

12

Należy wziąć pod uwagę dwie podstawowe sytuacje:

  1. Procesor jest używany z komputerem, który wykonuje wyłącznie obliczenia dla jednego programu

  2. Procesor jest używany do wielu programów działających jednocześnie

Pierwsza sytuacja ma miejsce, gdy „szybkość” procesora jest ważniejsza, ponieważ użytkownik chce mieć możliwość szybkiego i wydajnego wykonywania obliczeń. Sytuacje te zwykle dotyczą intensywnego przetwarzania obliczeń, tj. Obliczania liczb pierwszych do szyfrowania / deszyfrowania

Drugi polega na tym, że przydaje się wiele rdzeni, ponieważ każdy program można przypisać do osobnego rdzenia, uwalniając w ten sposób każdy program od wzajemnego „przewijania się”. W dzisiejszym świecie przeciętny użytkownik będzie używał swojego komputera do wielu programów jednocześnie, dzięki czemu przetwarzanie wielordzeniowe będzie pożądane.

Jednak wielordzeniowy ! = Większe prędkości lub wyższa wydajność we wszystkich przypadkach. Ponieważ większość programów jest napisana z myślą o przetwarzaniu na jednym rdzeniu * , nadal należy sprawdzić szybkość zegara. Należy wziąć pod uwagę ich kombinację (wraz z wieloma innymi czynnikami) .


* Istnieją pewne programy i mam nadzieję, że wkrótce zostaną utworzone kolejne, w których jednocześnie można używać wielu rdzeni. Przyszłość oprogramowania można znaleźć w tym „ Programowaniu równoległym ”:

Twórcy oprogramowania nie mogą już polegać na samym zwiększaniu częstotliwości taktowania w celu przyspieszenia aplikacji jednowątkowych; zamiast tego, aby uzyskać przewagę konkurencyjną, programiści muszą nauczyć się, jak prawidłowo projektować swoje aplikacje do działania w środowisku wątkowym. Architektury wielordzeniowe mają pakiet z jednym procesorem, który zawiera dwa lub więcej „rdzeni wykonawczych” procesorów lub silników obliczeniowych i zapewniają - z odpowiednim oprogramowaniem - w pełni równoległe wykonywanie wielu wątków oprogramowania.

- Intel

James Mertz
źródło
Najlepsza odpowiedź, jaką do tej pory widziałem, +1. Czy wiesz, czy możliwe jest przyspieszenie szyfrowania / deszyfrowania za pomocą pewnego rodzaju algorytmu równoległego (lub czy coś takiego w ogóle istnieje)?
Przełom
2

Osobiście uważam, że kluczem jest liczba rdzeni. Rozwój oprogramowania został przeniesiony na systemy sieciowe, więc zasoby lokalne nie są już jedynymi dostępnymi zasobami. Najważniejszym czynnikiem w tym, jak teraz pracujesz, jest to, której sieci jesteś częścią.

Zwróć uwagę na przejście na mobilny Internet szerokopasmowy, stałą łączność, zdalny dostęp itp. Dzięki temu stała łączność wymaga żywotności baterii. Chociaż można dyskutować, które czynniki procesora są bardziej optymalne dla żywotności baterii (masz klasyczne równanie optymalizacji wartości pracy w funkcji czasu), osobiście uważam, że gdybyś musiał wybrać jeden, wybrałbym więcej rdzeni.

Intel pozwala teraz zasilać rdzenie na żądanie. Chociaż nie jest tak optymalna, jak brak rdzeni do spania, opcja użycia większej liczby rdzeni daje elastyczność uruchamiania większej liczby aplikacji z tej samej platformy sprzętowej.

surfasb
źródło
2

Jak wspomina ChrisF w komentarzu, to zależy. Ale ponieważ takie odpowiedzi nie są tak naprawdę odpowiedziami, postaram się znaleźć kilka scenariuszy, w których jeden będzie bardziej korzystny od drugiego:

W większości popularnych procesów, o których wspominasz, liczba rdzeni nie będzie miała większego znaczenia, ponieważ większość pracy jest wykonywana w jednym wątku, który można wykonać tylko na jednym rdzeniu (jednocześnie). W przypadku takich procesów pojedynczy, ale bardzo wydajny rdzeń będzie działał lepiej niż kilka wolniejszych rdzeni. Zarówno szyfrowanie, jak i kompresja plików mogą być wyjątkami od tego, ale wiele zależy od tego, jakie algorytmy są używane i czy można je wykonywać równolegle.

Zapomniałeś jednak o jednym z najczęstszych zadań wykonywanych dzisiaj na komputerach: przeglądaniu. Kilka popularnych przeglądarek otwiera każdą kartę w osobnym procesie (jestem pewien, że Chrome to robi, ponieważ używam tego), co oznacza, że ​​jeśli masz cztery karty otwarte w systemie czterordzeniowym, każde okno przeglądania może (teoretycznie) mają rdzeń „sam w sobie” (ignorując wątki i inne elementy systemu operacyjnego) i działają tak szybko, jakby nie były otwarte żadne inne karty / okna przeglądarki. Dla osób przeglądających z wieloma otwartymi kartami może to być znacząca poprawa wydajności bez konieczności budowania bardzo szybkich rdzeni procesora.

Kluczem do wiedzy, czy system wielordzeniowy z wolniejszymi rdzeniami będzie szybszy niż system jednordzeniowy z szybkim rdzeniem, jest wiedza, czy wykonasz wiele różnych rzeczy jednocześnie, czy kilka, ale ciężkich . Ponieważ będzie się to bardzo różnić w zależności od użytkownika, odpowiedź na twoje pytanie również.


Inne odpowiedzi również zawierają kilka ważnych punktów:

  • wydajność procesora nie polega już na szybkości zegara ani liczbie rdzeni - inne części procesora stają się wąskie, ponieważ poprawia się szybkość zegara i liczba rdzeni.
  • dla większości użytkowników wydajność procesora nie jest na samym początku. Jeśli spędzasz czas w aplikacjach hostowanych, takich jak Dokumenty Google, szybkość karty sieciowej będzie miała znaczenie większe niż szybkość rdzenia procesora. Jeśli oglądasz lub edytujesz materiał filmowy w wysokiej rozdzielczości, wydajność dysku twardego będzie miała większe znaczenie. Itp...
Tomas Aschan
źródło
+1 za zastanowienie się i wymyślenie wyjaśnień, ale chciałbym zwrócić uwagę na jedną rzecz: tak, niektóre przeglądarki umieszczają każdą kartę w osobnym procesie , ale właśnie to się dzieje, ponieważ proces ulega awarii. Większość przeglądarek przynajmniej uruchamia każdą kartę w osobnym wątku, a systemy operacyjne mają możliwość uruchamiania wielu wątków (z tego samego procesu) na różnych rdzeniach.
Przełom
IE 9 obsługuje metodę wieloprocesową. Uważam jednak, że używają określonej liczby procesów i po prostu współużytkują wszystkie zakładki między tymi procesami. Powoduje to, że jest o wiele mniej procesów, niż Chrome może zakończyć, a jednocześnie oznacza, że ​​stracisz tylko kilka kart, jeśli wszystko sprowadzi się do jednego sterty o odcieniu Redmond.
music2myear
Aha, i zależy to również od oprogramowania. Chociaż system operacyjny może ogólnie obsługiwać zarządzanie ruchem i wysyłać oczekujące wątki do dostępnych rdzeni (mentalny obraz match.com dzieje się w moim ponurym krzemie), programy, które same są wielowątkowe (większość produktów Adobe Creative Suite i inne dobrze obsługiwane , nowoczesne narzędzia do tworzenia multimediów) znacznie lepiej wykorzystają możliwości systemu wielordzeniowego.
music2myear
2

Po pierwsze, prędkości pojedynczych rdzeni tak naprawdę nie spadły tak bardzo. Jedynym powodem, dla którego obecna oferta Intela Sandy Bridge nie przewyższa jednordzeniowego Pentium 4 pod względem megaherców, jest to, że Intel nie ma konkurencji, więc nie muszą naciskać tak mocno.

Po drugie, taktowanie to nie wszystko, nawet na jednym rdzeniu. Patrząc na wydajność aplikacji, ponownie w porównaniu z Pentium 4, obecny asortyment Intel jest o około 50% szybszy na cykl zegara . Powody, dla których Sandy Bridge jest szybszy na cykl zegara niż Pentium 4 (Prescott jest jego ostatnią inkarnacją) są liczne, ale mają inteligentny kontroler pamięci, który ma tę samą matrycę z procesorem i wyższą równoległość poziomu instrukcji (ILP) przyczynić się do tego.

Równoległość na poziomie instrukcji oznacza w zasadzie, że procesor patrzy na instrukcje i ich zależności, a jeśli dwie instrukcje nie są od siebie zależne, procesor może rozpocząć ładowanie danych dla obu w tym samym czasie i ewentualnie zmienić kolejność instrukcji dla jednej z przybywają przed drugim.

Po trzecie, niektóre aplikacje rzeczywiście bardzo dobrze korzystają z wielu rdzeni. Na przykład Photoshop prawie zawsze woli więcej rdzeni niż częstotliwość robocza. To znaczy. nawet powolny czterordzeniowy prawie zawsze pokonuje dowolny dwurdzeniowy układ, a każdy dwurdzeniowy pokonuje dowolny jednordzeniowy układ. Tri-core to mieszana torba, często wygrywają z dual-core, ale nie zawsze.

Ogólnie aplikacje, które wykonują ten sam rodzaj operacji dla wielu różnych zestawów danych, najbardziej korzystają z równoległości. Na przykład kompresja wideo lub edycja zdjęć często mogą być dość łatwo zrównoleglone. Z drugiej strony gry komputerowe okazały się trudne do zrównoleglenia. Grafika na nich oczywiście jest bardzo dobrze równoległa, ale ta część jest wykonywana na GPU, a nie na CPU. Pozostała fizyka, księgowość w świecie gry i AI są trudniejsze do zrównania.

Zds
źródło
1

W rzeczywistości dzisiaj najważniejszym czynnikiem nie jest szybkość zegara procesora, wprowadzono wiele nowych funkcji, ponieważ ten „współczynnik porównania” stał się nieuzasadniony.

Dzisiaj musisz przyjrzeć się wielu czynnikom, aby wnioskować o wydajności procesorów. Rzeczy jak:

  • liczba rdzeni
  • liczba wątków operacji równoległych
  • rodzina procesorów (dwurdzeniowy, Pentium, Core i / Calpella, Sandy Bridge itp.)
  • generowanie procesorów (2., 6. itd.), a następnie
  • taktowanie procesora.

Faktycznie, gdy chcę porównać szybkość procesora i skonsultować PassMark z notebookcheck tabel porównawczych. Moim zdaniem testy porównawcze są najlepszym czynnikiem do pomiaru i porównywania szybkości i wydajności procesora.

Diogo
źródło
Tak, ale dla uproszczenia załóżmy, że wszystko inne jest równe (taka sama ilość pamięci podręcznej na rdzeń, ta sama szerokość magistrali adresowej, ten sam rozmiar słowa itp.). Same rdzenie są dokładnie takie same, po prostu a) ile, lub b) jak szybko.
Przełom
Rodzina procesorów i generacja nie mają nic wspólnego z szybkością procesora. W końcu procesory Atom są znacznie nowsze niż P4 lub procesor Core i Core2, ale nikt nigdy nie argumentowałby, że są szybsze. Inne rzeczy, które mają bardziej bezpośredni wpływ na szybkość procesora, to pamięć podręczna matrycy, liczba rejestrów, architektura układu, wielkość ścieżek przewodzących (proces zarządzania nm), możliwości operacji zmiennoprzecinkowych itp.
music2myear
@ music2myear - Odnosząc się do pokolenia, mówię o rodzinie ( superuser.com/questions/314757/… ). W rzeczywistości Atom D525 jest lepszy niż wiele Core 2 ( cpubenchmark.net/cpu_lookup.php?cpu=Intel+Atom+D525+%40+1.80GHz )
Diogo,