localuf.sim.runtime¶
Module for emulating runtime for Macar, Actis, Snowflake.
Available functions:
batch
frugal
Functions
|
Make runtime data of Local UF decoder under batch decoding scheme. |
|
Make runtime data of Macar under forward decoding scheme. |
|
Make runtime data Snowflake. |
- localuf.sim.runtime.batch(ds, noise_levels, n, noise, decoder_class=<class 'localuf.decoders.luf.Macar'>, validate_only=True, **kwargs_for_Surface)[source]¶
Make runtime data of Local UF decoder under batch decoding scheme.
- Parameters:
ds (Iterable[int]) – an iterable of surface code distances.
noise_levels (Iterable[float]) – an iterable of noise levels.
n (int) – sample count.
noise (Literal['code capacity', 'phenomenological', 'circuit-level']) – noise model.
decoder_class (Type[Macar | Actis]) – the class of the decoder.
validate_only – whether to time only syndrome validation or the full decoding cycle.
kwargs_for_Surface – passed to
Surface.
- Return data:
A DataFrame where each column a (stage, distance, probability); row, a runtime sample. Stage is either
SVorBPwhich stand for ‘syndrome validation’ and ‘burning & peeling’.
- localuf.sim.runtime.forward(ds, noise_levels, n, noise, get_commit_height=None, get_buffer_height=None, **kwargs_for_Surface)[source]¶
Make runtime data of Macar under forward decoding scheme.
Use this function to analyse throughput. Latency can be analysed using
sim.runtime.batch, since the final decoding window of a memory experiment resembles that of a batch decoding window.- Parameters:
ds (Iterable[int]) – same as for
batch.noise_levels (Iterable[float]) – same as for
batch.n (int) – same as for
batch.noise (Literal['phenomenological', 'circuit-level']) – same as for
batch.kwargs_for_Surface – same as for
batch.get_commit_height (Callable[[int], int] | None) – a function with input
dthat outputs commit height e.g.lambda d: 2*(d//2). IfNone, commit height isd.get_buffer_height (Callable[[int], int] | None) – a function with input
dthat outputs buffer height. IfNone, buffer height isd.
- Returns:
Same as for
batchwherevalidate_only=True.
- localuf.sim.runtime.frugal(ds, noise_levels, n, code_class, noise, time_only='merging', get_commit_height=None, get_buffer_height=None, **kwargs_for_Snowflake)[source]¶
Make runtime data Snowflake.
- Parameters:
ds (Iterable[int]) – an iterable of surface code distances.
noise_levels (Iterable[float]) – an iterable of noise levels.
n (int) – sample count.
code_class (Type[Code]) – the class of the code.
noise (Literal['phenomenological', 'circuit-level']) – the noise model.
time_only (Literal['all', 'merging', 'unrooting']) – whether runtime includes a timestep for each drop, each grow, and each merging step (‘all’); each merging step only (‘merging’); or each unrooting step only (‘unrooting’).
get_commit_height (Callable[[int], int] | None) – a function with input
dthat outputs commit height. IfNone, commit height is1.get_buffer_height (Callable[[int], int] | None) – a function with input
dthat outputs buffer height. IfNone, buffer height is2*(d//2).kwargs_for_Snowflake – passed to Snowflake e.g.
mergerdecides whether Snowflake’s nodes flood before syncing (fast) or vice versa (slow) in a merging step.
Output:
dataa DataFrame where each column a (distance, probability); row, a runtime sample.