probleme beim compilieren
-
Hallo Leute,
ich stehe seit kurzem vor einem kleinen Problem und zwar ...
wenn ich eine Anwendung in Visual Studio 2005 mit meinem Intel Dual Core kompiliere, dann läuft sie zwar auf dem System, aber nicht auf Rechnern mit anderen CPUs.
Nutze ich ein System mit einem AMD Prozessor, dann läuft das Programm überall.
Hat jemand damit schonmal Erfahrung gemacht?
Gruß
FB
-
Das ist gar kein Problem sondern vermutlich nur eine Optimierungssache des Compilers.
Auf Systemen mit nur einem Kern kann es nicht laufen wegen folgendem Hintergrund. Dein System kompiliert das Programm für einen Dual Core. Sehr labidar ausgedrückt bedeutet dies dass dein System (man möge mir verzeien) über 2 Prozessoren verfügt, welche mittels Hochleistungsverbindungen miteinander verbunden ist.
Man kann damit einen Prozess auf dem einem Kern, und einen anderen auf dem anderen Kern laufen lassen. Doch man kann noch bessere Dinge anstellen und damit eine höhere Rechenleistung erziehlen als wenn nur ein Kern tätig wäre.
Man kann den Programmcode in lauter Teile zerlegen, welche nebeneinander laufen dürfen. Ein Teil läuft auf dem einen Kern, der andere läuft auf dem anderen Kern. Da das Ganze schon sehr tief in die Forschung geht verweise ich hier einfach mal auf die Wikipedia (http://de.wikipedia.org/wiki/Paralleler_Algorithmus).
Vermutlich hat der Kompiler genau dies getan. Er hat dein Programm in einzelne Programmteile zerlegt, welche auf einem System mit 2 Kernen nebeneinander laufen.
Da das Ganze statisch zur Kompilezeit passiert, werden automatisch einkernige Systeme nicht unterstützt. Dadurch kann dein Programm nicht auf einem System mit nur einem Kern laufen.Andere Ursachen liegen einfach in den Optimierunsmöglichkeiten des jeweiligen Prozesoors. Alle Prozesoren von verschiedenen Herstellern unterscheiden sich in erster Linie immer. Und wenn dein Kompiler einen Befehl, welcher nur der Prozessor X untersützt, einsetzt, läuft einfach das Ganze nicht auf anderen Prozessoren, welche den Befehl nicht unterstüzen.
Auf dem AMD läuft es vermutlich deswegen, weil Intel und AMD sich auf einem gemeinsamen Befehlsatz geeinigt haben. Wie dies aber bei den neueren Prozessoren ist, weiss ich leider nicht.
-
Gibts hier ein Märchenforum?
-
Wo ist mein Fehler ??? Über was soll ich denn Falsches berichtet haben ?