Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
delscorcho committed Dec 2, 2018
2 parents 4a1ca6e + f990e7c commit b732f82
Showing 1 changed file with 2 additions and 3 deletions.
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
## C++ Job System (Requires C++11)
## C++ Job System (Requires C++11+)

Implements a typical job system with features I've found useful in practice (Games, mostly).

Features include:
- Simple interfaces for submitting, monitoring, and canceling jobs.
- Easy-to-configure affinities and policies for each worker.
- Easy-to-configure affinities and policies to match workers to cores, as well as jobs to specific workers, which is useful for maximizing data-sharing and cache performance by constraining jobs operating in the same areas of memory to the same cluster(s).
- Basic work-stealing algorithm, enabling internal load-balancing between worker threads; currently lock-based.
- Full support for job dependency graphs.
- Ability to affinitize specific jobs to a subset of workers. Useful for maximizing data-sharing across cores sharing cache, and minimizing sharing across cores/modules that don't share cache. Job systems often suffer from cache-related performance problems on some platforms.
- External thread-assist: Any thread outside of the worker pool can temporarily assist in job processing until some particular job is complete. A surprising percentage of production job systems lack this, leaving the producer thread to block/wait for jobs to be completed by the worker pool, which depending on your thread configuration can be a huge waste.
- Bare-bones but useful "profiler" showing a timeline for each worker with utilization over time. Jobs can be submitted with an optional "debug character", which allows one to visualize when specific jobs ran, for how long, and on which workers.

Expand Down

0 comments on commit b732f82

Please sign in to comment.