NVIDIA Holoscan SDK v2.5.0
Holoscan v2.5.0

holoscan.schedulers

This module provides a Python API to underlying C++ API Schedulers.

holoscan.schedulers.EventBasedScheduler Event-based multi-thread scheduler
holoscan.schedulers.GreedyScheduler Greedy scheduler
holoscan.schedulers.MultiThreadScheduler Multi-thread scheduler
class holoscan.schedulers.EventBasedScheduler

Bases: holoscan.gxf._gxf.GXFScheduler, holoscan.core._core.Component, holoscan.gxf._gxf.GXFComponent

Event-based multi-thread scheduler

Parameters
fragmentFragment

The fragment the condition will be associated with

clockholoscan.resources.Clock or None, optional

The clock used by the scheduler to define the flow of time. If None, a default-constructed holoscan.resources.RealtimeClock will be used.

worker_thread_numberint

The number of worker threads.

stop_on_deadlockbool, optional

If enabled the scheduler will stop when all entities are in a waiting state, but no periodic entity exists to break the dead end. Should be disabled when scheduling conditions can be changed by external actors, for example by clearing queues manually.

max_duration_msint, optional

The maximum duration for which the scheduler will execute (in ms). If not specified (or if a negative value is provided), the scheduler will run until all work is done. If periodic terms are present, this means the application will run indefinitely.

stop_on_deadlock_timeoutint, optional

The scheduler will wait this amount of time before determining that it is in deadlock and should stop. It will reset if a job comes in during the wait. A negative value means not stop on deadlock. This parameter only applies when stop_on_deadlock=true”,

namestr, optional

The name of the scheduler.

Attributes

args The list of arguments associated with the component.
description YAML formatted string describing the component.
fragment Fragment that the scheduler belongs to.
gxf_cid The GXF component ID.
gxf_cname The name of the component.
gxf_context The GXF context of the component.
gxf_eid The GXF entity ID.
gxf_typename The GXF type name of the component.
id The identifier of the component.
name The name of the scheduler.
clock
max_duration_ms
spec
stop_on_deadlock
stop_on_deadlock_timeout
worker_thread_number

Methods

add_arg(*args, **kwargs) Overloaded function.
gxf_initialize(self) Initialize the component.
initialize(self) initialization method for the scheduler.
setup(self, arg0) setup method for the scheduler.
__init__(self: holoscan.schedulers._schedulers.EventBasedScheduler, fragment: holoscan.core._core.Fragment, *, clock: holoscan.resources._resources.Clock = None, worker_thread_number: int = 1, stop_on_deadlock: bool = True, max_duration_ms: int = - 1, stop_on_deadlock_timeout: int = 0, name: str = 'multithread_scheduler') → None

Event-based multi-thread scheduler

Parameters
fragmentFragment

The fragment the condition will be associated with

clockholoscan.resources.Clock or None, optional

The clock used by the scheduler to define the flow of time. If None, a default-constructed holoscan.resources.RealtimeClock will be used.

worker_thread_numberint

The number of worker threads.

stop_on_deadlockbool, optional

If enabled the scheduler will stop when all entities are in a waiting state, but no periodic entity exists to break the dead end. Should be disabled when scheduling conditions can be changed by external actors, for example by clearing queues manually.

max_duration_msint, optional

The maximum duration for which the scheduler will execute (in ms). If not specified (or if a negative value is provided), the scheduler will run until all work is done. If periodic terms are present, this means the application will run indefinitely.

stop_on_deadlock_timeoutint, optional

The scheduler will wait this amount of time before determining that it is in deadlock and should stop. It will reset if a job comes in during the wait. A negative value means not stop on deadlock. This parameter only applies when stop_on_deadlock=true”,

namestr, optional

The name of the scheduler.

add_arg(*args, **kwargs)

Overloaded function.

  1. add_arg(self: holoscan.core._core.ComponentBase, arg: holoscan.core._core.Arg) -> None

