(16.02.2009 15:35)Nagus Zek schrieb: Am praktischsten waere ja ein Treiber, der den Przess automatisch splittet, getrennt berechnen laesst und wieder zusammenbasteln. Aber warscheinlich wuerde die Northbridge dann auch recht ueppig ausfallen. Wenn das aber so einfach ginge, dann haetten die Hersteller das wohl schon lange gemacht.
Das Problem existiert schon seitdem bei RISC Prozessoren die Pipelines eingeführt wurden. Die hatten nämlich die Eigenschaft, daß das Ergebnis einer Operation erst bei der übernächsten Operation vorliegt, also müßte man 2 unabhängige Berechungen abwechselnd einfügen.
Das hat damals auch keiner gepeilt, also war die Lösung des Problems, daß man einfach jeden zweiten Befehl "NOP" (als "tu gar nix") gehabt hat.
ein halbes Dutzend Prozessorgenerationen später hat man dann versucht, viele solche RISC Prozessoren zu einem großen CISC-Prozessor zusammenzufügen, der das ganze automatisch auseinanderklamüsern kann, das ganze Konglomerat nannte man dann "Pentium 4", die Entwicklung hat sich aber mittlerweile auch totgelaufen, deswegen ist man gezwungen gewesen, auf Mehrkernarchitekturen umzusteigen.
Seitdem hat sich in der Wissenschaft ein bißchen was getan, und ich glaube Intel hat mal angekündigt, einen entsprechenden "parallelisierenden" Compiler rauszubringen, aber ich weiß weder, ob die das tatsächlich durchgezogen haben, noch ob der zu irgendwas außer trivialen Optimierungen fähig ist.
Auf die Itanium-Architektur geh ich hier besser nicht ein, das führt wohl zu weit.
Zusammenfassend schätze ich die zukünftige Entwicklung nicht allzu optimistisch ein. Ein großteil der Programme wird weiterhin nur einen einzelnen Kern auslasten können, auch Programme, die von sich behaupten, sie seien "multithreaded" bestehen meist auch nur aus einem Hauptprozess, der 90-95% der Rechenzeit benötigt, und ein paar ausgelagerten Funktionen (meistens die Anzeige und ein paar kleine Hintergrundaufgaben), die dann den Kohl auch nicht mehr fett machen würden.