Dual und Quad CPUs: Wie parallelisierbar ist Software wirklich?

Hallo Leute,

ich selber bin kein Programmierer und habe allenfalls lockere Grundkenntnisse. Deshalb interessiert mich, wie Programmierer wie ihr die im Threadtitel gestellte Frage beantworten würden.

Vor der Zeit der Mehrkernprozessoren war es meist so, dass der Benutzer einer Software seine Hardware an diese anpassen musste, wenn sie nicht flott genug lief (besonders im Spielesektor).

Seit Einführung der Mehrkern-CPUs haben die Seiten plötzlich gewechselt. Selbst dem weniger liquiden PC-Enthusiasten stehen plötzlich zweistellige Ghz-Zahlen an Rechenleistung zur Verfügung - die Softwareentwickler sind im Zugzwang und (noch?) auf der Verliererschiene.

Obwohl es Mehrkern-CPUs im Mainstreambereich seit ca. zweieinhalb Jahren gibt (auf die PC-Branche bezogen schon eine kleine Ewigkeit) ist bis auf Profianwendungen, Betriebsystemen und vereinzelt Spiele keine Software wirklich parallelisiert. Was dazu führ,t dass viele sich lieber einen älteren DualCore mit hoher Taktzahl zulegen als einen Quad, der zumindest nominal wesentlich mehr Leistung hat.

Liegt es daran, das Softwareentwickler durch ihre aufrüstwillige Kundschaft aus früherer Zeit zu bequem geworden sind oder an der berühmt-berüchtigten "Faulheit der Programmierer" (von diesen selbst natürlich als Effizienz betitelt ;) )?

Oder sind es doch wohl eher andere Gründe?
Erfordert das Umdenken auf Parallelität soviel Zeit oder ist die meiste Software gar nicht so multithreading-tauglich wie angenommen/gewünscht/gehofft?

Bei ersterem wäre dann die Frage interessant, wie lange es noch dauert bis der Großteil der verfügbaren Software vielleicht sogar die Brot-und-Butter Freeware vom Freak um die Ecke multithreaded. Von welchen Faktoren hängt das ab?

Letzteres, also die Frage nach der Multithreading-Tauglichkeit von Software, wäre im negativen Fall schon gravierender. Dann würde früher oder später jeder auf gigantischen Taktfrequenzen hocken, die die meiste Zeit nur brachliegen.

Auf eure Antworten bin ich schon gespannt :)
 
Große Softwareprojekte basieren auf Jahre (wenn nicht gar Jahrzehnte :rolleyes: ) altem Codekern. Von heute auf Morgen eine Threadunterstützung hineinzufrickeln dürfte sehr schwer sein (einfacher wäre wohl das Neuschreiben) - vor allem da die älteren Sprachen (in denen wohl auch ein großer Teil der "Anwendersoftware" geschrieben wird/wurde) keine native Threadunterstützung anbieten.

Da wird eher die "Brot-und-Butter Freeware vom Freak um die Ecke" multithreadingfähig (oft ist es schon der Fall - da hier einfach weniger Altlasten und Kompatibilitäten mitgeschleppt werden).

Das ist wohl viel Schwerwiegender, als das Umdenken der Programmierer. Wobei das auch nicht unterschätzt werden sollte - bei richtiger Vorgehensweise sind nämlich viele Probleme durchaus parallel lösbar.
 
Gerade im Spielesektor setzt sich die Unterstützung für Multi-Core-CPUs ja gerade durch. Auf neueren Spielen findet man immer wieder mal Angaben wie "Benötigt min. 2.5GHz oder 1.6GHz DualCore". So laufen Spiele wie Spore mittlerweile sogar auf einfachen Laptops flüssig. Ist also aus meiner Sicht eher eine Frage der Zeit wann alte Software, die noch nicht SMP-fähig ist, durch neuere Programme abgelöst wird. Da besteht nämlich das von CDW genannte Problem.
 
hi

ich frage mich wohin das überhaupt noch hinführt?
mit dem neuen flaggschiff von intel dem "intel core i7", sollen ja noch mehr kerne als quad
möglich sein.

meine vermutung in naher zukunft ist, es wird keine reinen cpu's mehr von intel und amd geben.
diese funktion werden dann wohl die grafik cpu's von nvidia & co übernehmen.
und wie "bitmuncher" schon sagt, die spieleentwickler sind meist die ersten (im kommerziellen bereich)
die auf hardwareveränderungen reagieren, und die arbeiten in erster linie mit den grafikkartenherstellern eng zusammen.
also, was liegt da wohl nahe...

das würde auch endlich den ganzen sockel-quatsch beenden.

cu
-= pillepalle =-
 
Da gab es, oder gibt es, tatsächlich so eine Streit zwischen Intel und AMD/ATI. Intel meinte, dass man bald keine Grafikkarten mehr bräuchte, weil ja die Prozessoren die Grafikberechnung übernehmen könnten (Dort sollte in den CPUs dann noch ein bisschen zusätzliches Kram eingebaut werden, wäre aber nur kleinkram).
ATI meinte dann, dass man dann keine CPUs mehr bräuchte, weil die Grafikarten auch die CPU-Berechnungen mit übernehmen könnten (Stichwort: Mehrkern Grafikkarten) :D

