Jobs
Robust Fiber-Driven Task-Based Parallelism Library
Install / Use
/learn @adepke/JobsREADME
Jobs
Robust Fiber-Driven Task-Based Parallelism Library
Features
- Fast scalable performance
- Lightweight dependencies with minimal switching overhead
- Managed dependency memory
- Unlimited dependencies per job, allowing for complex graphs
- Fiber-aware mutexes that allow mid-execution interruption
- High level algorithms to abstract individual job creation and management
Motivation
With the modern trend of increasing CPU cores, a highly scalable and low overhead automated work distribution system is a critical component of the backend for many real-time applications. While many of these already exist, few benefit from the power of user mode scheduling, which allows for minimal cost switching between jobs and full control over the task scheduling. This project was primarily created as a testbed to learn how to effectively operate with fibers to create a performance-focused scheduler.
Performance
Coming soon, Tracy profiler fiber support is a work-in-progress
Building
Jobs uses premake as a project file generator.
Windows
To create your solution files, run the included premake5.exe executable with the target project type as the first commandline argument, eg. vs2019 for Visual Studio 2019 project files. Open the generated solution/project files in the specified IDE and build the default project.
Linux
To create the makefiles, run the included premake5 executable with the target action being gmake2. Then, run make to compile the project.
Options
When running the build script, the behavior can be modified via the options below.
--logging
Used to retrieve internal logs for debugging purposes, this will have signficant performance impacts.
--profiling
Creates additional projects for compiling Tracy and the included examples, enables the emission of Tracy zones for internal profiling. You must include a build of Tracy (including it's dependencies) in the project root directory, with it's premake build scripts.
Samples
Full examples of using this library can be found in the Examples/ directory.
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
