Ich habe eine große Anzahl von unabhängigen Aufgaben, die ich ausführen möchte, und ich möchte sie auf einem parallelen System verteilen, so dass jeder Prozessor die gleiche Arbeit leistet und meine Effizienz maximiert. eine Lösung für dieses Problem zu finden, oder vielleicht nur eine gute Lösung für mein Problem genauGleiches Laden für parallele Aufgabenverteilung
Ich würde gerne wissen, ob es ein allgemeiner Ansatz.
Ich habe T = 150 Aufgaben würde ich gerne laufen, und die Zeit, jede Aufgabe übernehmen wird, ist t = T. Das heißt, task1 dauert 1 eine Zeiteinheit, task2 dauert 2 Zeiteinheiten dauert ... task150 150 Zeiteinheiten. Unter der Annahme, ich habe n = 12 Prozessoren, was ist der beste Weg, um die Arbeitslast zwischen den Arbeitern zu teilen, die Zeit, vorausgesetzt, es nimmt Aufgaben zu beginnen und aufzuräumen vernachlässigbar ist?
Welche Sprache verwenden Sie? – bc004346
Ich denke, das das * Bin Packing Problem ist * ist es nicht? https://en.wikipedia.org/wiki/Bin_packing_problem Ich denke, du beginnst wahrscheinlich mit den längsten Jobs und nimmst immer kürzere, sonst könntest du alles mit einer Ausnahme erledigen, nur um herauszufinden, dass es die längste ist. –
Geben Sie dem Prozessor 1 die Aufgaben 1 und 150 (er erhält 151 Arbeitseinheiten), geben Sie dem Prozessor 2 die Aufgaben 2 und 149 (er erhält 151 Arbeitseinheiten), ... jeder der 12 Prozessoren erhält 6 dieser Blöcke Es bleiben 6 ungefähr gleiche Aufgaben (Aufgaben 73 - 78), um zu beenden. Gib jedem einen Prozessor. Es ist kein Müllbeutelproblem wie gesagt, oder wenn es so ist, ist es sehr einfach zu lösen. –