Add an argument to the component.

  1. add_arg(self: holoscan.core._core.ComponentBase, arg: holoscan.core._core.ArgList) -> None

Add a list of arguments to the component.

property args

The list of arguments associated with the component.

Returns
arglistholoscan.core.ArgList
property clock
property description

YAML formatted string describing the component.

property fragment

Fragment that the scheduler belongs to.

Returns
nameholoscan.core.Fragment
property gxf_cid

The GXF component ID.

property gxf_cname

The name of the component.

property gxf_context

The GXF context of the component.

property gxf_eid

The GXF entity ID.

gxf_initialize(self: holoscan.gxf._gxf.GXFComponent) → None

Initialize the component.

property gxf_typename

The GXF type name of the component.

Returns
str

The GXF type name of the component.

property id

The identifier of the component.

The identifier is initially set to -1, and will become a valid value when the component is initialized.

With the default executor (holoscan.gxf.GXFExecutor), the identifier is set to the GXF component ID.

Returns
idint
initialize(self: holoscan.core._core.Scheduler) → None

initialization method for the scheduler.

property max_duration_ms
property name

The name of the scheduler.

Returns
namestr
setup(self: holoscan.core._core.Scheduler, arg0: holoscan.core._core.ComponentSpec) → None

setup method for the scheduler.

property spec
property stop_on_deadlock
property stop_on_deadlock_timeout
property worker_thread_number
class holoscan.schedulers.GreedyScheduler

Bases: holoscan.gxf._gxf.GXFScheduler, holoscan.core._core.Component, holoscan.gxf._gxf.GXFComponent

Greedy scheduler

Parameters
fragmentFragment

The fragment the condition will be associated with

clockholoscan.resources.Clock or None, optional

The clock used by the scheduler to define the flow of time. If None, a default-constructed holoscan.resources.RealtimeClock will be used.

stop_on_deadlockbool, optional

If enabled the scheduler will stop when all entities are in a waiting state, but no periodic entity exists to break the dead end. Should be disabled when scheduling conditions can be changed by external actors, for example by clearing queues manually.

max_duration_msint, optional

The maximum duration for which the scheduler will execute (in ms). If not specified (or if a negative value is provided), the scheduler will run until all work is done. If periodic terms are present, this means the application will run indefinitely.

check_recession_period_msfloat, optional

The maximum duration for which the scheduler would wait (in ms) when all operators are not ready to run in the current iteration.

stop_on_deadlock_timeoutint, optional

The scheduler will wait this amount of time before determining that it is in deadlock and should stop. It will reset if a job comes in during the wait. A negative value means not stop on deadlock. This parameter only applies when stop_on_deadlock=true”,

namestr, optional

The name of the scheduler.

Attributes

args The list of arguments associated with the component.
description YAML formatted string describing the component.
fragment Fragment that the scheduler belongs to.
gxf_cid The GXF component ID.
gxf_cname The name of the component.
gxf_context The GXF context of the component.
gxf_eid The GXF entity ID.
gxf_typename The GXF type name of the component.
id The identifier of the component.
name The name of the scheduler.
check_recession_period_ms
clock
max_duration_ms
spec
stop_on_deadlock
stop_on_deadlock_timeout

Methods

add_arg(*args, **kwargs) Overloaded function.
gxf_initialize(self) Initialize the component.
initialize(self) initialization method for the scheduler.
setup(self, arg0) setup method for the scheduler.
__init__(self: holoscan.schedulers._schedulers.GreedyScheduler, fragment: holoscan.core._core.Fragment, *, clock: holoscan.resources._resources.Clock = None, stop_on_deadlock: bool = True, max_duration_ms: int = - 1, check_recession_period_ms: float = 0.0, stop_on_deadlock_timeout: int = 0, name: str = 'greedy_scheduler') → None

Greedy scheduler

Parameters
fragmentFragment

The fragment the condition will be associated with

clockholoscan.resources.Clock or None, optional

The clock used by the scheduler to define the flow of time. If None, a default-constructed holoscan.resources.RealtimeClock will be used.

