جميع الكتب

مهني

1 Markets I: The Ecosystem and Exchange-Traded Marketsالأسواق عبر الإنترنت 2 Markets II: Rates, FX and Creditالأسواق عبر الإنترنت 3 Markets III: Commodities, Energy and Cryptoالأسواق عبر الإنترنت 4 Quantitative Methodsالأساليب عبر الإنترنت 5 Derivatives and Volatilityالمشتقات عبر الإنترنت 6 Rates, Credit, XVA and Riskالفائدة والائتمان والمخاطر عبر الإنترنت 7 Research Craft: Predictors, Backtests, Measurement, Portfoliosالبحث عبر الإنترنت 8 Strategies I: Equities and Futuresالاستراتيجيات عبر الإنترنت 9 Strategies II: Volatility, Relative Value, Macro and the Bank Desksالاستراتيجيات عبر الإنترنت 10 Microstructure and Executionالتنفيذ عبر الإنترنت 11 Market Making and High-Frequency Tradingصناعة السوق عبر الإنترنت 12 Machine Learning for Marketsتعلم الآلة عبر الإنترنت 13 Low-Latency Softwareالتكنولوجيا عبر الإنترنت 14 Networks, Hardware and Trading Infrastructureالتكنولوجيا عبر الإنترنت 15 Research, Data and Risk Platformsالتكنولوجيا عبر الإنترنت 16 The Desk and the Firmالشركة عبر الإنترنت 17 The Industry: Firms, Roles and Careersالمسارات المهنية عبر الإنترنت 18 The Interview Bookالمسارات المهنية عبر الإنترنت
التطبيقات حول المدرب تسجيل الدخول ابدأ القراءة

Quantitative Finance · المسرد

ما معنى Ring buffer, single-producer single-consumer queue؟

يُعرف أيضًا باسم: ring buffer · single-producer single-consumer queue

Definition 12.1 Low-Latency Software · الفصل 12 — Queues, Ring Buffers and Shared Memory

A ring buffer is a fixed array of slots used circularly: a writer’s position and a reader’s position increase forever and index the array modulo its size, a power of two so that the modulo is a mask. A single-producer single-consumer queue (SPSC) is a ring with exactly one writing thread and one reading thread; each position is written by one thread only, so no compare-and-swap is needed.

A ring of eight slots after five messages were written and two read (the state of the build’s shared fixture). The producer’s and consumer’s positions each sit on a cache line of their own and only grow; the slot of position p is p 8.
Figure 12.1. A ring of eight slots after five messages were written and two read (the state of the build’s shared fixture). The producer’s and consumer’s positions each sit on a cache line of their own and only grow; the slot of position pp is p mod 8p \bmod 8.
Round trips of an eight-byte message between two pinned threads (or processes) through two SPSC rings, and through two queues protected by a mutex and a condition variable; 100 000 round trips each. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2, no isolated cores. Data: bench_rings.py.
Figure 12.2. Round trips of an eight-byte message between two pinned threads (or processes) through two SPSC rings, and through two queues protected by a mutex and a condition variable; 100 000 round trips each. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2, no isolated cores. Data: bench_rings.py.
اقرأ في الفصل →