max. 3 QFutures laufen parallel
Verfasst: 20. September 2009 20:43
Hallo!
Auf folgende Weise möchte ich 8 Berechnungne parallel laufen lassen:
jedoch zeigen mir debug Ausgaben, dass maximal 3 QFutures parallel laufen:
Thread 0 : from 0 increasing 8
Thread 1 : from 1 increasing 8
Thread 2 : from 2 increasing 8
//NUN VERGEHEN CA. 30 SEKUNDEN...
Thread 2 : done.
Thread 3 : from 3 increasing 8
Thread 1 : done.
Thread 4 : from 4 increasing 8
Thread 0 : done.
Thread 5 : from 5 increasing 8
Thread 3 : done.
Thread 6 : from 6 increasing 8
Thread 4 : done.
Thread 7 : from 7 increasing 8
Thread 5 : done.
Thread 6 : done.
Thread 7 : done.
(dabei bedeutet from x increasing y dass future x anfängt zu rechnen.)
Es sind jeweils recht langwierige Berechnungen, d.h. es liegt nicht daran, dass die Futures so schnell fertig sind und daher nur 3 parallel laufen.
Weiß jemand, woran das liegt? Ich hätte erwartet, dass alle 8 futures gleichzeitig rechnen.
Vielen Danke für Hinweise.
Auf folgende Weise möchte ich 8 Berechnungne parallel laufen lassen:
Code: Alles auswählen
for (int i=0; i<GLWidget::threadCount; i++) {
future[i] = run(&GLWidget::doRendering, i);
}Thread 0 : from 0 increasing 8
Thread 1 : from 1 increasing 8
Thread 2 : from 2 increasing 8
//NUN VERGEHEN CA. 30 SEKUNDEN...
Thread 2 : done.
Thread 3 : from 3 increasing 8
Thread 1 : done.
Thread 4 : from 4 increasing 8
Thread 0 : done.
Thread 5 : from 5 increasing 8
Thread 3 : done.
Thread 6 : from 6 increasing 8
Thread 4 : done.
Thread 7 : from 7 increasing 8
Thread 5 : done.
Thread 6 : done.
Thread 7 : done.
(dabei bedeutet from x increasing y dass future x anfängt zu rechnen.)
Es sind jeweils recht langwierige Berechnungen, d.h. es liegt nicht daran, dass die Futures so schnell fertig sind und daher nur 3 parallel laufen.
Weiß jemand, woran das liegt? Ich hätte erwartet, dass alle 8 futures gleichzeitig rechnen.
Vielen Danke für Hinweise.