Skip to main content

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.

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.

Back to top