Combining Co-Routines and Functions into a Job System
Hlavacs – Combining Co-Routines and Functions into a Job System - CppCon 2021 1 / 39Helmut Hlavacs – Combining Co-Routines and Functions into a Job System - CppCon 2021 2 / 39 About Myself • Professor ComputingHelmut Hlavacs – Combining Co-Routines and Functions into a Job System - CppCon 2021 3 / 39 Creating Game Engines with C++ • Vienna Game Job System + • Graphics API Abstraction Layer + • Vienna Entity Engine 2.0 https://github.com/hlavacs 20Helmut Hlavacs – Combining Co-Routines and Functions into a Job System - CppCon 2021 4 / 39 The Game Loop auto prev = high_resolution_clock::now(); while( !finished()0 码力 | 39 页 | 1.23 MB | 5 月前3Building a Coroutine-Based Job System Without Standard Library
Tianyi(Tanki) Zhang tankiistanki tankijong COROUTINE JOB SYSTEM WITHOUT STANDARD LIBRARY source code of the system: https://github.com/tankiJong/cpp-coroutine-job-system Hi Everyone, Tanki here. Thanks for coming We will see them many times in the rest of the talk, and they will have different names in the job system. 1314 14 templatestruct task; task sum(int a, int b) { int result = a customization. 4344 44 JOB SYSTEM • Scheduler + User defined workload • Optimize for CPU throughput Okay, finally, we are ready to talk about the job system! What is a job system? Job system is a kind of 0 码力 | 120 页 | 2.20 MB | 5 月前3Techniques to Optimise Multi-threaded Data Building During Game Development
frame time • Systems run together • Read and decompress • Smooth player experience DATA BUILDING • Batch execution • Minimise wall clock time • Systems run in isolation • Read/Write and compress • Developer data for global illumination ▶ Process everything in parallel Speaker notesASSUMPTIONS • Built on Job System, with Async IO • Run on single PC with many processor cores • Fast & sizeable memory & storage Techniques for running on single computer - many threads - not about clusters Built for async processing - job system and async IO PC used for examples is from 4-5 years ago 16 physical cores - 32 logical cores0 码力 | 99 页 | 2.40 MB | 5 月前3Designing C++ Code Generator Guardrails
libraries, and the company has been around for 40 years. In addition to infrastructure teams whose job it is to look at library architecture, there are dozens of engineers who have joined the effort as another. There was little hierarchy to work out. They all just needed to be added to the linkline in a batch above their few core dependencies. 37© 2018 Bloomberg Finance L.P. All rights reserved. © 2024 Bloomberg0 码力 | 48 页 | 2.71 MB | 5 月前3Interesting Upcoming Features from Low Latency, Parallelism and Concurrency
Execution of Asynchronous Reclamation Proposed standard extensions: ● Synchronous reclamation ● Batch creation and destruction P3135R1: Hazard Pointer Extensions (beyond C++26) P3135R1: Hazard Pointer Synchronous Reclamation OK OKBatch Creation and DestructionC++26 (one at a time) Hazard Pointer Batch Creation and Destruction { hazard_pointer hp[3]; /* Three hazard pointers are made nonempty destroyed separately. */ Batch creation and destruction { hazard_pointer hp[3]; /* Three hazard pointers are made nonempty together. */ make_hazard_pointer_batch(std::span{hp}); SCOPE_EXIT0 码力 | 56 页 | 514.85 KB | 5 月前3Conan 1.36 Documentation
used in this CI job. Then it is necessary to fire again a new job that will build these packages. • If the merge is a clean fast-forward, then the packages that were built in this job would be valid, among different concurrent Conan instances. This is a typical scenario in CI servers, in which each job uses a different Conan package cache (defined by CONAN_USER_HOME environment variable). Every different Integration processes, it is recommended to have a different Conan package cache (CONAN_USER_HOME) for each job, in most of the cases, because the Conan package cache is not concurrent, and it might also have old0 码力 | 765 页 | 5.71 MB | 1 年前3Conan 1.34 Documentation
used in this CI job. Then it is necessary to fire again a new job that will build these packages. • If the merge is a clean fast-forward, then the packages that were built in this job would be valid, among different concurrent Conan instances. This is a typical scenario in CI servers, in which each job uses a different Conan package cache (defined by CONAN_USER_HOME environment variable). Every different Integration processes, it is recommended to have a different Conan package cache (CONAN_USER_HOME) for each job, in most of the cases, because the Conan package cache is not concurrent, and it might also have old0 码力 | 747 页 | 5.66 MB | 1 年前3Conan 1.35 Documentation
used in this CI job. Then it is necessary to fire again a new job that will build these packages. • If the merge is a clean fast-forward, then the packages that were built in this job would be valid, among different concurrent Conan instances. This is a typical scenario in CI servers, in which each job uses a different Conan package cache (defined by CONAN_USER_HOME environment variable). Every different Integration processes, it is recommended to have a different Conan package cache (CONAN_USER_HOME) for each job, in most of the cases, because the Conan package cache is not concurrent, and it might also have old0 码力 | 759 页 | 5.70 MB | 1 年前3Conan 1.28 Documentation
used in this CI job. Then it is necessary to fire again a new job that will build these packages. • If the merge is a clean fast-forward, then the packages that were built in this job would be valid, among different concurrent Conan instances. This is a typical scenario in CI servers, in which each job uses a different Conan package cache (defined by CONAN_USER_HOME environment variable). Every different Integration processes, it is recommended to have a different Conan package cache (CONAN_USER_HOME) for each job, in most of the cases, because the Conan package cache is not concurrent, and it might also have old0 码力 | 699 页 | 5.39 MB | 1 年前3Conan 1.29 Documentation
used in this CI job. Then it is necessary to fire again a new job that will build these packages. • If the merge is a clean fast-forward, then the packages that were built in this job would be valid, among different concurrent Conan instances. This is a typical scenario in CI servers, in which each job uses a different Conan package cache (defined by CONAN_USER_HOME environment variable). Every different Integration processes, it is recommended to have a different Conan package cache (CONAN_USER_HOME) for each job, in most of the cases, because the Conan package cache is not concurrent, and it might also have old0 码力 | 703 页 | 5.41 MB | 1 年前3
共 116 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12