Overview of enki Task Scheduler
masterenkiTS is a lightweight, permissively licensed C and C++ Task Scheduler designed for creating parallel programs. It aims to help developers handle both data-level and task-level parallelism to maximize multicore CPU performance. It is designed to be lean, fast on low thread counts, and scalable, with a focus on zero allocations during scheduling.
Key features include:
- Braided Parallelism: Tasks can be issued from other tasks or from the thread that created the Task System.
- Task Pinning: Ability to pin tasks to specific threads.
- Task Priorities: Configurable task priorities (default is 3, but can be increased via
ENKITS_TASK_PRIORITIES_NUM). - External Threads: Ability to register external threads for use with the API.
- Dependencies: Support for setting dependencies between tasks.
- Completion Actions: Perform actions upon task completion to avoid re-scheduling overhead.
- Custom Allocators: API for providing custom allocators.