CompressionPaybackScenario
Communication scenarios · Implementation: mlsysim/engine/scenario_definitions/communication.py.
Construct this scenario with keyword inputs. The fields below show the types and defaults declared by this class.
One synchronization compressed by compression_ratio at a codec cost of codec_time.
Compression pays when the codec costs less than the transfer it removes, codec_time < T_comm (1 - 1/r); fast_communication_time is the same reduction on a fast link, where it does not.
Notes
Equation: Use the dimensional products, ratios, or selection rules documented on the calculated properties below.
Assumptions: Compression divides communicated bytes by a positive ratio, leaves bandwidth fixed, and incurs a sequential codec cost.
Excludes: Gradient-quality effects and codec/communication overlap are absent.
References
Derivation: the calculated properties below state their defining arithmetic and units. They are scenario accounting or input-selection rules, not independently measured relationships.
Examples
>>> from mlsysim import Scenarios
>>> case = Scenarios.CompressionPayback8x
>>> str(case.compressed_time)
'5.0 ms'Attributes
| Name | Description |
|---|---|
| codec_time | |
| communication_time | |
| compressed_time | Communication duration after ideal payload compression. Equation: communication_time / | | [compression_ratio](#mlsysim.engine.scenario_types.CompressionPaybackScenario.compression_ratio) | | | [fast_communication_time](#mlsysim.engine.scenario_types.CompressionPaybackScenario.fast_communication_time) | | | [saved_time](#mlsysim.engine.scenario_types.CompressionPaybackScenario.saved_time) | Communication-only duration removed by compression. Equation:communication_time - |
| speedup | Uncompressed communication duration relative to codec-plus-transfer time. Equation: |
| total_time | Sequential codec plus compressed communication duration. Equation: ``compressed_time + |
Methods
| Name | Description |
|---|---|
| pays | Whether codec overhead is less than transfer time saved for a proposed communication |
pays
engine.scenario_types.CompressionPaybackScenario.pays(communication_time)Whether codec overhead is less than transfer time saved for a proposed communication duration. Equation: codec_time < communication_time * (1 - 1 / compression_ratio). Units: boolean; equality is not counted as a gain.
communication_time
Type: Quantity.
Declared default: required.
compression_ratio
Type: float.
Declared default: required.
codec_time
Type: Quantity.
Declared default: required.
fast_communication_time
Type: Quantity.
Declared default: required.
compressed_time
engine.scenario_types.CompressionPaybackScenario.compressed_time
Communication duration after ideal payload compression. Equation: communication_time / compression_ratio. Units: time; compression ratio divides communicated bytes and leaves bandwidth fixed.
total_time
engine.scenario_types.CompressionPaybackScenario.total_time
Sequential codec plus compressed communication duration. Equation: compressed_time + codec_time. Units: time; codec/communication overlap is excluded.
speedup
engine.scenario_types.CompressionPaybackScenario.speedup
Uncompressed communication duration relative to codec-plus-transfer time. Equation: communication_time / total_time. Units: dimensionless; compute outside the collective is excluded.
saved_time
engine.scenario_types.CompressionPaybackScenario.saved_time
Communication-only duration removed by compression. Equation: communication_time - compressed_time. Units: time; codec cost has not yet been deducted.