Laden...

Multi Core Prozessor (Was bringen QuadCores? / Verteilung von Aufgaben)

Erstellt von userid4106 vor 15 Jahren Letzter Beitrag vor 15 Jahren 11.598 Views
U
userid4106 Themenstarter:in
457 Beiträge seit 2006
vor 15 Jahren
Multi Core Prozessor (Was bringen QuadCores? / Verteilung von Aufgaben)

Hallo,
ich überlege mit ende des Jahres ein neues Notebook zu holen.Hab mit dem gedanken gespielt mri eine Quadcor zu gönnen. Doch was ich allerdings so gelesen habe sollte man liieber die Finger davon lassen. Erstens würde der soviel Strom fressen das von Mobilität keine Rede mehr sein könnte und zweitens wären die wenigsten Anwendungen in der Lage das voll und ganz auszuschöüfen. Unfd noch im gleichen Zug laß ich irgendwo das selst die aktuellen Dual Cores nicht mal richtig ausgelastet werden.
Aber wo ist denn nun genau der Flaschenhals?Liegt es bei der grundlegenden verteilung der "Aufgaben" auf dem Prozessor und wieso ist das ganze so schwierig? Und wer regelt überhaupt beispielsweise das Multithreading. Nehmen wir mal an beim Betriebssystem XP(was ich benutze). Wer macht das da bzw welches "Modul" steckt dahinter. Ist es der Kernel?

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Second Sun,

das Problem ist, dass es sehr schwierig ist, normale - also sequentiell geschriebene - Programme automatisch zu parallelisieren. Deshalb wird das gar nicht erst versucht. Stattdessen verteilt der Scheduler vereinfacht gesagt die verschiedenen Anwendungen auf die verschiedenen Cores. Eine singlethreaded Application läuft daher nur auf einem Core. Es gibt momentan nur sehr wenige Anwendungen, die mehrere Cores gleichzeitig ausnutzen können, z.B. Videoschnittsoftware.

Zwei Cores können trotzdem oft noch sinnvoll eingesetzt werden, z.B. damit das gerade benutzte Anwendungsprogramm und der Virenscanner echt parallel laufen. Aber vier gleichzeitig unter Last laufende Anwendungen hat man selten, weshalb man von vier Cores momentan keinen echten Gewinn hat (es sei denn, man will Videoschnitt machen).

Da es auf der anderen Seite kaum noch Single Core Prozessoren gibt, ist die Frage momentan einfach zu beantworten. Mit DualCore fährt man momentan klar am besten ...

... zumal es nicht nur schwierig ist, Programme automatisch zu parallelisieren, sondern auch Menschen tuen sich schwer damit. Deshalb wird viel Software weiterhin singlethread geschrieben werden. Die Situation, dass man mehr als zwei Kerne nicht sinnvoll nutzen kann, wird noch eine ganze Weile bestehen bleiben.

herbivore

S
341 Beiträge seit 2008
vor 15 Jahren

Servus Second Sun,

ich kann mich herbivore nur anschließen und bestätigen. ich hab mir für meinen Desktop ein quad zugelegt und ich muss sagen das einzige was alle 4 cores ans maximum bringt ist die berechnung von primzahlen. da das nicht der regelfall ist fährt man grad mit einem guten dual-core viel besser. Abgesehen davon das es wirklich kaum anwendungen gibt die multithreading unterstützen.

Ich selbst habe schon versucht meinen quadcore aufm desktop mit diversen anwendungen ans limit zu bringen aber es ist unter normel arbeitsumständen welche dazu realistisch sind nicht zu packen.

PS: Ich wollte nur auch mein senf dazugeben 😁

Gruß SMou

**Nur die Kenner können mit 10 Fingern bis 1023 zählen !!**
private int Main()
{
   string programmingSkills = getMySkills("programming")
   return = 1;
}
R
494 Beiträge seit 2006
vor 15 Jahren

Wenn man Virtual PC oder VMWare nutzt zahlen sich mehre Kerne ziemlich schnell aus.

4.207 Beiträge seit 2003
vor 15 Jahren

Auch wenn viele Dienste laufen (Stichwort IIS + SQL Server) kann ein Quad durchaus was nutzen.

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

