جميع الكتب

مهني

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

ما معنى Boundary-crossing cost؟

Definition 9.3 Research, Data and Risk Platforms · الفصل 9 — Native Extensions

The boundary-crossing cost of a native call is the fixed work done on each call, independently of the size of its data: finding the function, checking and converting each argument from a Python object, releasing and reacquiring the interpreter lock, converting the result back and handling errors.

Two routes across the boundary. pybind11 generates a binding that checks each argument’s type and memory layout and can release the interpreter lock while C++ runs; ctypes loads any library with a C interface and passes what it is told, so the Python wrapper must check. Both hand the kernel a pointer into the same numpy buffer.
Figure 9.1. Two routes across the boundary. pybind11 generates a binding that checks each argument’s type and memory layout and can release the interpreter lock while C++ runs; ctypes loads any library with a C interface and passes what it is told, so the Python wrapper must check. Both hand the kernel a pointer into the same numpy buffer.
The cost of calling a one-step function once per element from a Python loop, a million times: as a Python function, as C++ through pybind11, and as Rust through ctypes. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2, one thread, machine otherwise idle. Data: bench_natext.py.
Figure 9.2. The cost of calling a one-step function once per element from a Python loop, a million times: as a Python function, as C++ through pybind11, and as Rust through ctypes. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2, one thread, machine otherwise idle. Data: bench_natext.py.
اقرأ في الفصل →