TransferScenario
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.
copies of one payload moved at once over each named link tier.
Optional (added 2026-10-20): egress_rate prices the bytes leaving a provider’s network, compute_price converts that fee into accelerator hours, and job_time is the computation the move would serve, so a transfer can be set against the job it feeds (data gravity).
Notes
Equation: Compose mlsysim.physics.transfer_time, mlsysim.solvers.TransferLadderModel.
Assumptions: Payload copies are identical; each named link is priced at its supplied constant bandwidth. Optional prices must be populated before cost properties are used.
Excludes: Protocol framing, connection setup, contention, and volume discounts are absent.
References
Derivation: this scenario binds its input fields to the referenced implementation contracts: mlsysim.physics.transfer_time, mlsysim.solvers.TransferLadderModel. The methods below identify any additional arithmetic.
Examples
>>> from mlsysim import Scenarios
>>> case = Scenarios.BufferTransfer10GB
>>> str(case.total_bytes)
'10 GB'Attributes
| Name | Description |
|---|---|
| compute_price | |
| copies | |
| egress_compute_hours | Compute time purchasable for the same egress fee. Equation: egress_cost / | | [egress_cost](#mlsysim.engine.scenario_types.TransferScenario.egress_cost) | Fee for moving every counted byte out of the provider. Equation:total_bytes * |
| egress_rate | |
| job_time | |
| links | |
| payload | |
| result | Evaluate this scenario through mlsysim.solvers.TransferLadderModel.solve. Equation: |
| total_bytes | Total payload counted across every copy. Equation: copies * payload. Units: the |
Methods
| Name | Description |
|---|---|
| transfer_time | Bandwidth-only duration for the named link. Equation: ``transfer_time(total_bytes, |
transfer_time
engine.scenario_types.TransferScenario.transfer_time(link)Bandwidth-only duration for the named link. Equation: transfer_time(total_bytes, links[link]) in mlsysim.physics.quantities. Units: time; startup and contention are excluded.
payload
Type: Quantity.
Declared default: required.
links
Type: Dict[str, Quantity].
Declared default: required.
copies
Type: int.
Declared default: 1.
egress_rate
Type: Optional[Quantity].
Declared default: None.
compute_price
Type: Optional[Quantity].
Declared default: None.
job_time
Type: Optional[Quantity].
Declared default: None.
total_bytes
engine.scenario_types.TransferScenario.total_bytes
Total payload counted across every copy. Equation: copies * payload. Units: the payload’s byte unit; protocol headers are excluded.
egress_cost
engine.scenario_types.TransferScenario.egress_cost
Fee for moving every counted byte out of the provider. Equation: total_bytes * egress_rate. Units: USD; the optional rate must be supplied.
egress_compute_hours
engine.scenario_types.TransferScenario.egress_compute_hours
Compute time purchasable for the same egress fee. Equation: egress_cost / compute_price. Units: accelerator-hours, requiring a positive hourly price.
result
engine.scenario_types.TransferScenario.result
Evaluate this scenario through mlsysim.solvers.TransferLadderModel.solve. Equation: pass the stated fields to that implementation; its contract defines the calculation and feasibility tests. Units: each returned field follows the referenced result schema; no independent equation is evaluated by this wrapper.