U
userid4106 Themenstarter:in
457 Beiträge seit 2006
vor 15 Jahren

okay,also bei mir laufen regelmäßig folgende programme:
ica,msn,iss6,dyn dns updater,msvs2008,winamp,firefox und dann noch ein paar andere sachen.aber die ersten laufen generell irgendwie immer.aber ob es sich dafür lohnt einen quad core zu holen?

U
userid4106 Themenstarter:in
457 Beiträge seit 2006
vor 15 Jahren

hoppla,meinte natürlich iis6.und was hat es auf sich mit vmware bzw virtual pc.hab zwar beide drauf aber wirklich nutzen tu ich sie nur selten.
was mich aber genauer interessiert ist WIESO es so schwer ist mit dem ganzen verteilen der threads auf den cores...kann mir da jemand lesestoff empfehlen?

888 Beiträge seit 2007
vor 15 Jahren

Ich hab mir auch einen Quad zugelegt, sogar einen etwas älteren.
Ich muss sagen, ich schaffe es nicht auf 100% CPU Auslastung im Taskmanager.
D.h.

  • Ich entpacke 2-3 Images
  • Schiebe Gigabytes übers Netzwerk
  • Brenne eine DVD
  • Skype, WinAmp, FireFox,... alles an
  • VisualStudio offen

...ALLES gleichzeitig & alles flüssig.

ICH LIEBE ES & möchte es nicht mehr missen.

S
81 Beiträge seit 2007
vor 15 Jahren

...ALLES gleichzeitig & alles flüssig.

FACK

Mir wurde auch gesagt, ein Quad lohne sich nicht...Ich muss mittlerweile die Taskleiste 2-zeilig anzeigen lassen, da ich endlich so unendlich viele Programme gleichzeitig flüssig laufen kann. 🙂

Wenn du gern Programme "einfach so" auf "Abruf" laufen hast - wie ich - dann biste mit nem Mehrkern gut bedient, habe nun kA, wie sich ein DuoCore auswirkt, aber ich bin mit meinem Quad und den 4GB RAM zufrieden (Wobei ich beim RAM bald auf 8 gehen will, damit ich das Pagefile komplett abschalten kann)

  • Flo

Das Weltall ist ein Kreis, dessen Mittelpunkt überall, dessen Umfang nirgends ist.
- Blaise Pascal

1.361 Beiträge seit 2007
vor 15 Jahren

Hallo secondSun,

was du von MultiCore-Prozessor hast?
Du kannst endlich C# programmieren zusammen mit der Task Parallel Library von Microsoft.
Ich selbst konntes noch nie testen, da es auf meinem SingleCore ziemlich witzlos is 😉

Und damit man nicht mehr meckert über singleThread applikationen sollte man genau das nutzen ! 👍

Und son

Parallel.For(0, 100, delegate(int i) { 
  a[i] = a[i]\*a[i]; 
});

sieht zwar erst etwas strange aus, aber gut formatiert nicht sofort von einer normalen for-Schleife zu unterscheiden.

Und zum Notebook:
Rein von meinem Empfinden find ich Quadcores in Notebooks irgendwie überproportioniert. Aber DualCores find ich jetzt nich schlimm (schon seltsam, is ja auch nur faktor 2 🤔 )
Aber vielleicht is auch der Preis einfach ein Grund für Duals und gegen Quads

beste Grüße
zommi

R
494 Beiträge seit 2006
vor 15 Jahren

Man muss aber den Gesammten PC im Auge behalten. Es hilft der beste Prozesor nichts wenn die Festplatte lahmt. Gerade bei Notebooks und 5400 u/min kann man außer bei reinen CPU geschichten ohne großartig io keine Wunder erwarten

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Joetempes, hallo Schwermetaller,

Ich muss sagen, ich schaffe es nicht auf 100% CPU Auslastung im Taskmanager.

habe nun kA, wie sich ein DuoCore auswirkt

