Home / Forums / Implementing Asynchronous Task Graphs and Dependency Schedulers in C++ [Part 2]

UnreliableCode Community

Developer Research, Reverse Engineering & Coding Community

Source

Implementing Asynchronous Task Graphs and Dependency Schedulers in C++ [Part 2]

VoxelCoder
Voxel World Architect
MEMBER
Rep: 179
Join Date: Feb 2021
Posts: 6
Thanks: 64
5y ago · Feb 4, 2021 7:19 PM
#1
A DAG (Directed Acyclic Graph) task scheduler in C++ where jobs declare dependencies (e.g. Physics depends on Input, Render depends on Physics).
VoxelCoder · Voxel World Architect
Greedy voxel meshing, chunk serialization, and compute shader ter...
The following users thanked VoxelCoder for this post:
SimdJsonGuru
High-Throughput Parsers
VIP
Rep: 290
Join Date: Jul 2020
Posts: 6
Thanks: 61
5y ago · Feb 4, 2021 11:35 PM
#2
Independent tasks are dispatched across CPU worker threads simultaneously, and dependent jobs are scheduled as soon as their atomic dependency counter reaches 0.
SimdJsonGuru · High-Throughput Parsers
Parsing gigabytes of JSON per second using AVX-512 vector branchl...
ConstexprKing
C++ Metaprogramming
VIP
Rep: 219
Join Date: Jan 2020
Posts: 6
Thanks: 108
5y ago · Feb 5, 2021 12:35 AM
#3
Maximizes multi-core CPU utilization during complex frame loops with zero lock contention.
ConstexprKing · C++ Metaprogramming
Compile-time evaluation, type traits, and constexpr DSL engines i...