stop_on_deadlockbool, optional

If enabled the scheduler will stop when all entities are in a waiting state, but no periodic entity exists to break the dead end. Should be disabled when scheduling conditions can be changed by external actors, for example by clearing queues manually.

max_duration_msint, optional

The maximum duration for which the scheduler will execute (in ms). If not specified (or if a negative value is provided), the scheduler will run until all work is done. If periodic terms are present, this means the application will run indefinitely.

check_recession_period_msfloat, optional

The maximum duration for which the scheduler would wait (in ms) when all operators are not ready to run in the current iteration.

stop_on_deadlock_timeoutint, optional

The scheduler will wait this amount of time before determining that it is in deadlock and should stop. It will reset if a job comes in during the wait. A negative value means not stop on deadlock. This parameter only applies when stop_on_deadlock=true”,

namestr, optional

The name of the scheduler.

add_arg(*args, **kwargs)

Overloaded function.

  1. add_arg(self: holoscan.core._core.ComponentBase, arg: holoscan.core._core.Arg) -> None

Add an argument to the component.

  1. add_arg(self: holoscan.core._core.ComponentBase, arg: holoscan.core._core.ArgList) -> None

Add a list of arguments to the component.

property args

The list of arguments associated with the component.

Returns
arglistholoscan.core.ArgList
property check_recession_period_ms
property clock
property description

YAML formatted string describing the component.

property fragment

Fragment that the scheduler belongs to.

Returns
nameholoscan.core.Fragment
property gxf_cid

The GXF component ID.

property gxf_cname

The name of the component.

property gxf_context

The GXF context of the component.

property gxf_eid

The GXF entity ID.

gxf_initialize(self: holoscan.gxf._gxf.GXFComponent) → None

Initialize the component.

property gxf_typename

The GXF type name of the component.

Returns
str

The GXF type name of the component.

property id

The identifier of the component.

The identifier is initially set to -1, and will become a valid value when the component is initialized.

With the default executor (holoscan.gxf.GXFExecutor), the identifier is set to the GXF component ID.

Returns
idint
initialize(self: holoscan.core._core.Scheduler) → None

initialization method for the scheduler.

property max_duration_ms
property name

The name of the scheduler.

Returns
namestr
setup(self: holoscan.core._core.Scheduler, arg0: holoscan.core._core.ComponentSpec) → None

setup method for the scheduler.

property spec
property stop_on_deadlock
property stop_on_deadlock_timeout
class holoscan.schedulers.MultiThreadScheduler

Bases: holoscan.gxf._gxf.GXFScheduler, holoscan.core._core.Component, holoscan.gxf._gxf.GXFComponent

Multi-thread scheduler

Parameters
fragmentFragment

The fragment the condition will be associated with

clockholoscan.resources.Clock or None, optional

The clock used by the scheduler to define the flow of time. If None, a default-constructed holoscan.resources.RealtimeClock will be used.

worker_thread_numberint

The number of worker threads.

stop_on_deadlockbool, optional

If enabled the scheduler will stop when all entities are in a waiting state, but no periodic entity exists to break the dead end. Should be disabled when scheduling conditions can be changed by external actors, for example by clearing queues manually.

check_recession_period_msfloat, optional

The maximum duration for which the scheduler would wait (in ms) when an operator is not ready to run yet.

max_duration_msint, optional

The maximum duration for which the scheduler will execute (in ms). If not specified (or if a negative value is provided), the scheduler will run until all work is done. If periodic terms are present, this means the application will run indefinitely.

stop_on_deadlock_timeoutint, optional

The scheduler will wait this amount of time before determining that it is in deadlock and should stop. It will reset if a job comes in during the wait. A negative value means not stop on deadlock. This parameter only applies when stop_on_deadlock=true”,

namestr, optional

The name of the scheduler.

Attributes

