جميع الكتب

مهني

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 · المسرد

ما معنى Memory ordering, acquire–release ordering, sequential consistency؟

يُعرف أيضًا باسم: memory ordering · acquire--release ordering · sequential consistency

Definition 11.2 Low-Latency Software · الفصل 11 — Lock-Free Programming

The memory ordering of an atomic operation states what other memory accesses it orders. In acquire–release ordering, a load with acquire that reads the value written by a store with release sees every write the storing thread made before that store: the pair publishes data. Sequential consistency, the default of C++ atomics, adds a single total order of all such operations that every thread agrees on, as if they were interleaved on one processor. A relaxed operation is atomic but orders nothing else.

The store-buffer litmus test: thread A runs x = 1; r1 = y, thread B runs y = 1; r2 = x, a million times each. Under sequential consistency at least one read sees 1; with weaker orderings, the stores still in each core’s store buffer let both read 0, rarely but really. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2, no isolated cores. Data: bench_lockfree.py.
Figure 11.1. The store-buffer litmus test: thread A runs x = 1; r1 = y, thread B runs y = 1; r2 = x, a million times each. Under sequential consistency at least one read sees 1; with weaker orderings, the stores still in each core’s store buffer let both read 0, rarely but really. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2, no isolated cores. Data: bench_lockfree.py.
اقرأ في الفصل →