Jak szybki jest każdy rdzeń w dwurdzeniowym procesorze?

10

Mój Macbook ma dwurdzeniowy procesor 2,4 GHz. Ponieważ ma dwa oddzielne rdzenie, oznacza to, że może wykonywać dwie funkcje jednocześnie, prawda?

Czy to oznacza, że ​​każdy rdzeń jest w przybliżeniu. 1,2 GHz każdy (dla połączonego 2,4 GHz), czy faktycznie tak naprawdę każdy 2,4 GHz, a zatem działa skutecznie przy 4,8 GHz?

Myli mnie podwójny (i czterordzeniowy) procesor.

Josh Hunt
źródło
1
Warto również zauważyć, że częstotliwość rdzenia nie jest tak naprawdę ważnym czynnikiem w określaniu liczby operacji / instrukcji, które sekunda może wykonać procesor (obecnie).
Callum Rogers
Czy dwa samochody jadące autostradą z prędkością 50 mil na godzinę „skutecznie jeżdżą z prędkością 100 mil na godzinę”? Nie można dodawać prędkości w ten sposób, to nie ma sensu.
David Schwartz

Odpowiedzi:

17

Każdy rdzeń działa z częstotliwością 2,4 GHz.

Nie oznacza to jednak, że Twój system jest dwa razy szybszy niż system jednordzeniowy 2,4 GHz. Równoległość ma (co do zasady) co najwyżej liniowe przyspieszenie, ale w rzeczywistości często jest znacznie wolniejsza (choć wciąż szybsza niż pojedynczy rdzeń).

Joey
źródło
3
szybszy niż pojedynczy rdzeń, z wyjątkiem dziwnego przypadku wątków w Pythonie.
cobbal
Naprawdę? Wątek Pythona faktycznie spowalnia program? Czy to tylko przesada?
stalepretzel
+1 - Możesz chcieć mieć krótki paralelizm na temat równoległości, ale nie jest to konieczne. Może z ładnym wykresem? :)
romandas
1
@stalepretzel: Wiele znaczących implementacji Pythona ma coś o nazwie a, Global Interlock Cacheco oznacza, że ​​tylko jeden wątek może modyfikować globalny (tj. stan współdzielony na raz). To naprawdę spowalnia rzeczy podczas próby wielowątkowości, w wielu przypadkach faktycznie spowalniając program niż odmiana jednowątkowa.
Callum Rogers
2

Powyższy Johannes ma rację, mówiąc o maksymalnej częstotliwości dla każdego rdzenia w procesorze wielordzeniowym. Częstotliwość odnosi się do każdego rdzenia. Tak więc procesor wielordzeniowy 2,4 GHz zazwyczaj działa na każdym procesorze z maksymalną częstotliwością 2,4 GHz. Istnieją dwa wyjątki (jeden bardzo powszechny i ​​jeden nowy):

  • Częstotliwość procesora może być dynamicznie skalowana w oparciu o wymaganą wydajność i pobór mocy, aby oszczędzać energię, gdy energia nie jest potrzebna lub w niższej temperaturze (stan P).
  • Ponadto najnowsze procesory mają funkcję „Turbo”, w której jeden rdzeń działa szybciej niż oceniono, gdy inne rdzenie nie są używane (Turbo Boost).
Hanleyp
źródło
1

Aby być całkowicie jasnym, posiadanie wielu rdzeni NIE przyspieszy żadnego programu, chyba że został specjalnie zaprojektowany do wielowątkowości.

Efektem posiadania wielu rdzeni jest:

Każdy wątek działa co najwyżej tak szybko, jak prędkość zegara rdzenia. Przetwarzanie równoległe umożliwia aplikacji uruchamianie więcej niż jednego wątku jednocześnie.

Oznacza to, że co najwyżej twoja moc obliczeniowa będzie podwójna, ale nie w jednym wątku.

John Gietzen
źródło
8
Jest to głównie, ale nie całkowicie, prawda. Nowoczesne systemy operacyjne są wielowątkowe, więc nawet aplikacje jednowątkowe mogą zobaczyć wzrost wydajności na sprzęcie wielordzeniowym, ze względu na wywołania systemu operacyjnego i niecelowe narzuty, które można równolegle łączyć.
Wedge
0

Twoje pytanie dotyczy procesorów Core 2, a nie Core i7. Pamiętaj jednak, że jeśli kupisz Core i7 920, zobaczysz, że procesor jest czterordzeniowym procesorem działającym na 2,66 GHz. Oznacza to, że każdy rdzeń działa z częstotliwością 2,66 GHz. Jednak ze względu na Turbo Boost Core i7 procesor może faktycznie pracować z częstotliwością 2,8 GHz, szczególnie jeśli używasz aplikacji jednowątkowych.

Jak zauważyli inni, nie można pomnożyć szybkości procesora przez liczbę rdzeni, aby określić, jak „szybka” jest, po prostu zaznaczam, że w rzeczywistości jest to nawet bardziej mylące niż w przypadku obecnej generacji procesorów Intel .

ChrisInEdmonton
źródło