Euch ist wohl nicht bekannt was es heißt mal eben das programm auf 2-kern funktionalität umzuschreiben
wenn ihr 2 Filme habt startet das programm 2 mal und weißt jedem prog nen kern zu und schon habt ihr 100%ige auslastung des systems.
also deine antwort nutzt wohl auch genau niemanden
Leider hat Hunchback hier vollkommen recht. Es ist nicht ganz so einfach, wie der User sich das üblicherweise vorstellt.
Vielleicht schreibe ich mal ein paar Worte dazu, denn das Thema kömmt häufiger auf. Viele denken: "ich schmeiße einfach zwei Kerne auf meine Aufgabe und es geht doppelt so schnell voran". Ist nicht so. Leider.
Mehrere Kerne sind recht nützlich, wenn es darum geht, ein rechenintensives Programm im Hintergrund auf einem Kern zu betreiben und der andere Kern widmet seine volle Aufmerksamkeit dem Benutzer, der gleichzeitig seine E-Mails bearbeitet, ohne daß sich das System "klebrig anfühlt".
Auch können wunderbar 2 unabhängige rechenintensive Prozesse parallel betrieben werden. Dann hat man tatsächlich nahezu die doppelte Leistung zur Verfügung (auch hier: nahezu).
Will man aber eine einzige Aufgabe von beiden Kernen bearbeiten lassen, wird es schwierig.
- wenn beide Kerne die gleichen Daten verwenden (dazu zählen bei der Videoverarbeitung nicht nur die Filmdaten, sondern div. Matrizen, adaptive Strukturen udgl.), müssen sie laufend synchronisiert werden. D.h. im µs-Takt muss jew. ein Kern darauf warten, daß der andere Kern einen Datenbereich freigibt, den dieser gerade bearbeitet.
- auch auf Hardwareseite ein vergleichbares Problem: besonders, wenn es um viele Daten geht, muß sehr viel auf den Hauptspeicher zugegriffen werden. Es kann sich immer nur ein Prozessorkern auf einmal am Speicherbus bedienen. Auch hier also: der andere muß warten, bis er an der Reihe ist.
Die beiden Punkte mögen klingen, wie "na, dann verliere ich halt 2 oder 3% Leistung".
Tatsache ist aber, daß man im Falle von z.B. Video-Verarbeitung über einen Zugewinn von 10% schon recht froh sein darf.
Im Extremfall haben wir bei Tests von z.B. MPEG4 mit Dualcore beobachtet, daß die angezeigte Prozessorlast auf 51-52% "angestiegen" ist. Dabei muß man bedenken, daß für die Synchronisation zusätzlicher "Sprit verbrannt" wird, mit anderen Worten also evtl. sogar davon ausgegangen werden muß, daß die Verarbeitung
langsamer, als mit einem Kern verlief.
Bei komplexeren Algorithmen, wie z.B. bei AVC ist der Gewinn etwas größer (mehr Rechenaufwand verteilt auf weniger Daten) - ca. 10-20%, aber es kommen zusätzliche Probleme auf: das Ergebnis ist nicht mehr deterministisch.
Wie man sich leicht klarmachen kann, ist es kaum möglich, jeden Kern auf einen eigenen Frame im Videostrom anzusetzen. Jeder Frame setzt auf die Ergebnisse des vorhergehenden Frames auf (außer Keyframes).
Wenn nun 2 Kerne zugleich an unterschiedlichen Bereichen des gleichen Bildes arbeiten, bestimmt der Zufall, in welcher Reihenfolge der Frame abgearbeitet wird.
In unseren Tests hieß das sogar: die Ergebnisse ließen sich teilweise nicht einmal abspielen.
Alles in allem: am effektivsten bleibt es vorerst, CloneDVD mobile 2x zu starten und 2 unterschiedliche Filme parallel zu verarbeiten.