Nutzung der CPU Kerne, warum nur einer?

Begonnen von Boogie2005, März 25, 2020, 15:53:56

« vorheriges - nächstes »

Boogie2005

Hallo mal eine Frage. Seit ich TSDoctor nutze, wundere ich mich, warum immer nur ein CPU Kern genutzt wird. Dies hat sich auch mit TSD 3 nicht geändert! Ist es nicht möglich, mal mehr Kerne zu nutzen, um das Schneider noch schneller zu ermöglichen?

lundefugl

Hallo,

was sollen denn die Kerne machen ?
Der Doc codiert ja nichts neu. Es werden - mal ganz salopp gesagt - nur Daten von einer Datei gelesen und in eine andere geschrieben. Der Flaschenhals sind demzufolge meist die Speichermedien und nicht die CPU.
Beim User Mam sieht das wohl anders aus, aber dessen Hardware dürfte sich kaum einer privat leisten können.  ;D

Gruß
Thomas

Cypheros


Mam

Zitat von: lundefugl am März 25, 2020, 17:08:38
Beim User Mam sieht das wohl anders aus, aber dessen Hardware dürfte sich kaum einer privat leisten können.  ;D
ööh, dem möchte ich doch deutlich wiedersprechen  ;D
Habe hier nur gaaanz normale Pehzehs, deren Teile an fast jeder Ecke erhältlich sind. Ich kaufe sie immer nur recht früh und damit teuer.

Die meiste Hardware ist im Moment damit beschäftigt, Andockproteine des Coronaviruses zu ermitteln und somit schneller einen Impfstoff zu finden.
Jeder kann mitmachen :-)

Aber zurück zum Thema: Yep, der Doc ist nur Single Threaded, und das ist auch ganz logisch.
Er bearbeitet nun mal "Streams", die haben, wie der Name schon impliziert, einen Beginn und ein Ende.
Um mehrere CPUs beglücken zu können, braucht es aber Probleme, die sich in beliebige Kleinteile zerlegen lassen, und am Ende wieder zusammengebastelt werden können.
Das geht bei Streams nun mal schon aus Prinzip nicht (wenn Du irgendwo in der Mitte anfängst, musst Du erstmal reichlich Daten einlesen und wegschmeissen, bis Du wieder einen legalen Aufsetzpunkt gefunden hast). Wenn Du zufällig irgendwo Daten liest, kannst Du noch nichtmals unterscheiden, ob sie Teil des Videos, eines Tonkanals, Videotext oder irgendwas ganz anderes ist.
Und da das Ganze auch noch heftigst komprimiert ist, liegen die Ansatzpunkte sehr weit auseinander.

Letztendlich ist es schneller, alles in einem Rutsch (und Thread) nacheinander einzulesen, als ersmal die Aufsetzpunkte zu finden (dazu muss man ja schon einmal komplett durchlesen) und dann viele Threads gleichzeitig auf diese loszulassen.

Hinzu kommt, dass mit komplizierteren Kodierungen die Findungsrate immer schlechter wurde.


Boogie2005

Alles klar Jungs, hatte naiv angenommen, mit mehr Kernen ginge es schneller!  :)

TSWilli

Hallo,
ich habe mich in einem anderen Beitrag als ehemaliger Systemprogrammierer für Großrechner geoutet. Die Frage von Boogie2005 hätte ich auch stellen können. Danke von Mam für die Aufklärung. Wenn man nicht weiß wie TSDoctor aufgebaut ist, können solche Fragen entstehen. Zumal TSDoctor professionelle Fenster anzeigt, mit Fortschritt und Schritten in Frames oder Sekunden. Ausserdem das Trennen von diversen Streams. Da kann man schon mal auf die Idee kommen, mehrere Threads für die Bearbeitung zu starten.
Aber wir lernen ja immer dazu  :)


www.cypheros.de