Ich arbeite an einem Multi-Thread-Programm, bei dem ich eine Reihe von Worker-Threads habe, die Aufgaben von ungleicher Länge ausführen. Ich möchte einen Lastausgleich zwischen den Aufgaben herstellen, um sicherzustellen, dass sie ungefähr die gleiche Menge an Arbeit verrichten. Für jede Aufgabe T i Ich habe eine Anzahl c i was einen guten Näherungswert für den Arbeitsaufwand darstellt, der für diese Aufgabe erforderlich ist.
Ich bin auf der Suche nach einem effizienten (O(N) N = Anzahl der Aufgaben oder besser) Algorithmus, der mir "ungefähr" einen guten Lastausgleich liefert, wenn die Werte von c i . Es muss nicht optimal sein, aber ich würde gerne einige theoretische Grenzen dafür haben, wie schlecht die resultierenden Zuweisungen sind.
Irgendwelche Ideen?