zwei Sachen sind doch an euren Aussagen auffällig. Erstens habt ihr ein vom Durchschnitt deutlich nach oben abweichendes Nutzungsverhalten und zum anderen könnt ihr nicht wirklich sagen, ob dafür trotzdem schon ein DualCore ausreichen würde (was zu vermuten steht, wenn eine Prozessorauslastung von 100% selbst unter den geschilderten Bedingungen nicht zu erreichen ist).

In der c't stand sinngemäß zu lesen, dass mit einem DualCore der Wechsel zwischen mehrerern offenen Anwendungen spürbar schneller geht, ein QuadCore in dieser Hinsicht aber keinerlei weitere Beschleunigung bringt.

Versteht mich nicht falsch. Es freut mich, dass ihr mit euren QuadCores zufrieden seid. Nur kann man daraus m.E. keine generelle Empfehlung für QuadCores ableiten. Vor dem Hintergrund des gegenüber DualCores höheren Stromverbrauchs, der im Schnitt niedrigeren Taktfrequenz und der höheren Preise, würde ich im Gegenteil meine Empfehlung für DualCore bekräftigen wollen.

Hallo Second Sun,

was mich aber genauer interessiert ist WIESO es so schwer ist mit dem ganzen verteilen der threads auf den cores

Threads auf Cores zu verteilen ist ja nicht schwierig. Das Problem ist, dass die meisten Anwendungen nur einen Thread haben. Und wenn man zwei Anwendungen mit je einem Thread laufen hat, dann kann man die zwei Threads auf zwei, aber nicht auf vier Cores verteilen. Wenn dann diese Threads zudem nicht ständig arbeiten, sondern vielleicht auf Benutzereingaben warten, lastet man noch nichtmal zwei Cores aus.

Das Problem ist einen Thread auf mehrere Cores zu verteilen. Aber warum das schwierig ist, finde ich offensichtlich. Bei einem normalen sequentiellen Programm bauen nun mal viele Schritte und Berechnungen auf den vorangegangenen auf, so dass man die Schnitte nicht einfach parallel ausführen kann. Und selbst wenn es geht, handelt man sich Synchronisations- und Kommunikationsaufwand ein. Deshalb nützt es nichts, einzelne Prozessoranweisungen auf zwei Cores parallel auszuführen, weil für eine parallele Prozessoranweisung dann x Prozessoranweisungen zur Synchronisation und Kommunikation nötig wären. Und größere Programmblöcke haben wiederum meistens irgendwelche Abhängigkeiten voneinander, so dass sie eben nicht parallel ausgeführt werden können.

Parallelität ist heute eigentlich nur da wirklich beherrschbar, wo die gleichen Operationen für große Mengen von gleichartigen Daten durchgeführt werden müssen, z.B. beim Weichzeichnen einer großen Bitmap, wo jeder Prozessor eines QuadCores einfach ein Viertel des Bildes berechnen kann ... aber eben auch nur, wenn es die Software unterstützt. Oder da, wo kaum oder keine Anhängigkeiten bestehen, z.B. bei zwei parallel laufenden unterschiedlichen Anwendungsprogrammen.

herbivore

1.361 Beiträge seit 2007
vor 15 Jahren

Hi herbivore,

noch ein Zusatz zum Bitmap weichzeichnen.
Die Operation ist relativ simpel, sodass hierbei der Speicherzugriff fast mehr ins gewicht fällt. (Also jeden Pixel ausm Ram holen und wieder zurückschreiben)
Und da bringen dann DualCores auch nicht sooo viel (jedenfalls nicht den Faktor, den man vielleicht beim Primzahlberechnen bekomt), weil sie ja immernoch auf ein und denselben Ram warten müssen.
Speziell mit MMX/SSE lässt sich das weichzeichnen fast in einem Taktschritt machen, ohne mehrere Cores.

Das wär natürlich insgesamt cool, wenn irgendwann mal die SSE-Befehle auf mehrere Prozzis erweitert werden. Echtes MIMD mit nur einem Maschinencode.

Erst bei "komplexeren" Berechnungen sollte man wirklich die Mehrkerne merken, eben bei Video enco/decodierung.

beste Grüße
zommi

U
userid4106 Themenstarter:in
457 Beiträge seit 2006
vor 15 Jahren

