DotMP
Public Member Functions | List of all members
DotMP.Schedulers.RuntimeScheduler Class Reference

Placeholder for the runtime scheduler. Is not meant to be called directly. The Parallel.FixArgs method should detect its existence and swap it out for another scheduler with implementations. More...

Inheritance diagram for DotMP.Schedulers.RuntimeScheduler:
Inheritance graph
[legend]
Collaboration diagram for DotMP.Schedulers.RuntimeScheduler:
Collaboration graph
[legend]

Public Member Functions

override void LoopInit (int start, int end, uint num_threads, uint chunk_size)
 Should not be called. More...
 
override void LoopNext (int thread_id, out int start, out int end)
 Should not be called. More...
 

Additional Inherited Members

- Properties inherited from DotMP.Schedule
static Schedule Static [get]
 The static scheduling strategy. Iterations are divided amongst threads in round-robin fashion. Each thread gets a 'chunk' of iterations, determined by the chunk size. If no chunk size is specified, it's computed as total iterations divided by number of threads. More...
 
static Schedule Dynamic [get]
 The dynamic scheduling strategy. Iterations are managed in a central queue. Threads fetch chunks of iterations from this queue when they have no assigned work. If no chunk size is defined, a basic heuristic is used to determine a chunk size. More...
 
static Schedule Guided [get]
 The guided scheduling strategy. Similar to dynamic, but the chunk size starts larger and shrinks as iterations are consumed. The shrinking formula is based on the remaining iterations divided by the number of threads. The chunk size parameter sets a minimum chunk size. More...
 
static Schedule Runtime [get]
 Runtime-defined scheduling strategy. Schedule is determined by the 'OMP_SCHEDULE' environment variable. Expected format: "schedule[,chunk_size]", e.g., "static,128", "guided", or "dynamic,3". More...
 
static Schedule WorkStealing [get]
 The work-stealing scheduling strategy. Each thread gets its own local queue of iterations to execute. If a thread's queue is empty, it randomly selects another thread's queue as its "victim" and steals half of its remaining iterations. The chunk size parameter specifies how many iterations a thread should execute from its local queue at a time. More...
 

Detailed Description

Placeholder for the runtime scheduler. Is not meant to be called directly. The Parallel.FixArgs method should detect its existence and swap it out for another scheduler with implementations.

Member Function Documentation

◆ LoopInit()

override void DotMP.Schedulers.RuntimeScheduler.LoopInit ( int  start,
int  end,
uint  num_threads,
uint  chunk_size 
)
inlinevirtual

Should not be called.

Parameters
startUnused.
endUnused.
num_threadsUnused.
chunk_sizeUnused.
Exceptions
NotImplementedExceptionAlways thrown.

Implements DotMP.Schedule.

◆ LoopNext()

override void DotMP.Schedulers.RuntimeScheduler.LoopNext ( int  thread_id,
out int  start,
out int  end 
)
inlinevirtual

Should not be called.

Parameters
thread_idUnused.
startUnused.
endUnused.
Exceptions
NotImplementedExceptionAlways thrown.

Implements DotMP.Schedule.


The documentation for this class was generated from the following file: