Remote Execution Caching Compiler (RECC)
Remote Execution Caching Compiler (RECC) CppCon 2024 September 19, 2024 Shivam Bairoliya Software Engineer© 2024 Bloomberg Finance L.P. All rights reserved. What is RECC? ● Remote Execution Caching source build tool that wraps compiler commands and optionally forwards them to a remote build execution service ○ Encompasses the capabilities of both ccache and distcc ○ Supports remote linking and CC) ○ Supports multiple operating systems (Linux, macOS, Solaris) ● Compatible with any remote execution API server supported by Bazel ○ Single Host Server/Proxy: BuildBox-CASD ○ Distributed Server:0 码力 | 6 页 | 2.03 MB | 5 月前3BehaviorTree.CPP: Task Planning for Robots and Virtual Agents
We need a system Orchestrator to implement the robot behaviorRobot Behaviors This Coordinator or Task Planner is also the highest level of abstraction of our system, where we focus on WHAT the robot current state of the tree in real-time to an external process (GUI). ● Collect statistics about the execution of the tree and the actions in a non-intrusive way.Code injection and interactive debuggingUser0 码力 | 59 页 | 7.97 MB | 5 月前3Rethinking Task Based Concurrency and Parallelism for Low Latency C++
used when we created them.” - Albert EinsteinSo what is there to Rethink?Rethinking: Task Queues Problem #1 - Task Queues Do Not Scale Well: ● Contention: ○ Even the most meticulously designed lock-free problems: ○ Task starvation ○ Load balancing ○ Forfeits strict FIFO behaviour ○ Increases memory footprint (or requires allocations) ○ Terrible task selection “fairness” Task Thread Thread Thread Task Task Task Task Task Task Task Task Back Front Task Queue Execute Task() Thread Thread PoolRethinking: Task Queues Problem #2 - No Inherent Support For Prioritization: ● Priority queues address this but0 码力 | 142 页 | 2.80 MB | 5 月前3Taro: Task graph-based Asynchronous Programming Using C++ Coroutine
in a top-down task graph What is Task Graph-based Programming System (TGPS) Code 4• TGPS encapsulates function calls and their dependencies in a top-down task graph What is Task Graph-based Programming top-down task graph What is Task Graph-based Programming System (TGPS) Code A B C D B A C D 6• TGPS encapsulates function calls and their dependencies in a top-down task graph What is Task Graph-based sched; 2 task_a = sched.emplace([](&){ 3 // Code block A; 4 }); 5 task_b = sched.emplace([](&){ 6 // Code block B; 7 }); 8 task_c = sched.emplace([](&){ 9 // Code block C; 10 }); 11 task_d = sched0 码力 | 84 页 | 8.82 MB | 5 月前3Working with Asynchrony Generically: A Tour of C++ Executors
including some standard ones: an event loop, portable access to the system execution context, nursery for spawned work4 P2300: STD::EXECUTION Proposes: • A set of concepts that represent: • A handle to a compute Example 1: Launching concurrent work6 EXAMPLE: LAUNCHING CONCURRENT WORK namespace ex = std::execution; int compute_intensive(int); int main() { unifex::static_thread_pool pool{8}; ex::scheduler concurrently on a custom execution context libunifex: https://github.com/facebookexperimental/libunifex7 EXAMPLE: LAUNCHING CONCURRENT WORK namespace ex = std::execution; int compute_intensive(int);0 码力 | 121 页 | 7.73 MB | 5 月前3Concurrency
David Olsen - Back to Basics: Concurrency CONCURRENCY “Multiple logical threads of execution with unknown inter-task dependencies” – Daisy Hollman, “A Unifying Abstraction for Async,” CppCon 2019 DefinitionCppCon David Olsen - Back to Basics: Concurrency CONCURRENCY “Multiple logical threads of execution with unknown inter-task dependencies” – Daisy Hollman, “A Unifying Abstraction for Async,” CppCon 2019 DefinitionCppCon threads of execution with [some] inter-task dependencies” DefinitionCppCon 2023 12 David Olsen - Back to Basics: Concurrency CONCURRENCY “Multiple logical threads of execution with [some] inter-task dependencies”0 码力 | 160 页 | 2.91 MB | 5 月前3Back to Basics: Concurrency
projects, etc. ● Our brains (i.e., human cpus) however tend to perform best when we can focus on one task at a time ○ (e.g., I am unable to code and listen to music with any lyrics...unfortunately) Thinking somewhat reflects how we write software (1/3) 11 ● Typically we have one main, sequential thread of execution ● One CPU core executes code sequentially ○ i.e. One instruction after the other. Instruction somewhat reflects how we write software (2/3) 12 ● Typically we have one main, sequential thread of execution ● One CPU core executes code sequentially ○ i.e. One instruction after the other. ○ We can abstract0 码力 | 141 页 | 6.02 MB | 5 月前3Julia 1.11.6 Release Notes
. . . . . . . . . . . 308 23 Parallel Computing 310 24 Asynchronous Programming 311 24.1 Basic Task operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 24.2 Communicating Communicating with Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 24.3 More task operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 24.4 Tasks and events Caveats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 25.8 Task Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 25.9 Safe0 码力 | 2007 页 | 6.73 MB | 3 月前3Building bridges: Leveraging C++ and ROS for simulators, sensor data and algorithms
this talk, our primary discussion will be towards achieving data determinism via: • Deterministic execution2 will always run computations in the same order. • Deterministic communication2 is when, for a message runtime • All operations are finite and bounded • All potentially blocking calls have timeouts • Execution is deterministic and monitored • Memory usage • Allocations during runtime • STL constructs with std::exception • Blocking calls, such as fprintf, fwrite • Non-deterministic execution • Controlling memory usage • Controlling task execution Deterministic resource usage and runtime is necessary for a safety-critical0 码力 | 38 页 | 2.17 MB | 5 月前3Julia 1.11.4
. . . . . . . . . . . 308 23 Parallel Computing 310 24 Asynchronous Programming 311 24.1 Basic Task operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 24.2 Communicating Communicating with Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 24.3 More task operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 24.4 Tasks and events Caveats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 25.8 Task Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 25.9 Safe0 码力 | 2007 页 | 6.73 MB | 3 月前3
共 178 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18
相关搜索词
RemoteExecutionCachingCompilerRECCBehaviorTreeCPPTaskPlanningforRobotsandVirtualAgentsRethinkingBasedConcurrencyParallelismLowLatencyC++TarographbasedAsynchronousProgrammingUsingCoroutineWorkingwithAsynchronyGenericallyTourofExecutorsBacktoBasicsJulia1.11ReleaseNotesBuildingbridgesLeveragingROSsimulatorssensordataalgorithms