TrainingCampaignCostScenario
Economics scenarios · Implementation: mlsysim/engine/scenario_definitions/economics.py.
Construct this scenario with keyword inputs. The fields below show the types and defaults declared by this class.
runs_per_year training runs of run_low to run_high on an owned cluster (ownership) against renting the same GPUs only while each run lasts.
Notes
Equation: Ownership cost per run allocates the lifetime owned total over runs_per_year*years; rental prices each run duration.
Assumptions: The same cluster serves every run and idle ownership cost remains in the allocation.
Excludes: Concurrent sharing, rental availability, and run-duration distributions.
References
Derivation: Allocating total lifetime ownership cost evenly across scheduled runs includes the cost of idle capacity between runs. Renting instead multiplies GPU count, rental rate, and each run duration, so no idle rental time is charged in that comparison.
Examples
>>> from mlsysim import Scenarios
>>> s = Scenarios.BurstyTrainingOn1KCluster
>>> s.owned_cost_per_run.to("USD").magnitude > 0
TrueAttributes
| Name | Description |
|---|---|
| owned_cost_per_run | Lifetime ownership USD allocated equally across scheduled runs. |
| ownership | |
| run_high | |
| run_low | |
| runs | Total scheduled training-run count across the ownership horizon. |
| runs_per_year |
Methods
| Name | Description |
|---|---|
| rented_cost_per_run | USD rental cost of all GPUs for the supplied run duration. |
rented_cost_per_run
engine.scenario_types.TrainingCampaignCostScenario.rented_cost_per_run(length)USD rental cost of all GPUs for the supplied run duration.
Equation: o = ownership; (o.gpus * length * o.rent_rate).to('USD').
ownership
Type: OwnVsRentScenario.
Declared default: required.
runs_per_year
Type: int.
Declared default: required.
run_low
Type: Quantity.
Declared default: required.
run_high
Type: Quantity.
Declared default: required.
runs
engine.scenario_types.TrainingCampaignCostScenario.runs
Total scheduled training-run count across the ownership horizon.
Equation: runs_per_year * ownership.years.
owned_cost_per_run
engine.scenario_types.TrainingCampaignCostScenario.owned_cost_per_run
Lifetime ownership USD allocated equally across scheduled runs.
Equation: (ownership.owned_total / runs).to('USD').