Skip to main content

CodecEpochScenario

Data scenarios · Implementation: mlsysim/engine/scenario_definitions/data.py.

Construct this scenario with keyword inputs. The fields below show the types and defaults declared by this class.

epoch_bytes decompressed on the host each epoch for epochs epochs, at each codec’s decode_rates.

Notes

Equation: decode duration = epoch bytes / codec rate; run saving = epochs * per-epoch saving.

Assumptions: Each epoch decodes the full corpus at a fixed supplied codec rate.

Excludes: Storage overlap, compression-ratio differences, and codec warm-up or parallel scaling.

References

Derivation: decode duration = epoch bytes / codec rate; run saving = epochs * per-epoch saving. The individual properties state units and intermediate accounting; this class introduces no fitted coefficient.

Examples

The named scenario supplies illustrative inputs; the output is calculated.

>>> from mlsysim import Scenarios
>>> case = Scenarios.GzipVersusSnappyEpochs
>>> round(float(case.decode_time('gzip').to('min').magnitude), 3)
13.889

Attributes

Name Description
decode_rates
epoch_bytes
epochs

Methods

Name Description
decode_time CPU decompression time for one epoch in minutes at the selected codec’s fixed
rate_ratio Fast codec throughput divided by slow codec throughput, a dimensionless ratio.
run_time_saved Total decompression hours saved across all epochs.
time_saved Per-epoch minutes saved by the fast codec relative to the slow one.

decode_time

engine.scenario_types.CodecEpochScenario.decode_time(codec)

CPU decompression time for one epoch in minutes at the selected codec’s fixed rate.

Equation: return (epoch_bytes / decode_rates[codec]).to('minute').

rate_ratio

engine.scenario_types.CodecEpochScenario.rate_ratio(fast, slow)

Fast codec throughput divided by slow codec throughput, a dimensionless ratio.

Equation: return (decode_rates[fast] / decode_rates[slow]).to('').magnitude.

run_time_saved

engine.scenario_types.CodecEpochScenario.run_time_saved(slow, fast)

Total decompression hours saved across all epochs.

Equation: return (epochs * time_saved(slow, fast)).to('hour').

time_saved

engine.scenario_types.CodecEpochScenario.time_saved(slow, fast)

Per-epoch minutes saved by the fast codec relative to the slow one.

Equation: return decode_time(slow) - decode_time(fast).

epoch_bytes

Type: Quantity.

Declared default: required.

epochs

Type: int.

Declared default: required.

decode_rates

Type: Dict[str, Quantity].

Declared default: required.

Back to top