Skip to main content

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.

Back to top