![]() |
![]() |
|
![]() |
![]() |
|
Registrieren | Hilfe/Forumregeln | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Hardware Simmer helfen Simmern - Fragen, Antworten, Diskussionen zu flugsimulatorspezifischen Hardwareproblemen. |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#11 | |
Senior Member
![]() Registriert seit: 13.09.2001
Beiträge: 111
|
![]() Zitat:
Ich würde mir wünschen, dass auch aktuelle Grafikkarten noch eine gute Darstellung bieten. Vor allem was Beleuchtungs und Oberflächeneffekte angeht können derzeitige Karten bereits Erstaunliches, was nicht ansatzweise im FS2004 zu sehen ist. Man vergleiche nur mal aktuelle Shooter, basierend auf DX9.0c und Shader 3.0. Und da ich auf den FSX Screenshots nichts ausergewöhnliches entdecken kann, was so nicht in vollem Umfang auch mit DX9 funktionieren würde, meine ich das ist nur wieder eine clevere Strategie von MS um der FS-Fanschaft das neue Windows Vista und DX10 raufzudrücken. Lieber sollte MS mal zusehen, dass der FSX weg kommt von der CPU-Last und mehr Power aus den immer besser werdenden Grafikkarten schöpft.
____________________________________
Guß, Jens-Peter |
|
![]() |
![]() |
![]() |
#12 | |
Inventar
![]() Registriert seit: 23.02.2001
Beiträge: 2.954
|
![]() Zitat:
http://www.heise.de/newsticker/meldung/71116 Außer natürlich, dass Microsoft mit dem Erscheinungstermin "Holiday 2006" für den FSX eigentlich Weihnachten 2006 meint. Dann ginge es sich wieder aus. Aber dann wäre es erst recht sehr voreilig, JETZT einen neuen PC für den FSX zusammenstellen zu wollen. ![]()
____________________________________
Alex Home Page: http://homepage.mac.com/alfora/ O\'Hare Approach Control: \"United 329 heavy, your traffic is a Fokker, One o\'clock, three miles, eastbound.\" United 239: \"Approach, I\'ve always wanted to say this... I\'ve got the little Fokker in sight.\" |
|
![]() |
![]() |
![]() |
#13 | |
Master
![]() Registriert seit: 24.08.2002
Alter: 46
Beiträge: 748
|
![]() Zitat:
Eine Unterstützung von Dual-Core CPUs, vielleicht in Hinblick auf ein etwas realistischeres Flugmodell welches vom 2.Kern berechnet werden könnte, fände ich mal eine super Sache, da ist noch viel Raum für Optimierungen ![]()
____________________________________
Gruß Daniel |
|
![]() |
![]() |
![]() |
#14 |
Elite
![]() |
![]() Ja, Dualcore-Unterstützung wäre echt eine enorme Optimierung für den FS.
Gerade beim FS würde sich das anbieten, da sich das Programm leicht in Prozesse unterteilen lässt. z.b. Wetter, AI, Flugzeuge oder Terrainberechnung. Doch leider geht das Gerücht um, dass auch der FS10 nicht von Dualcore profitieren wird. Das ist mir völlig unverständlich. |
![]() |
![]() |
![]() |
#15 | |
Master
![]() Registriert seit: 30.09.2005
Beiträge: 552
|
![]() Zitat:
![]() [Offtopic] wie siehts bezüglich dual core bei x-plane aus? ist dort was in planung? [/Offtopic] MfG ben
____________________________________
Click here if you want to see some screenshots Active Member of IVAO |
|
![]() |
![]() |
![]() |
#16 |
Inventar
![]() Registriert seit: 23.02.2001
Beiträge: 2.954
|
![]() Was ich überhaupt nicht verstehe ist, wie es eigentlich möglich ist, dass eine moderne Applikation auf einem modernen Betriebssystem KEINE Mehrfach-CPUs unterstützt.
Multitasking gibt's schon seit Jahrzehnten. Threads nicht ganz so lange aber auch schon eine geraume Zeit. Das heißt, es gibt schon seit vielen Jahren die Möglichkeit, in einem Programm Threads zu verwenden. Der Compiler und die Laufzeitumgebung (Libraries und Betriebssystem) sollen sich doch bitte selbst um die Verteilung der Threads auf die vorhandenen CPUs kümmern.
____________________________________
Alex Home Page: http://homepage.mac.com/alfora/ O\'Hare Approach Control: \"United 329 heavy, your traffic is a Fokker, One o\'clock, three miles, eastbound.\" United 239: \"Approach, I\'ve always wanted to say this... I\'ve got the little Fokker in sight.\" |
![]() |
![]() |
![]() |
#17 | |
Veteran
![]() Registriert seit: 28.12.2005
Beiträge: 296
|
![]() Zitat:
Das faengt an bei der 3D Schnittstelle die dafuer nicht ausgelegt ist. Alle Daten die zur Grafikkarte ueber die DirektX Schnittstelle gehen muessen beispielsweise erst in einem Thread gesammelt werden. Und innerhalb des Programmes ist es nicht damit getan alle moeglichen Aufgaben auf Threads zu verteilen. Das kostet auch entsprechenden Verwaltungsaufwand der kontraproduktiv waere wenn der Gewinn durch die sich tatsaechlich parallelisierbare Arbeit zu gering ausfallen wuerde. Um parallel arbeiten zu koennen muss diese auch unabhaengig voneinander sein und dort wo es Synchronisationspunkte gibt oder Daten ausgetauscht werden muessen darf es keine groesseren Wartezeiten geben. Wenn ein Thread zu lange auf das Ergebniss eines anderen warten muss ist der durch das parallele arbeiten gewonnene Zeitvorteil schnell dahin. Auch das gegenseitige blockieren von Threads X wartet auf Y, Y auf Z und Z auf X (Deadlock) muss zuverlaessig verhindert werden. Um all dies muss sich der Entwickler kuemmern wenn sein Programm fehlerfrei laufen und entsprechend gut skalieren soll. Manche Algorithmen lassen sich grundsaetzlich nicht parallelisieren. Bei anderen muss man erst aufwendig entsprechende Abhaengigkeiten entkoppeln. Das setzt entsprechendes Know-How beim Entwickler vorraus welches oft nicht vorhanden ist. Hinzu kommt das die meisten Entwicklungs und Debuggingtools noch nicht fuer Fehlersuche und Optimierungen fuer parallel arbeitende Programme ausgelegt sind. Am einfachsten ist es wenn es keine Abhangigkeiten gibt was in einigen Anwendungsgebieten bspw. beim Rendering, wo eine CPU z.B. die geraden Zeilen und eine andere die ungeraden Zeilen rendern kann, der Fall ist. Dort sind die Programme schon lange multiprozessorfahig und skalieren auch nahezu 100 Prozent mit der Anzahl der CPUs. Beim FS ist die Sache wesentlich komplizierter obwohl dort sicherlich auch einiges Parallelisierungspotential drin steckt. Aber vermutlich muessten dazu auch viele Sachen von Grund auf neu programmiert werden. Bis sich Multiprozessorunterstuetzung auf breiter Flaeche in Programmen durchgesetzt hat hast du vermutlich schon 6 oder mehr Prozessoren in deinem Rechner und dann bringen auch schon geringe Skalierungsraten einen signifikanten Gewinn. |
|
![]() |
![]() |
![]() |
#18 |
Inventar
![]() Registriert seit: 23.02.2001
Beiträge: 2.954
|
![]() Ich habe das Gefühl, Deine Antwort geht an meiner Frage vorbei.
Ich setze jetzt einmal voraus, dass Programmierer nicht grundlos Threads einsetzen sondern dort, wo sie einen Sinn haben. Es geht ja auch nicht um eine fast 100%ige Skalierbarkeit (so wie es bei komplett unabhängigen Aufgaben, wie dem Rendering, möglich ist) sondern um eine Aufteilung der Rechneraufgaben. Typischerweise wird das User Interface in einem Thread behandelt und die Business Logik in einem zweiten. Ich gebe Dir auch vollkommen recht, dass sich manche Algorithmen nicht oder nur schwer parallelisieren lassen und dass sich Programmierer mit den Abhängigkeiten beschäftigen müssen. Ein Flugsimulator gehört aber nicht zu diesen Algorithmen. Dort bietet sich die Aufteilung in Simulation und Graphikdarstellung ja geradzu an. Zwischen diesen beiden Teilen gibt es nur EINE Schreib-Lese-Abhängigkeit: die Simulation berechnet die neue Position und Fluglage und die Graphikdarstellung übernimmt sie, um die Sicht nach draußen zu berechnen. Die Eingabe der Steuerbefehle, die Panels, der AI-Traffic, die ATC usw. sind alles Dinge, die auch in Threads abgebildet werden können. Auch hier liegen nur einfache Schreib-Lese-Abhängigkeiten vor. Aber bei allen bisher aufgezählten Threads muss NIE ein Thread auf den anderen warten. Es muss nur der jeweilige Schreibvorgang atomar erfolgen. Das Lesen wartet aber nie darauf sondern nimmt den Wert, der gerade da ist. Ich will aber jetzt gar nicht auf eine Implementierung des Flugsimulators mit Threads eingehen. Mir geht es nach wie vor darum, wieso kann das Betriebssystem nicht diese schon vorhandenenThreads automatisch auf die CPUs aufteilen?
____________________________________
Alex Home Page: http://homepage.mac.com/alfora/ O\'Hare Approach Control: \"United 329 heavy, your traffic is a Fokker, One o\'clock, three miles, eastbound.\" United 239: \"Approach, I\'ve always wanted to say this... I\'ve got the little Fokker in sight.\" |
![]() |
![]() |
![]() |
#19 | |
Veteran
![]() Registriert seit: 28.12.2005
Beiträge: 296
|
![]() Zitat:
|
|
![]() |
![]() |
![]() |
#20 | |
Inventar
![]() Registriert seit: 23.02.2001
Beiträge: 2.954
|
![]() Die Problematik dahinter ist mir klar. Ich versuche nur, die Aussage
Zitat:
Die bekannten Fakten, die Du ja auch so schön erklärt hast, sind ja: * Threads werden vom OS unterstützt und auf vorhandene CPUs aufgeteilt * Wenn Threads kommunizieren müssen, dann kann es keine Leistungssteigerung um 100% geben, wenn man statt einer jetzt zwei CPUs hat. Nur bei voneinander komplett unabhängigen Threads würde man eine Verdoppelung der Rechengeschwindigkeit erhalten. * Diese Kommunikation und Synchronisation von Threads hat auch bei Single-CPUs Einfluss auf die Rechengeschwindigkeit. Das muss in jedem Fall bei der Programmierung berücksichtigt werden, egal ob MultiCore, Multiprozessor oder Single-CPU. Soweit, so gut. Jetzt starte ich den FS9 an und sehe im Taskmanager 17 Threads. Es sind also genügend Threads da, die das Betriebssystem auf die CPUs aufteilen kann, oder nicht? ![]() Möglichkeit A: Die Threads des FS9 sind so dumm programmiert und müssen so häufig miteinander kommunizieren und aufeinander warten, dass keine Leistungssteigerung bei MultiCores zu erwarten ist. Möglichkeit B: Die Threads sind gut programmiert und können gut auf MultiCores aufgeteilt werden. Es gibt daher eine gute Leistungssteigerung von typischerweise 140%-170%. Wenn ich jetzt versuche, die Aussage von ganz oben zu interpretieren, dann passt nur Möglichkeit A dazu. Dann weiß ich aber noch immer nicht, warum ich extra für MultiCores programmieren müsste. Ich muss ja schon bei Single-CPUs auf die Qualität meiner Threads achten, damit dort nicht zuviel Rechenleistung durch unnötige Kommunikation verbraten wird.
____________________________________
Alex Home Page: http://homepage.mac.com/alfora/ O\'Hare Approach Control: \"United 329 heavy, your traffic is a Fokker, One o\'clock, three miles, eastbound.\" United 239: \"Approach, I\'ve always wanted to say this... I\'ve got the little Fokker in sight.\" |
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|