Mal schauen wie es sich entwickeln wird :)
 
Original von bitbender
Intel meinte, dass man bald keine Grafikkarten mehr bräuchte, weil ja die Prozessoren die Grafikberechnung übernehmen könnten (Dort sollte in den CPUs dann noch ein bisschen zusätzliches Kram eingebaut werden, wäre aber nur kleinkram).
ATI meinte dann, dass man dann keine CPUs mehr bräuchte, weil die Grafikarten auch die CPU-Berechnungen mit übernehmen könnten (Stichwort: Mehrkern Grafikkarten) :D

Mal schauen wie es sich entwickeln wird :)

Beide haben Unrecht. Es wird weiterhin getrennt werden und: das wird sich sogar noch steigern.
 
Ich denke durchaus auch, dass zumindest mehr Funktionen auf die GraKas ausgelagert werden. Man sieht ja schon jetzt, dass z.B. Entschlüsselungen über GPUs schneller gemacht werden können. Allerdings wird dadurch die CPU nicht verschwinden. Zum Ansteuern der Hardware und die meisten Berechnungen wird sie erhalten bleiben.
 
Ich finde es dürfte nicht einmal sonderlich fern liegen bis alle neuen Spiele für mehrere Kerne ausgelegt werden. Denn sobald die Spiele für die PS3 programmiert werden, ist das sowieso der Fall, die arbeitet ja bereits mit mehreren Kernen (7 oder so). Wenn selbst die Konsolen schon soweit sind, ist das nur noch eine Frage der Zeit.
 
Was glaubt ihr, wie lange es noch dauert bis auch mehr als zwei Kerne mehrheitlich von Software unterstützt wird?

Meine persönliche Meinung aufgrund der momentanen Entwicklung: mindestens 1 Jahr - max. 2 Jahre

Zu hoch oder niedrig gegriffen?
 
Original von nzc
Was glaubt ihr, wie lange es noch dauert bis auch mehr als zwei Kerne mehrheitlich von Software unterstützt wird?

Meine persönliche Meinung aufgrund der momentanen Entwicklung: mindestens 1 Jahr - max. 2 Jahre

Zu hoch oder niedrig gegriffen?

Hmm, schwer zu sagen. Ist doch auch nicht so wichtig oder?

Die meiste Software wird nicht neu entwickelt, sondern durch Modifikation und Erweiterung von vorhandenem Code ins Leben gerufen. Bei dieser Vorgehensweise ist es sehr aufwändig, Software zu parallelisieren. Wahrscheinlicher ist also, dass neu entwickelte Software das unterstützt.

Die ist rarer als Weiterentwicklungen, zumindest in großen Softwareprojekten. Mit anderen Worten: Es wird lange dauern, bis die Altlasten abegworfen sind.
 
Ist doch auch nicht so wichtig oder?

Doch, ich finde das schon wichtig oder zumindest interessant, wenn man bedenkt wie schnell sich die CPU-Technik weiterentwickelt.
In 2 Jahren haben wir wahrscheinlich bereits DoubleQuads (oder wie immer die Teile dann auch heißen werden). Das bedeutet, die Kundschaft (der Softwareentwickler) sitzt auf massig CPU-Power, wovon die meiste nur brach liegt.

Umgekehrt wäre interessant: Wer sich heute einen Quad zulegt, meinetwegen mit 2,8 Ghz pro Kern, wie lange wir diese Person seinen Rechner behalten können, bis dieser leistungsmäßig überfordert ist und ausgetauscht werden muss?
Möglicherweise haben wir hier jetzt nach ewigen Zeiten des ständigen Aufrüstens die Situation, in der ein Rechner an hardwaretechnischer Altersschwäche stirbt, bevor der User ihn aus Leistungsgründen ersetzten muss.
 
Möglicherweise haben wir hier jetzt nach ewigen Zeiten des ständigen Aufrüstens die Situation, in der ein Rechner an hardwaretechnischer Altersschwäche stirbt, bevor der User ihn aus Leistungsgründen ersetzten muss.

Da kann ich dir unter Vorbehalt zustimmen. 90% aller Sachen die am PC gemacht werden sind wohl surfen, chaten, Mails schreiben+abrufen, Office-Anwendungen und in der Freak-Ecke wohl noch das Programmieren. Für diese Aufgaben reichen locker PCs mit Pentium III und 900 MHz aus. Sieht man ja zur Zeit am Boom der Netbooks, deren Leistung kann man wohl damit vergleichen.

Bei Spielen reicht hingen heute oft noch ein SingelCore mit einer gescheiten Grafikkarte aus, zwar sind nicht die höchsten Auflösungen und Details spielbar, aber es läuft doch gut. Wenn man also, meiner Meinung nach, einen Dual oder gar QuadCore hat, hat man wohl für die nächsten paar Jahre locker ausgesorgt. Einzig allein vielleicht mal eine neue Grafikkarte, aber der Rest wird wohl laufen bis zur Altersschwäche.
 
Zurück
Oben