Hier ist eine kleine Illustration meiner Frage:
Nehmen Sie einen Build-Job an, der aus 4 unabhängigen Tasks mit dem Namen AD besteht. D dauert länger als AC.
Ein Build-System, das die relativen Task-Zeiten nicht berücksichtigen kann, plant die Tasks möglicherweise folgendermaßen:
---------------------------------------
CPU1: A | C |
---------------------------------------
CPU2: B | D |
---------------------------------------
Wenn der Scheduler hingegen die Zeitunterschiede der Aufgabe kennt, könnte er sich diesen viel kürzeren Zeitplan einfallen lassen:
---------------------------------------
CPU1: A | B | C |
---------------------------------------
CPU2: D |
---------------------------------------
Meine Fragen:
- Gibt es Buildsysteme, die die relativ zu erwartenden Taskzeiten in den Zeitplan einbeziehen?
- Welche akademische Forschung zu solchen Buildsystemen gibt es?
- Woher beziehen diese Build-Systeme (falls vorhanden) die Zeitinformationen? Heuristiken, Timings aus früheren Builds?
- Wenn solche Build-Systeme nicht existieren, warum? Gibt es eine GOTCHA, die sie weniger wert macht, als sie auf den ersten Blick erscheinen?