deploying the networking TS
Deploying the Networking TS Robert Leahy Lead Software Engineer rleahy@rleahy.ca Opening DataConn socket on 0.0.0.0:11653... Started (send SIGINT or SIGTERM to exit) 2021-10-06T04:01:26.490694105Z0 码力 | 44 页 | 892.77 KB | 5 月前3Things Happening in SG14
Attributes • Move Semantics • Handling Disappointment • Pattern Matching • Tooling and Ease-of-Coding • Networking • Parallel and Concurrent Computing • Logging and I/O • Numeric Computing • Miscellaneous 69P2966 Attributes • Move Semantics • Handling Disappointment • Pattern Matching • Tooling and Ease-of-Coding • Networking • Parallel and Concurrent Computing • Logging and I/O • Numeric Computing • Miscellaneous 70 individuals writing code for multiple platforms 111Networking 112P2966 requests: networking • A small, fast and low-level layer including sockets • Networking is something every game engine implements by0 码力 | 148 页 | 1009.97 KB | 5 月前3Session Types in C++
practice • concurrent queues • networking sockets 51Communication? • Abstraction: channels... or actors Two main cases in practice • concurrent queues • networking sockets Bounded/Unbounded, Sync/Async 52Communication? • Abstraction: channels... or actors Two main cases in practice • concurrent queues • networking sockets Bounded/Unbounded, Sync/Async, MPMC, MPSC, SPMC, SPSC, Lockfree, Blocking... 53Communication 53Communication? • Abstraction: channels... or actors Two main cases in practice • concurrent queues • networking sockets io_context, resolver, acceptor, end_point, asio::buffer, async_read/write, serialization0 码力 | 89 页 | 1.55 MB | 5 月前3When Nanoseconds Matter: Ultrafast Trading Systems in C++
mBidsCompare); } else { return AddOrder(mAskLevels, price, volume, mAsksCompare); } }Transport: networking & concurrency 63Low-latency transport 64 • General pattern - Kernel bypass when receiving data fan-out to processes on the same serverUserspace Networking 66 • Solarflare – industry standard low-latency NIC Source: solarflare.comUserspace Networking 67 • Solarflare – industry standard low-latency code changes needed!) onload --profile=latency ./algo_trader Source: solarflare.comUserspace Networking 68 • Solarflare – industry standard low-latency NIC • OpenOnload - Easy to use: compatible0 码力 | 123 页 | 5.89 MB | 5 月前3THE NETWORKINGTS FROM SCRATCH: IO Objects
T C H Robert Leahy - rleahy@rleahy.caNetworking TS & Asio ISO C++ Networking is blocked on Executors (P0443) Target for Networking is currently C++23 (P0592) Used standalone Asio (1.18.0) to prepare prepare these slides Using the P0443-friendly extensions to the Networking TS shipping in “standalone” Asio & Boost.Asio (P0958) 2async_wait_then_write 3Composed Asynchronous Operations Composing asynchronous objects” provide a handle to low level asynchronous functionality within the framework of the Networking TS Examples: std::net::ip::tcp::socket std::net::steady_timer Possibilities: EFVI-based multicast0 码力 | 35 页 | 900.82 KB | 5 月前3C++20's
updates to the data? • Try to figure out some networking scenario to pull in the data when needed The STL currently does not have parts requiring networking and we would really like to avoid adding that updates to the data? • Try to figure out some networking scenario to pull in the data when needed The STL currently does not have parts requiring networking and we would really like to avoid adding that0 码力 | 55 页 | 8.67 MB | 5 月前3Creating a Sender/Receiver HTTP Server
clients. • Use the sender/receiver asynchronous framework. • Use a minimalistic sender/receiver networking interface ObjectiveTechAtBloomberg.com © 2024 Bloomberg Finance L.P. All rights reserved. • https://github.com/NVIDIA/stdexec.git • https://github.com/beman-project/execution26 • Sender/receiver networking: http://wg21.link/p2762 • Implementation: https://github.com/beman-project/net29 • Async scope:0 码力 | 8 页 | 2.19 MB | 5 月前3A Simple Rollback System in C++
software architecture ● Debugging desync with checksumReferences ● 8 Frames in 16ms: Rollback Networking in Mortal Kombat and Injustice 2 by Netherrealm Games' Michael Stallone, GDC 2018: https://www0 码力 | 58 页 | 6.61 MB | 5 月前3Blazing Trails: Building the World's Fastest CameBoy Emulator in Modern C++
29No MBC needed!Possible interesting extension 31Possible interesting extension 32 As soon as networking is added to the C++ standard :-PWhy does it have to be fast? • Bragging rights? • To run on low0 码力 | 91 页 | 8.37 MB | 5 月前3Code Analysis++
About me – ● Anastasia Kazakova, @anastasiak2512 ● C++ Dev: Embedded, Networking ● C++ Tools PMM and .NET Tools Marketing Lead, JetBrains ● St. Petersburg C++ UG: https://www.meetup.com/St-Petersburg-CPP-User-0 码力 | 61 页 | 2.70 MB | 5 月前3
共 74 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8