Skip to content
Snippets Groups Projects

Create a queue for all schedule-able algorithms

Merged Benjamin Michael Wynne requested to merge bwynne/Gaudi_gaudi:QueueAlgorithms into master

The AvalancheScheduler preserves algorithm ordering by only scheduling them when there is an available thread. However, the current implementation has the side-effect of creating scheduler overhead when there are very many algorithms available to schedule, relative to the number of threads. The majority of these schedule attempts will be discarded, causing a repeated cycle of retrieving precedence graph states and then calling promoteToScheduled.

By creating a queue for all algorithms that can be scheduled, the order of execution is preserved in the queue, and all results of evaluating the precedence graph are guaranteed to be used first time. This gives a dramatic improvement to scheduler performance in scenarios where many algorithms can be executed concurrently.

This is illustrated in the attached plot: Filter100.2

The test is conducted using the JO in !865 (merged), and comparison is made to the Gaudi master branch, and to !863 (merged) (scouting).

NB: this MR should be applied as well as !863 (merged)

Edited by Benjamin Michael Wynne

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading