X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2FREADME.md;h=7377bc3905bb149c451768106feebe14bef01d72;hb=b4682ec0748f72b7175bbdf4ba5ee339e478567e;hp=5093beb66ff3e2498125c35e8bfd725fc9b99ae5;hpb=afe102b2e493d3d5513de545a7679484e83878ce;p=poolifier.git diff --git a/src/pools/selection-strategies/README.md b/src/pools/selection-strategies/README.md index 5093beb6..7377bc39 100644 --- a/src/pools/selection-strategies/README.md +++ b/src/pools/selection-strategies/README.md @@ -5,14 +5,18 @@ ### Fair share Its goal is to distribute the load evenly across all workers. To achieve this, the strategy keeps track of the average task execution time for each worker and assigns the next task to the worker with the lowest task end prediction time: `task_end_prediction = max(current_time, task_end_prediction) + average_task_execution_time`. -By default, the strategy uses the average task execution time for each worker but it can be configured to use the event loop utilization (ELU) active time instead. +By default, the strategy uses the average task execution time for each worker but it can be configured to use the task event loop utilization (ELU) active time instead. ### Weighted round robin -The strategy assigns the next task using a robin round algorithm. The worker weights are maximum tasks execution time, once the worker has reached its maximum tasks execution time, the next task is assigned to the next worker. +The worker weights are maximum tasks execution time, once the worker has reached its maximum tasks execution time, the next task is assigned to the next worker. The worker default weights are the same for all workers and is computed given the CPU cores speed and theirs numbers. ### Interleaved weighted round robin +The worker weights are maximum tasks execution time. The rounds are the deduplicated worker weights. +During a round, if worker weight is inferior to the current round, the next task is assigned to the next worker. Once the all workers have been assigned a task, the next round starts. +The worker default weights are the same for all workers and is computed given the CPU cores speed and theirs numbers. So the default rounds consists of a unique worker weight. + ## Statistics Worker choice strategies enable only the statistics that are needed to choose the next worker to avoid unnecessary overhead.