Kako izračunati brzinu procesora na višejezgrenim procesorima?

Sadržaj:

Kako izračunati brzinu procesora na višejezgrenim procesorima?
Kako izračunati brzinu procesora na višejezgrenim procesorima?

Video: Kako izračunati brzinu procesora na višejezgrenim procesorima?

Video: Kako izračunati brzinu procesora na višejezgrenim procesorima?
Video: Макраме подставка как в Pinterest - YouTube 2024, Travanj
Anonim
Pojavom ekonomičnih multi-core procesorima potrošačke razine postavlja se pitanje za mnoge korisnike: kako učinkovito izračunati stvarnu brzinu multi-core sustava? Je 4-jezgreni 3Ghz sustav stvarno 12Ghz? Pročitajte dalje dok istražujemo.
Pojavom ekonomičnih multi-core procesorima potrošačke razine postavlja se pitanje za mnoge korisnike: kako učinkovito izračunati stvarnu brzinu multi-core sustava? Je 4-jezgreni 3Ghz sustav stvarno 12Ghz? Pročitajte dalje dok istražujemo.

Današnja pitanja i odgovori nam se javljaju zahvaljujući SuperUseru - podjele Stack Exchange-a, zajedničkom pogonu Q & A web stranica.

Pitanje

Čitač SuperUser NReilingh bio je znatiželjan kako se brzina procesora za multi-core sustav zapravo izračunava:

Is it correct to say, for example, that a processor with four cores each running at 3GHz is in fact a processor running at 12GHz?

I once got into a “Mac vs. PC” argument (which by the way is NOT the focus of this topic… that was back in middle school) with an acquaintance who insisted that Macs were only being advertised as 1Ghz machines because they were dual-processor G4s each running at 500MHz.

At the time I knew this to be hogwash for reasons I think are apparent to most people, but I just saw a comment on this website to the effect of “6 cores x 0.2GHz = 1.2Ghz” and that got me thinking again about whether there’s a real answer to this.

So, this is a more-or-less philosophical/deep technical question about the semantics of clock speed calculation. I see two possibilities:

  1. Each core is in fact doing x calculations per second, thus the total number of calculations is x(cores).
  2. Clock speed is rather a count of the number of cycles the processor goes through in the space of a second, so as long as all cores are running at the same speed, the speed of each clock cycle stays the same no matter how many cores exist. In other words, Hz = (core1Hz+core2Hz+…)/cores.

Dakle, koji je prikladan način označavanja ukupne brzine sata i, što je još važnije, je li čak moguće koristiti jednorobnu brzinsku nomenklaturu na višejezgrenom sustavu?

Odgovor

SuperUser suradnici Mokubai pomaže razjasniti stvari. Piše:

The main reason why a quad-core 3GHz processor is never as fast as a 12GHz single core is to do with how the task running on that processor works, i.e. single-threaded or multi-threaded. Amdahl’s Law is important when considering the types of tasks you are running.

If you have a task that is inherently linear and has to be done precisely step-by-step such as (a grossly simple program)

10: a = a + 1

20: goto 10

Zatim zadatak ovisi jako o rezultatu prethodnog prolaza i ne može pokrenuti više kopija same sebe bez oštećenja vrijednosti

'a'

budući da bi svaka kopija dobila vrijednost

'a'

u različitim vremenima i pisanje natrag drugačije. Time se zadatak ograničava na jednu nit i time zadatak može biti prikazan samo na jednoj jezgri u bilo kojem trenutku, ako se pokrene na više jezgri, tada će se dogoditi korupcija sinkronizacije. To ograničava na 1/2 od snage CPU dual core sustava, ili 1/4 u quad core sustav.

Sada poduzmite zadatak kao što je:

10: a = a + 1

20: b = b + 1

30: c = c + 1

40: d = d + 1

50: goto 10

Sve te linije su neovisne i mogu se podijeliti u 4 zasebna programa poput prvog i pokretanja istovremeno, svatko može učinkovito iskoristiti punu snagu jedne od jezgri bez ikakvog problema sinkronizacije, tamo gdje Amdahljev zakon dolazi u nju.

Dakle, ako imate jednu aplikaciju s navojem koji rade na brutalnoj sili, jedan 12 GHz procesor bi osvojio ruke, ako nekako uspije podijeliti zadatak u zasebne dijelove i više navojnih, onda bi 4 jezgre mogle biti blizu, ali ne sasvim dosegne, ista izvedba, kao po Amdahlovom zakonu.

Glavna stvar koju vam daje više procesorskih sustava je reakcija. Na jednom jezgrenom stroju koji naporno radi, sustav može izgledati tromo jer se većinu vremena može koristiti jednim zadatkom, a ostale zadatke teku u kratkim rasprsima između veće zadaće, što rezultira sustavom koji se čini sporom ili juddery, Na višejezgrenom sustavu težak zadatak dobiva jednu jezgru, a sve druge zadatke igraju na drugim jezgrama, rade svoj posao brzo i učinkovito.

Argument "6 jezgri x 0,2GHz = 1,2 GHz" je smeće u svakoj situaciji, osim gdje su zadaci savršeno paralelni i nezavisni. Postoji dobar broj zadataka koji su vrlo paralelni, ali još uvijek zahtijevaju neki oblik sinhronizacije. Ručna kočnica je video trancoder koji je vrlo dobar u korištenju svih raspoloživih procesora, ali zahtijeva proces jezgre kako bi ostale niti ispunjene podacima i prikupili podatke s kojima su obavljeni.

Svaka jezgra u stvari radi x kalkulacije u sekundi, pa je ukupan broj izračuna x (jezgre).

Svaka jezgra je sposobna za x kalkulacije u sekundi, uz pretpostavku da je opterećenje prikladno paralelno, na linearnom programu sve što imate je 1 jezgra.

Brzina sata je prilično broj broja ciklusa koje procesor prolazi u sekundi, tako da sve dok se sve jezgre prikazuju istom brzinom, brzina svakog ciklusa sata ostaje ista bez obzira koliko se jezgri nalaze, Drugim riječima, Hz = (core1Hz + core2Hz + …) / jezgre.

Mislim da je pogrešno misliti da 4 x 3GHz = 12 GHz, dodjeljuje matematiku, ali uspoređujete jabuke s narančama i sumi jednostavno nisu u pravu, GHz se ne može jednostavno dodati zajedno za svaku situaciju. Ja bih ga promijenio na 4 x 3GHz = 4 x 3GHz.

Imate li nešto za objašnjenje? Zvuči u komentarima. Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.

Preporučeni: