Miten lasketaan prosessorin nopeus monen ytimen prosessoreilla?

Sisällysluettelo:

Miten lasketaan prosessorin nopeus monen ytimen prosessoreilla?
Miten lasketaan prosessorin nopeus monen ytimen prosessoreilla?

Video: Miten lasketaan prosessorin nopeus monen ytimen prosessoreilla?

Video: Miten lasketaan prosessorin nopeus monen ytimen prosessoreilla?
Video: Windows 8 Passwort knacken Tutorial [HD] - YouTube 2024, Huhtikuu
Anonim
Taloudellisten kuluttajaluokan monisäikeisten prosessorien esiin nouseminen herättää kysymyksen monille käyttäjille: kuinka tehokkaasti lasketaan monijärjestelmän todellinen nopeus? Onko 4-core 3Ghz-järjestelmä todella 12GHz? Lue, kun tutkitaan.
Taloudellisten kuluttajaluokan monisäikeisten prosessorien esiin nouseminen herättää kysymyksen monille käyttäjille: kuinka tehokkaasti lasketaan monijärjestelmän todellinen nopeus? Onko 4-core 3Ghz-järjestelmä todella 12GHz? Lue, kun tutkitaan.

Tämän päivän kysymys- ja vastausistunto tulee meihin SuperUserin ansiosta. Tämä on Stack Exchange -jako, joka on Q & A-sivustojen yhteisöjoukkoyhtymä.

Kysymys

SuperUser-lukija NReilingh oli utelias kuinka monijärjestelmän prosessorin nopeus todella lasketaan:

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.

Joten mikä on sopiva tapa ilmoittaa kokonaisnopeuden ja, mikä tärkeintä, on jopa mahdollista käyttää yhden ytimen nopeuden nimikkeistöä monijärjestelmässä?

Vastaus

SuperUser-avustajat Mokubai auttaa selkeitä asioita. Hän kirjoittaa:

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

Sitten tehtävä riippuu pitkälti edellisen passin tuloksesta, eikä se pysty käyttämään useita kopioita itseään vahingoittamatta arvoa

'a'

koska jokainen kopio saisi arvon

'a'

eri aikoina ja kirjoittaa sen takaisin eri tavalla. Tämä rajoittaa tehtävän yhteen lankaan ja siten tehtävä voi olla vain yhden ytimen käytössä milloin tahansa, jos se ajetaan useilla ytimillä, jolloin synkronointi korruptio tapahtuisi. Tämä rajoittaa puoleen kaksoisjärjes- telmän keskusyksikköä tai 1/4 quad core -järjestelmää.

Tee nyt tehtävä, kuten:

10: a = a + 1

20: b = b + 1

30: c = c + 1

40: d = d + 1

50: goto 10

Kaikki nämä rivejä ovat itsenäisiä ja ne voidaan jakaa neljään erilliseen ohjelmaan, kuten ensimmäiseen ja samaan aikaan, joista jokainen pystyy hyödyntämään tehokkaasti yhtä ydintä, ilman mitään synkronointiongelmia, tässä Amdahlin laki tulee siihen.

Joten jos sinulla on yksi kierretty sovellus, joka tekee raa'an voimanlaskennan, yksi 12 GHz: n prosessori voittaa kädet alas, jos voit jotenkin tehdä tehtävän jakautua erillisiksi osiksi ja monisäikeisiin sitten 4 ytimet voisivat tulla lähelle, mutta eivät melko päästä, sama suorituskyky, kuten Amdahlin lain mukaan.

Tärkeintä, että monen prosessorin järjestelmä antaa sinulle on reagointikyky. Yhdessä ydinkoneessa, joka työskentelee kovaa, järjestelmä voi tuntua hitaalta, kun suurin osa ajasta voidaan käyttää yksi tehtävä ja muut tehtävät suoritetaan vain lyhyen purskeen välillä suuremman tehtävän, mikä johtaa järjestelmään, joka näyttää hitaalta tai juddery. Monijärjestelmässä raskas tehtävä saa yhden ytimen, ja kaikki muut tehtävät toimivat muiden ytimien kanssa, tekevät töitä nopeasti ja tehokkaasti.

"6 ytimen x 0.2GHz = 1.2GHz" argumentti on roskaa kaikissa tilanteissa, paitsi jos tehtävät ovat täysin rinnakkaisia ja riippumattomia. On olemassa useita tehtäviä, jotka ovat hyvin rinnakkaisia, mutta ne vaativat vielä jonkinlaista synkronointia. Käsijarru on video-trancoder, joka on erittäin hyvä kaikkien käytettävissä olevien prosessorien käyttämisessä, mutta se vaatii ydinprosessia pitämään muut kierteet täynnä tietoja ja keräävät tiedot, joita ne ovat tehneet.

Jokainen ydin itse asiassa tekee x laskutoimituksia sekunnissa, joten laskelmien kokonaismäärä on x (ytimet).

Jokainen ydin pystyy tekemään x laskutoimituksia sekunnissa, olettaen, että työmäärä on sopiva rinnakkainen, lineaarisella ohjelmalla, jolla kaikilla on 1 ydin.

Kellon nopeus on pikemminkin laskenta niiden prosessien määrästä, joita prosessori kulkee toisessa tilassa, niin kauan kuin kaikki ytimet toimivat samalla nopeudella, jokaisen kellojakson nopeus pysyy samana riippumatta siitä, kuinka monta ytimenä on. Toisin sanoen, Hz = (ydin1Hz + ydin2Hz + …) / ytimet.

Mielestäni on väärää ajatella, että 4 x 3GHz = 12 GHz, myönnetty matematiikka toimii, mutta vertaat omenat appelsiineihin ja summat eivät ole oikein, GHz: tä ei voida yksinkertaisesti lisätä yhteen joka tilanteessa. Vaihdan sen 4 x 3GHz = 4 x 3GHz.

Onko jokin asia lisättävä selitykseen? Kuulkaa kommentit. Haluatko lukea lisää vastauksia muilta tech-tajuilta Stack Exchange-käyttäjiltä? Katso koko keskusteluketju täältä.

Suositeltava: