Author Topic: multithreading?  (Read 1917 times)

Offline DipDancer

  • Contributor
  • ***
  • Posts: 16
multithreading?
« on: December 05, 2013, 10:54:24 pm »
Inwiefern ist altbinz eigentlich multithreaded oder besser gesagt, gleichmäßig multithreaded bei der Lastverteilung auf alle CPUs/Threads?

habe ein Laptop und ein i7-4202MQ (win 8.1 64-bit). Wenn ich mit 100mbit (~eher 13mb/s) rar files (100mb Größe) lade, dann ist CPU0 bei 70-100% und noch ein weiterer CPU auch relativ hoch. Zwei andere machen fast gar nichts und wiederum zwei sind dann so bei 40-60%. KA wie das bei den restlichen zwei ist, ist aber auch nicht so wichtig fürs Beispiel.

Warum kann die Last nicht auf alle acht CPUs gleichzeitig verteilt werden? Es schein so, als wenn das reine Programm mitsamt runterladen nur auf 1-2 CPUs läuft, das dekoding auf 1-2 anderen und die anderen sind (fast) im idle modus.

ist es irgendwie möglich, das ganze etwas ausgewogener zu gestalten?

Offline keiner

  • Contributor
  • ***
  • Posts: 186
Re: multithreading?
« Reply #1 on: December 12, 2013, 10:37:16 am »
Mit welchem Programm kann man die Last (in Prozent) für jeden (virtuellen) Kern seperat auslesen?
Warum sollte das ganze ausgewogener gestaltet werden?
Du hast einen MQ. Vielleicht ist das ja die stromsparenste Methode für diesen Prozessor.
Und "erhöhte Abnutzung" wird es sicher nicht geben, solange das Temperaturmanagement funktioniert.

Offline Sucker76

  • Contributor
  • ***
  • Posts: 277
Re: multithreading?
« Reply #2 on: December 16, 2013, 08:02:43 pm »
Hi.
Bei mir läuft ein i7 920 erster Generation @2.67GHz.
AltBinz mit Wine unter SuSE Linux.
Ich lade mit 20 Connections und 32MBit.
Bei mir sind stets 4 Threads im Spiel, die jeweils zwischen 10% - 30% hin und her pendeln.
Ich bin zwar kein Programmierer, aber soweit ich die Sache verstanden habe kann man nicht beliebige Aufgaben einfach mal so ohne weiteres auf mehrere CPU bzw Threads aufteilen. Für mein Verständnis kann man Teilaufgaben eines grösseren Ganzen zerlegen und verteilen.

Soweit die Theorie des Programmierens wie ich sie verstanden habe, kann falsch sein, aber dann wird man mich sicherlich korrigieren.
In wieweit nun die einzelnen, zerlegten Teilaufgaben auf die vorhandenen CPU/Threads verteilt werden ist Sache des Betriebssystems oder der CPU-Steuerung.
Der Hinweis von *keiner* scheint mir absolut richtig zu sein. Meist ist es energiesparender wenn ein oder zwei echte Kerne was zu tun haben und der Rest einfach tief und fest schläft. Auf die Effizienz der Rechenleistung hat das meiner Meinung nach auch keinen Einfluss. Es würde nichts schneller gehen, wenn es gleichmässiger verteilt wäre, würde aber vermutlich mehr Strom verbrauchen.
Ausserdem ist der Rechner so wie es jetzt ist, immer in der Lage ohne Verzögerungen zu reagieren und nötigenfalls einen Kern zu wecken, der dann etwas anderes machen kann ohne dass sich die verschiedenen Aufgaben irgendwie in die Quere kommen.