enum scheduler_mode
Description
This enumeration describes the possible modes of a scheduler.
Declared at: libs/pika/threading_base/include/pika/threading_base/scheduler_mode.hpp:13
Enumerators
| Name | Value | Comment |
|---|---|---|
| nothing_special | 0 | As the name suggests, this option can be used to disable all other options. |
| do_background_work | 1 | The scheduler will periodically call a provided callback function from a special pika thread to enable performing background-work, for instance driving networking progress or garbage-collect AGAS. |
| reduce_thread_priority | 2 | The kernel priority of the os-thread driving the scheduler will be reduced below normal. |
| delay_exit | 4 | The scheduler will wait for some unspecified amount of time before exiting the scheduling loop while being terminated to make sure no other work is being scheduled during processing the shutdown request. |
| fast_idle_mode | 8 | Some schedulers have the capability to act as 'embedded' schedulers. In this case it needs to periodically invoke a provided callback into the outer scheduler more frequently than normal. This option enables this behavior. |
| enable_elasticity | 16 | This option allows for the scheduler to dynamically increase and reduce the number of processing units it runs on. Setting this value not succeed for schedulers that do not support this functionality. |
| enable_stealing | 32 | This option allows schedulers that support work thread/stealing to enable/disable it |
| enable_stealing_numa | 64 | This option allows schedulersthat support it to disallow stealing between numa domains |
| assign_work_round_robin | 128 | This option tells schedulersthat support it to add tasks round robin to queues on each core |
| assign_work_thread_parent | 256 | This option tells schedulers that support it to add tasks round to the same core/queue that the parent task is running on |
| steal_high_priority_first | 512 | This option tells schedulers that support it to always (try to) steal high priority tasks from other queues before finishing their own lower priority tasks |
| steal_after_local | 1024 | This option tells schedulers that support it to steal tasks only when their local queues are empty |
| enable_idle_backoff | 2048 | This option allows for certain schedulers to explicitly disable exponential idle-back off |
| default_mode | 3303 | This option represents the default mode. |
| all_flags | 4095 | This enables all available options. |