Computer: CPU, Leistung + Anzahl der Kerne =?

5 Antworten

Ne so kann man das nicht rechnen. Durch mehr Kerne können mehrere Threads gleichzeitig berechnet werden, aber schneller werden sie nicht berechnet. Wenn ein Programm auf mehrere CPUs ausgelegt ist, dann erfährt es durch mehrere CPUs schon eine Beschleunigung, aber nur in wenigen Ausnahmen multipliziert sich die Geschwindigkeit mit der Anzahl der Kerne (zB bei Videoencoding).

Die Geschwindigkeit kann man aber auch nicht wirklich am Takt festmachen. Jede CPU leistet pro Takt andere Werte. Die Frequenz ändert sich bei den CPUs ja schon seit Jahren nichtmehr; die Arbeitsleistung steigt aber trotzdem weiterhin bei jeder neuen CPU.


xSimple 
Beitragsersteller
 15.05.2013, 12:11

Super, ähnlich hatte ich es auch in Erinnerung, danke dir! :)

0

Nein man kann es so nicht sehen. Jeder Kern Taktet mit dem entsprechenden Speed z.B. 2,5 Ghz . Wenn man also eine höhere Rechenleistung haben will schaltet man die Kerne ja dann zu dies heißt aber nicht gleich das sich dann der Speed Verdoppelt sondern das eine erhöhte Rechenleistung ( keine Verdoppelung) stattgefunden hat. Somit arbeiten 2 Prozessoren mit je z.B. 2,5 Ghz Takt an dem gleichen Programm/Problem. Die so entsprechende Zeit die eine CPU normalerweise benötigt wird entsprechend um Faktor X verkürzt durch die zweite Nutzung einer CPU ,nicht Halbiert.


xSimple 
Beitragsersteller
 15.05.2013, 12:12

Danke, hatte ich doch recht. ^^

0

nein so kannst du das nicht rechnen.

ein multicore wird zwar mit 4 x 2,5 ghz angegeben, aber einfach multiplizieren ist falsch. jeder core kann nur einen bzw zwei (smt) aufgaben berechnen, sogenannte threads. für jeden thread stehen damit 2,5 ghz zur verfügung. da die anderen kerne nur unabhängige threads bearbeiten können aber nicht bei dem thread eines anderen kerns helfen können, darfst du die 2,5 ghz nicht einfach zusammen rechnen


xSimple 
Beitragsersteller
 15.05.2013, 12:13

Danke!

0

Die CPU hat 2,5 GHz. Die Kerne sind dafür da, dass Programme darauf aufgeteilt werden können und somit mehrere Anwendungen gleichzeitig erledigt werden. Es ist nicht möglich Kerne "zusammen zu legen".


M3900T  15.05.2013, 11:58

Sie werden aber durch Software entsprechend dazugeschaltet oder abgeschaltet je nach Anwendung und Nutzen bzw. Programm das dies Unterstützt.

1
xSimple 
Beitragsersteller
 15.05.2013, 12:12

Danke!

0
Commodore64  15.05.2013, 13:15

Es ist nicht möglich Kerne "zusammen zu legen".

Doch, wenn man das Programm so schreibt, dass völlig unabhängige Aufgaben von verschiedenen Kernen erledigt werden. Das wird schon gemacht, moderne Spiele verteilen ihre verschiedenen Aufgaben so, dass möglichst wenig Datenaustausch zwischen den Kernen erfolgt, die Kerne nicht aufeinander warten müssen.

Um das Problem mal zu verdeutlichen, eine Person hat die AUfgabe

4*3+2 auszurechnen.

Die rechnet dann

  • 4*3 = 12
  • 12+2 = 14

in zwei Schritten.

Setzt man zwei Personen (Dual-Core) an die selbe Aufgabe, passiert folgendes:

  • A rechnet 4*3 = 12; B wartet
  • B fragt A was er ausgerechnet hat
  • A legt sein Ergebnis (12) in eine Ablage (RAM); B wartet
  • B holt sich das Ergebnis (12) aus der Ablage; A wartet
  • B rechnet dann 12+2 = 14; A wartet

So sind dann doppelt so viele Personen (Cores) mit doppelt so viel Zeit (Arbeitstakte) beschäftigt.

Um das zu verhindern, muss A die Aufgabe ganz alleine bearbeiten und B macht entweder gar nichts um A nicht zu stören oder kriegt eine völlig andere Aufgabe die nichts mit der Rechnung zu tun hat.

0

Schöne Idee, leider geht das nicht.

Letztendlich muss das Programm auch mit den ganzen Kernen umzugehen wissen. Ein Betriebsystem wie Windows XP Home würde es nicht jucken ob da 4 oder 16 Kernen vorhanden sind. DOS würde nicht einmal eine zweite CPU/Kern erkennen bzw nutzen können.

In erster Linie ist die Geschwindigkeit massgebend, dann die Kern - sofern das vom Betriebssystem und den Applikationen unterstützt und auch genutzt werden kann.