Alle boeken

Professioneel

Apps Over Coach Inloggen Begin met lezen

Quantitative Finance · Begrippenlijst

Wat is Zero-copy transfer?

Definition 9.6 Research, Data and Risk Platforms · Hoofdstuk 9 — Native Extensions

A zero-copy transfer of data across a boundary hands the receiver a reference to the sender’s memory (a pointer and a layout) instead of a copy, so that its cost does not depend on the size of the data; it requires the two sides to agree on the layout and on who may write and free the memory, and for how long.

Time per element of the whole-array average against the array’s length. For short arrays every route is dominated by its fixed cost per call (c_0/n); for long arrays the native loops settle at about 1.3 to 1.9 ns an element and numpy’s filter at 3 to 3.6, while pure Python stays at hundreds. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2, one thread, machine otherwise idle. Data: bench_natext.py.
Figure 9.3. Time per element of the whole-array average against the array’s length. For short arrays every route is dominated by its fixed cost per call (c0/nc_0/n); for long arrays the native loops settle at about 1.3 to 1.9 ns an element and numpy’s filter at 3 to 3.6, while pure Python stays at hundreds. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2, one thread, machine otherwise idle. Data: bench_natext.py.
Time per element of the as-of lookup of n sorted times in n others. numpy’s binary search costs more per element as the arrays grow; the native merge pass costs a constant few nanoseconds once the fixed cost is amortised. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2, one thread, machine otherwise idle. Data: bench_natext.py.
Figure 9.4. Time per element of the as-of lookup of nn sorted times in nn others. numpy’s binary search costs more per element as the arrays grow; the native merge pass costs a constant few nanoseconds once the fixed cost is amortised. Measured on a laptop (Intel Core Ultra 7 155H) under WSL2, one thread, machine otherwise idle. Data: bench_natext.py.
Lees in het hoofdstuk →