Ich gebs auf...
einfach mal lesen und objektiv bleiben !
@TheDoc
Glaub mir, ich bin Objektiv und gelesen habe ich es auch, wo bei mir beim zweiten mal lesen wieder eine Unstimmigkeit aufgefallen ist.
@ Lisaa
Muss leider noch mal was sagen, auch wenn es vielleicht schon nervt.
Laut deinen text, wo drin stand: ich zitiere:
„Das wirst du ja z.B. beim Cinebench gesehen haben, dass dort bei mehreren Prozessoren das Bild auch an mehreren Stellen gleichzeitig gerendert wird. Das ist dann eine Mehrkernoptimierung; sowas kommt aber nicht von selbst sondern muss gezielt in die Software eingebaut werden“
Das ist so nicht ganz korrekt. Dass das Bild an mehreren Stellen gerändert wird, hat nicht mit der Mehrkernoptimierung zu tun.
Erstens: Die muss doch aufgefallen sein, als Du den Prozess nur einen Kern zugeführt hattest, dass dennoch an zwei verschiedenen Stellen gerendert würde, obwohl nur ein Kern zugeteilt und beansprucht wurden war.
Zweitens: Ein Intel Pentium 4 wie z.B. meinen 531er mit HTT ist ein 1 Kern Prozessor, der mit Hilfe der HT – Technologie eine Zweite CPU Simuliert. Ob wohl die zweite CPU nur simuliert und nicht Physikalisch vorhanden ist, kann Cinebench dennoch ein Rendering X CPU durchführen. Sobald ich aber die HT-Technologie deaktiviere, siehe da kein X CPU Rendering mehr.
Fazit: Cinebench sucht nur nach vorhanden CPU´s, wobei Cinebench nicht unterscheiden kann, ob es sich bei den gefundenen Prozessoren um Physikalische oder Simulierte Prozessoren handelt. Das hat nichts mit Mehrkernoptimierung zu tun.
Sorry, aber das musste ich noch mal loswerden.
MFG
???
Jetzt sag ich doch mal was: Was hat denn jetzt das nutzen der physikalischen bzw. simulierten Kerne mit der Optimierung zu tun ? Du hast doch gerade selbst zugegeben dass das Programm mehr als nur ein Kern nutzen kann:
Ob wohl die zweite CPU nur simuliert und nicht Physikalisch vorhanden ist, kann Cinebench dennoch ein Rendering X CPU durchführen. Sobald ich aber die HT-Technologie deaktiviere, siehe da kein X CPU Rendering mehr.
Mehrkernoptimierung heißt dass mehr als nur ein Kern genutzt werden kann ! Cinebench nutzt laut deiner Aussage mehr als nur 1 Kern, nämlich die zwei die dein HT hat ! Demnach ist es Mehrkernoptimiert ! Ob nun auch noch mehr als 2 genutzt werden können weiß ich nicht, habe es nie ausprobiert !
Und nochmal als Ergänzung:
1. Ob es sich um mehrere physikalische CPUs, eine CPU mit mehreren richtigen Kernen oder eine CPU mit mehreren simulierten Kernen (HTT) handelt, ist egal. Das bekommt die Anwendung gar nicht mit, da das Betriebssystem von den physikalischen Gegebenheiten abstrahiert und den Programmen eine einheitliche Schnittstelle für alle möglichen Szenarien zur Verfügung stellt (Stichwort SMP).
2. Ich setze wieder einen Dualcore-Rechner voraus! Wenn ich in Cinebench "Rendering x CPU" durchführe dann startet Cinebench zwei Rendering-Threads, die im Normalfall parallel laufen. Wenn ich jetzt die CPUs limitiere, indem ich Cinebench nur eine CPU zugestehe, laufen diese beiden Threads natürlich weiter, aber nicht mehr parallel! Geht ja auch nicht, weil nur eine CPU da ist. Das ist dann auch zu beobachten. Die Bilder werden nicht gleichzeitig gerendert, sondern erst oben ein Stück, dann un der Mitte, dann wieder oben usw.
Allein die Tatsache, dass Cinebench mehrere CPUs erkennt und parallel sinnvoll nutzen kann, ist eine Multicore-Optimierung. Und das könnnen eben nicht alle Programme, weil man sich bei der Entwicklung gezielt Gedanken darüber machen muss (wie man die Rechenaufgaben aufteilen kann). Und bis vor ~2 Jahren gab es im Mainstream-Markt eben keine Mehrkerner, daher wurde das bis dahin nicht gemacht.
@Lisaa
Da muss ich dich mal wieder Widersprechen.
DualCore Rechner Vorausgesetzt:
1. Wie du auf Bild 1 unschwer erkennen kannst, sind beide Kerne des DualCore CPU auf Volllast, dennoch werden die Bilder unterschiedlich schnell Gerendert und nicht wie Du meintest Parallel.
2. Es ist egal, ob Du das Programm mit 2 Kern 4 Kern 8 Kern oder mehr zu Verfügung stellst, es wird nie, ein Paralleles Rendering stattfinden, denn wie Du selbst geschrieben hast, unterscheidet dieses Programm nicht zwischen Physikalischen oder Simulierten Kernen, somit kann dieses Programm nicht Mehrkern optimiert sein.
3. Ein DualCore oder QuadCore System ist nichts anderes, als ein Simuliertes Multiprozessoring Computersystem, so wie ich ihn habe, der die Software (Betriebsystem, Programme, Spiele usw.) vorgaukelt, dass mehrere Prozessoren für die Berechnungen von Anwendungen (Betriebsystem, Programme, Spiele usw.) zur Verfügung stehen. Und dabei ist es egal, ob es sich dabei um einen MultiCore oder MultiProzessoring System handelt.
4. Betriebsystem sowie Programme und Spiele erkennen nicht, ob es ein Prozessor mit Mehreren Kernen ist, sondern sind der Meinung, dass es sich hierbei um 2, 4 ,8 Physikalisch unabhängige Prozessoren handelt, die für die Berechnung von Anwendungen Zugeführt oder Entzogen werden können. Dieses hat nicht mit Mehrkernoptimierung zu tun. Für die Berechnung der Anwendungen, entscheidet lediglich das Betriebsystem beziehungsweise der User, ob oder wie viel Kerne (Prozessoren) der Anwendung die ausgeführt wird, zur Verfügung stehen. Das heißt: Benötigt ein Programm wenig oder viel Prozessorleistung, so trifft hauptsächlich das Betriebsystem die Entscheidung, ob und wie viel Kerne (Prozessoren) zur Verfügung gestellt werden können, damit das Programm optimal arbeiten kann. Beispiel:. Nehmen wir mal ein Multiprozessoring Computersystem der 2 Physikalischen Prozessoren mit je 1000MHZ 1024MB RAM Grafik natürlich auch. Wir verwenden ein Spiel, was eine Empfohlene Systemanforderung von 2000MHZ hat und zwar FarCry. Da wir aber nur 2 Physikalische Unabhängige 1000MHZ Prozessoren zur Verfügung haben, trifft das Betriebsystem die Entscheidung, die Leistung der Zweiten CPU dem Spiel zu zuführen, um ein Reibungslosen Betrieb zu gewährleisten. ( Bereits getestet mein erster Gaming Rechner war ein PIII Server mit 2x 1000MHZ sowie AGP 4x die Grafik Nvidia 6600GT 128MB) Das Siel lief aufgrund von Verwendung der beiden CPU´s Ruckelfrei. Beide CPUs waren zwar auf Volllast, wurden aber vom Betriebsystem automatisch dem Spiel zugeführt, damit eine nahezu reibungslose Ausführung gewährleistet ist.
Somit hat es nach meiner Erfahrung nichts damit zu tun, ob eine Anwendung Multikern optimiert ist oder nicht. Die Entscheidung trifft das Betriebsystem und nicht irgendwelche Optimierungen seitens der Programmierer. Zu beachten ist aber noch, dass die Vorraussetzung der Nutzung von DualCore / QuadCore oder Multiprozessoren nur bestimmten Betriebsystemen zur Verfügung stehen. Dieses trifft nicht bei Windows 95 / 98 und ME zu, da diese von haus aus keine Multiprozessoren erkennen. Ab 2000 und NT ist dieses nur bedingt möglich. Zur Kompatiblen Verwendung von mehreren Prozessoren / Kernen werden so genannte Multi-Prozessoren Betriebsysteme benötigt wie Windows XP / vista / 2003 / 2008 Server / 2000 bedingt nutzbar um Multi Kern / Prozessoren verwenden zu können.
MFG
1. Bilder rendern ist kein geeigneter Nachweis, solange die abzuarbeitenden Aufgaben pro Kern (ob physikalisch vorhanden oder per HT simuliert, ob in mehreren Sockeln oder in einem Package) sich offensichtlich unterscheiden und zudem noch weitere Tasks im Hintergrund lauern.
2. ich nehme an Du übersiehst, daß multiprozessoroptimierte Software in der Lage ist, in mehreren Threads parallel zu arbeiten, daß sie eben doch optimiert ist, wenn der Programmierer das so wollte.
Die grundsätzliche Unfähigkeit gleichzeitig Aufgaben zu erledigen kennzeichnet die Betriebssysteme bis WinME und nannte sich "präemptives Multitasking". http://de.wikipedia.org/wiki/Multitasking
3. Ob ein Programm zwischen realen oder virtuellen Prozessoren (also Rechenwerken) unterscheiden kann ist unerheblich. Nicht optimiert "springt" sein einziger Thread einfach von Kern zu Kern weil das Betriebssystem das so will - Optimiert springen seine mehreren Threads zwischen den Kernen, werden dabei aber eben auch parallel abgearbeitet.
4. s.O., die Programmoptimierung ist sehr wohl wichtig. Pennt der Programmierer, klebt sein Programm bei langwierigen Aufgaben in Mehrkernsystemen genau so wie auf einem gleichgetakteten Einzelkern. Nachvollziehbar, wenn man ein solches Programm fest an einen einzigen Kern bindet.
Und nun kommt's: Genau das ist der Fall bei Deiner ursprünglichen Frage: Multicoresysteme verduddeln ein wenig Zeit beim Tasks-von-einem-Kern-zum-anderen-schubsen. Single-Core-Systeme können das nicht und sparen dadurch diese Zeit und erscheinen somit einen Hauch hurtiger. Bei optimierter Software sind gleichgetaktete Mehrkernsystemen ihren Singlecore-Kollegen um einiges überlegen; das gilt auch für, das liegt in der Natur der Sache, HT-Systeme.
Von daher können wir abschließend folgendes feststellen:
1.
Du hast Recht.
Unoptimierte Software ist in Singlecore-Systemen schneller als auf gleichgetakteten Multicoresystemen - und zwar in etwa in dem Maße, daß Deine Tests ergeben.
2.
Lisaa hat Recht.
Grundsätzlich sind Mehrcoresysteme schneller, da bei aktuellen Systemen mehrere Tasks und Threads gleichzeitig um Bearbeitung buhlen. Das betrifft sowohl Virenscanner und Betriebssystemaufgaben, als auch optmierte Software.
Also...
- Ich bin erschüttert
Weshalb willst Du mir beweisen, daß unoptimierte Software auf Mehrkernsystemen schneller ist als auf Single-Cores, wenn alle möglichen Fakten (und sogar Dein selbst durchgeführter Benchmark) schon das Gegenteil beweisen?
nenne mir mal eine bekannte optimierte software, und ich beweise dir das gegenteil!Cinebench R10!
zu 1. laaleeluu hat Recht. Die Aufgabe, das Bild zu rendern ist in der oberen Hälfte des Bildes wahrscheinlich nicht so schwer, so dass dort größere Fortschritte zu beobachten sind.
zu 2. laaleeluu hat Recht. Natürlich habe ich fahrlässigerweise behauptet, dass das Programm mehrkernoptimiert sei/sein müsse. Das stimmt natürlich nicht, es ist/muss mehrprozessoroptimiert sein, genau das meinte ich immer dann, wenn ich von Mehrkernoptimierung gesprochen habe. Und das beschreibt genau die Fähigkeit eines Programmes, Rechenaufgaben in mehrere Threads verteilt gleichzeitig auf einem System ausführen lassen zu können.
zu 3. laaleeluu hat Recht.
zu 4. laaleeluu hat Recht. Du hast weiter oben richtigerweise gesagt, dass man die Rechenleistung mehrerer CPUs nicht einfach zusammenzählen kann. Genau das führst du jetzt aber wieder als Argument dafür auf, wie CPUs auf verschiedene Software verteilt werden. Vielleicht solltest du dich mal mit Scheduling befassen um zu verstehen, wie einzelnen Prozessen CPUs zugeteilt werden und wie nicht (OK, das mit dem wie es nicht geht, hast du schon beschrieben). Vereinfacht ausgedrückt läuft das so wie bei der Post: eine Warteschlange, in die sich alle Prozesse einreihen, die rechnen möchten. In einem MultiCPU-System sind halt mehrere Schalter offen, so dass parallele Abarbeitung möglich ist. Das bringt einem Programm aber erstmal nichts, wenn es nur einen Mokel losschickt, sich dort anzustellen (hier: wenn eben nur ein Prozess/Thread läuft). Der kann halt immer nur an einem Schalter gleichzeitig sein. Schickt das Programm aber mehrere Mokels los, können diese sicherlich auch an mehreren Schaltern gleichzeitig bedient werden (hier: mehrere Prozesse/Threads können mehrere CPUs gleichzeitig nutzen). Natürlich ist es nicht ganz so einfach, da Prozesse nicht beliebig lange eine CPU behalten dürfen, sondern nach einer gewissen Zeit wieder abgeben müssen und sich wieder in die Warteschlange einreihen müssen. Außerdem gibt es eine Priorität in der Schlange und verschiedene weitere Optimierungen...
Also...
- Ich bin erschüttert
Weshalb willst Du mir beweisen, daß unoptimierte Software auf Mehrkernsystemen schneller ist als auf Single-Cores, wenn alle möglichen Fakten (und sogar Dein selbst durchgeführter Benchmark) schon das Gegenteil beweisen?
Ich habe nie behauptet, das eine "unoptimierte" Software auf einen Mehrkernprozessor schneller laufen, ich sage nur, dass es egal ist, welches programm man verwendet, sie auf die Kerne /Prozessoren zur berechnung verteilt werden. Unabhängig von Mehrkern / MehrProzessoren Optimierung Siehe MSC CPU benchmark v5. bei MSC CPU Benchmark wird die CPU zwar nur auf 50% belastet, denoch wird die software von beiden Kernen zu bearbeitet der eine Kern zwar mehr als der Andere aber denoch von beiden. Das soll aber nicht heißen, das es unbedingt schneller sein muss, denoch kann man dies nicht ausser acht lassen, das Beide Kerne beansprucht werden. Siehe Bild!
Mit Deinem eben gemachten Beitrag hast Du gerade meinen Punkt Drei nachvollzogen und gleichzeitig den Beweis erbracht, daß MCS _nicht_ optimiert ist.
Das wollten wir Dir ja im Grunde von Anfang an klar machen Danke
« Windows Vista: monitor problem | Mein Notebook startet nicht » | ||