ich hab zu danken für die hilfreichen antworten😉 also werd ich mir am besten einen dual core zulegen🙂 denn videobearbeitubngssoftware hat mich persönlich noch nie interessiert^^.

S
119 Beiträge seit 2008
vor 15 Jahren

Der Thread ist zwar schon etwas älter aber ich muss heir auch meinen Senf dazugeben 😉

Also ich persönlich finde man sollte sich derzeit auf jeden Fall einen Quad zulegen, obwohl derzeit kaum Programme Quads unterstützen. Wenn man sich einen PC kauft sollte man nicht auf altbewährte Technelogien wie z.B. die betagten Dual Cores setzen weil diese schon ein paar Monate nach dem Kauf komplett veraltet und im Vergleich zu den neuen Bauteilen völlig nutzlos wären. Meinen PC hab ich jetzt fast schon 2 Jahre und ich kann alle Spiele die bis jetzt erschienen sind auf höchst möglichen Details spielen. Auch Crysis, aber das hat mich erlich gesagt selbst überrascht, denn mein PC war schon über 1 Jahr alt als ich mir Crysis geholt hab. Hätte ich mir damals keinen Dual Core gekauft (oder inzwischen Vista installiert) wäre so eine beeindruckende Leistung unmöglich gewesen, und nur so ein interresantes Detail nebenbei: Als ich mir meinen PC gekauft habe sagten alle ich solle mir keinen Dual Core kaufen, weil das derzeit noch von keinem Programm so richtig unterstützt wird und das man das Geld lieber in einen guten Single Core investiert und man dadurch merklich mehr Leistung rauskriegt 😉 Wenn ichs getan hätte, hätte ich heute echt Probleme.

Manche Leute sagen jetzt vielleicht das ich immer die neueste Hardware brauche weil ich (wie ihr vielleicht gemerkt habt) so ziemlich jedes gute und gehypte Spiel spiele das erscheint und das auch ohne Ruckeln und mit maximaler Grafikeinstellung tun will aber als erfahrener Datensammler und Nicht-Defragmentierer behaupte ich jetzt mal das man wenigstens eine gute CPU braucht sonst lässt die Leistung eines PCs spätestens nach 1 - 2 Jahren extrem nach, dann dauert alles was man am PC tut ewig.
Mein PC leidet da aber noch stärker darunter als andere PCs weil ich bin einer der wenigen die es schaffen auf einer 1 TB Platte Platzprobleme zu kriegen 😉 Is aber auch kein Wunder ich hab neulich in meinem Downlads Ordner Dateien entdeckt die 7 Jahre alt sind und noch von meinem vorvorletzten PC stammen.

Und das alte Argument das man sich keinen Quad gekauft hat weil das viel teurer gewesen wäre zieht jetzt auch nicht mehr^^

Der direkte Vergleich zwischen einem Quad für 150€ und einem Dual für 200 € zeigt, dass der Quad immer noch schneller ist als der Dual.

Fazit: Auch wenn die 4 Kern Technologie derzeit noch nicht so viel bringt (mal abgesehen von der fast 1,4 fachen Leistung auch ohne das das Programm Quads unterstützt) sollte man sich auf jeden Fall einen Kaufen. Den das ist die einzig zukunftssichere Technologie. 3 - 4 Jahren wenn man sich einen neuen PC kauft gibt es immerhin schon 16 - Kern CPUs 😉

"2 Dinge sind unendlich die Dummheit der Menschen und das Universum, aber beim Universum bin ich mir noch nicht so ganz sicher."

  • Albert Einstein
458 Beiträge seit 2007
vor 15 Jahren

Und wenn der FSB eine niedrige Taktfrequenz hat bringen dir auch deine x² Kerne nichts. Rasend schnelle CPU ist eben nicht alles.

be the hammer, not the nail!

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Sweet,

die betagten Dual Cores setzen weil diese schon ein paar Monate nach dem Kauf komplett veraltet und im Vergleich zu den neuen Bauteilen völlig nutzlos wären.

das ist mehr als eine Übertreibung und kann man so weder stehen noch durchgehen lassen. Selbst für die sehr individuelle Sicht eines hardcore games gilt das so einfach nicht.