args The list of arguments associated with the component.
description YAML formatted string describing the component.
fragment Fragment that the scheduler belongs to.
gxf_cid The GXF component ID.
gxf_cname The name of the component.
gxf_context The GXF context of the component.
gxf_eid The GXF entity ID.
gxf_typename The GXF type name of the component.
id The identifier of the component.
name The name of the scheduler.
check_recession_period_ms
clock
max_duration_ms
spec
stop_on_deadlock
stop_on_deadlock_timeout
worker_thread_number

Methods

add_arg(*args, **kwargs) Overloaded function.
gxf_initialize(self) Initialize the component.
initialize(self) initialization method for the scheduler.
setup(self, arg0) setup method for the scheduler.
__init__(self: holoscan.schedulers._schedulers.MultiThreadScheduler, fragment: holoscan.core._core.Fragment, *, clock: holoscan.resources._resources.Clock = None, worker_thread_number: int = 1, stop_on_deadlock: bool = True, check_recession_period_ms: float = 5.0, max_duration_ms: int = - 1, stop_on_deadlock_timeout: int = 0, name: str = 'multithread_scheduler') → None

Multi-thread scheduler

Parameters
fragmentFragment

The fragment the condition will be associated with

clockholoscan.resources.Clock or None, optional

The clock used by the scheduler to define the flow of time. If None, a default-constructed holoscan.resources.RealtimeClock will be used.

worker_thread_numberint

The number of worker threads.

stop_on_deadlockbool, optional

If enabled the scheduler will stop when all entities are in a waiting state, but no periodic entity exists to break the dead end. Should be disabled when scheduling conditions can be changed by external actors, for example by clearing queues manually.

check_recession_period_msfloat, optional

The maximum duration for which the scheduler would wait (in ms) when an operator is not ready to run yet.

max_duration_msint, optional

The maximum duration for which the scheduler will execute (in ms). If not specified (or if a negative value is provided), the scheduler will run until all work is done. If periodic terms are present, this means the application will run indefinitely.

stop_on_deadlock_timeoutint, optional

The scheduler will wait this amount of time before determining that it is in deadlock and should stop. It will reset if a job comes in during the wait. A negative value means not stop on deadlock. This parameter only applies when stop_on_deadlock=true”,

namestr, optional

The name of the scheduler.

add_arg(*args, **kwargs)

Overloaded function.

  1. add_arg(self: holoscan.core._core.ComponentBase, arg: holoscan.core._core.Arg) -> None

Add an argument to the component.

  1. add_arg(self: holoscan.core._core.ComponentBase, arg: holoscan.core._core.ArgList) -> None

Add a list of arguments to the component.

property args

The list of arguments associated with the component.

Returns
arglistholoscan.core.ArgList
property check_recession_period_ms
property clock
property description

YAML formatted string describing the component.

property fragment

Fragment that the scheduler belongs to.

Returns
nameholoscan.core.Fragment
property gxf_cid

The GXF component ID.

property gxf_cname

The name of the component.

property gxf_context

The GXF context of the component.

property gxf_eid

The GXF entity ID.

gxf_initialize(self: holoscan.gxf._gxf.GXFComponent) → None

Initialize the component.

property gxf_typename

The GXF type name of the component.

Returns
str

The GXF type name of the component.

property id

The identifier of the component.

The identifier is initially set to -1, and will become a valid value when the component is initialized.

With the default executor (holoscan.gxf.GXFExecutor), the identifier is set to the GXF component ID.

Returns
idint
initialize(self: holoscan.core._core.Scheduler) → None

initialization method for the scheduler.

property max_duration_ms
property name

The name of the scheduler.

Returns
namestr
setup(self: holoscan.core._core.Scheduler, arg0: holoscan.core._core.ComponentSpec) → None

setup method for the scheduler.

property spec
property stop_on_deadlock
property stop_on_deadlock_timeout
property worker_thread_number
Previous holoscan.resources
Next Holoscan Application Package Specification (HAP)
© Copyright 2022-2024, NVIDIA. Last updated on Oct 1, 2024.