class static_priority_queue_scheduler

Declaration

template <
    typename Mutex = std::mutex,
    typename PendingQueuing = pika::threads::policies::lockfree_fifo,
    typename StagedQueuing = pika::threads::policies::lockfree_fifo,
    typename TerminatedQueuing = pika::threads::policies::
        default_static_priority_queue_scheduler_terminated_queue>
class static_priority_queue_scheduler { /* full declaration omitted */ };

Description

//////////////////////////////////////////////////////////////////////// The static_priority_queue_scheduler maintains exactly one queue of work items (threads) per OS thread, where this OS thread pulls its next work from. Additionally it maintains separate queues: several for high priority threads and one for low priority threads. High priority threads are executed by the first N OS threads before any other work is executed. Low priority threads are executed by the last OS thread whenever no other work is available. This scheduler does not do any work stealing.

Declared at: libs/pika/schedulers/include/pika/schedulers/static_priority_queue_scheduler.hpp:49

Method Overview

Methods

static std::string get_scheduler_name()

Declared at: libs/pika/schedulers/include/pika/schedulers/static_priority_queue_scheduler.hpp:76

void set_scheduler_mode(
    pika::threads::policies::scheduler_mode mode)

Declared at: libs/pika/schedulers/include/pika/schedulers/static_priority_queue_scheduler.hpp:68

Parameters

pika::threads::policies::scheduler_mode mode

static_priority_queue_scheduler<
    Mutex,
    PendingQueuing,
    StagedQueuing,
    TerminatedQueuing>(
    const pika::threads::policies::
        static_priority_queue_scheduler::
            init_parameter_type& init,
    bool deferred_initialization = true)

Declared at: libs/pika/schedulers/include/pika/schedulers/static_priority_queue_scheduler.hpp:59

Parameters

const pika::threads::policies:: static_priority_queue_scheduler:: init_parameter_type& init
bool deferred_initialization = true