Natürlich wird es während der Lebensdauer eines heute gekauften Quad-Cores Programme geben, die dessen Leistungsfähigkeit ausnutzen. Das werden aber nur wenige Programme sein (sicher Spiele, Videobearbeitung und ähnliches). Viele andere Programm werden nicht davon profitieren. Deshalb muss jeder aufgrund seines Anwendungsprofils selbst entscheiden, ob er das braucht oder nicht.

Wie du schon richtig sagst, wird die Zahl der Kerne in den nächsten Jahren rapide steigen. Daher ist man - wenn man deiner Argumentation folgen würde - mit einem Quad-Core genauso wenig zukunftssicher wie mit einem Dual-Core.

Es ist natürlich auch eine Frage des Preises. Wenn mich ein Quad-Core nicht mehr kostet als ein Dual-Core gleicher Taktfrequenz und gleichzeitig der Stromverbrauch nicht (signifikant) höher ist, dann sollte man natürlich zum Quad-Core greifen. Ich kann mir aber nicht vorstellen, dass dieser Punkt schon erreicht ist.

herbivore

A
266 Beiträge seit 2007
vor 15 Jahren
Noch mehr Senf

Vergiss aber bitte nicht dass es hier um ein Notebook ging... und der Stromverbrauch eines QC > DC, was bei Notebbooks sehr ins Gewicht fällt wenn man sein Notebook nur 1 Std statt 4 ohne Steckdose betreiben kann...

Von all den Sachen, die mir verloren gegangen, hab ich am meisten an meinem Verstand gehangen... MfG...

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Sweet,

habe gerade heute in der c't gelesen:

Während Dual-Core-Prozessoren bei gleicher Taktfrequenz deutliche höhere SYSmark 20007-Punktzahlen erreichen als Einzelkerne, bringen Quad-Cores hier nur minimale Vorteile im Vergleich zu Doppelkernen. Am stärksten von Multi-Cores profitieren - kaum überraschend - die Teil-Benchmarks Video Creation und 3D Modeling. Vergleicht man die beiden 3,2-GHz-NetBurst-Prozessoren Pentium 4 641 (1 Kern) und Pentium D940 (2 Kerne), liefert letzterer eine um 22 Prozent höhere SYSmark 20007-Gesamtpunktzahl (Video Creation: +34%); ein Core 2 Quad Q9450 hingegen ist im Mittelwert nur um 6,6 Prozent schneller als ein Core 2 Duo E8200 (beide 2,66 GHz) und liefert bei "Video Creation" lediglich 17% Vorteil - bei E-Learning ist er sogar um 4 Prozent langsamer.

Und das obwohl der SYSmark 20007 extra Programme parallel ausführt um Muti-Cores besser auszulasten.

Ich finde das relativiert deine Lobpreisung von Quads doch ziemlich. 🙂

herbivore

C
401 Beiträge seit 2007
vor 15 Jahren

Threads auf Cores zu verteilen ist ja nicht schwierig. Das Problem ist, dass die meisten Anwendungen nur einen Thread haben.

Also da Second Sun unter anderem Visual Studio benutzt und das laut Task Manager gerne mal 30+ Threads hat sollte die Verteilung doch ganz gut laufen. Intel bringt ja nun auch mit der Centrino 2 Plattform Quad Cores für Notebooks. Die werden dann auch weniger Strom fressen. Also ich würde da evtl. noch 2 Monate abwarten und gucken, was die Centrino 2 Prozessoren so können.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Corpsegrinder,

Also da Second Sun unter anderem Visual Studio benutzt und das laut Task Manager gerne mal 30+ Threads hat sollte die Verteilung doch ganz gut laufen.

Das halte ich für Wunschdenken. Die reine Anzahl der Threads macht ja keine Aussage darüber, ob die Last zwischen den Thread vernünftig verteilt wird. Ich halte das für unwahrscheinlich.

herbivore

3.971 Beiträge seit 2006
vor 15 Jahren

Fürs MultiCore Programmieren gibts bereits eine fertige Bibliothek. MSDN: Optimieren von verwaltetem Code für Mehrkerncomputer

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...