CloudEdgeCostScenario
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.
Serving a network of sites from the cloud (pay per image) or from a device at each site (buy up front).
Undiscounted; payback is the up-front device cost over the yearly running cost the devices save. image_size, uplink, and the two latencies are optional, for comparing response times.
Notes
Equation: annual cost = annual images * per-image price + fixed cost; payback = edge capital / annual savings.
Assumptions: Volumes and prices remain constant and costs are undiscounted. Optional upload comparison requires image size and uplink.
Excludes: Hardware replacement, discounting, fleet outages, and inference-quality differences.
References
Derivation: annual cost = annual images * per-image price + fixed cost; payback = edge capital / annual savings. The individual properties state units and intermediate accounting; this class introduces no fitted coefficient.
Examples
The named scenario supplies illustrative inputs; the output is calculated.
>>> from mlsysim import Scenarios
>>> case = Scenarios.RetinopathyScreeningCloudVersusEdge
>>> round(float(case.annual_images), 3)
9125000.0Attributes
| Name | Description |
|---|---|
| annual_images | Images processed in one modeled year, multiplying sites, daily cases, images per |
| annual_savings | Cloud minus edge operating cost rate in currency per year. |
| cases_per_site_day | |
| cloud_annual | Total annual cloud cost rate, variable inference plus fixed annual charges. |
| cloud_cost_per_image | |
| cloud_fixed_annual | |
| cloud_inference_annual | Cloud variable cost rate in currency per year for the annual image count. |
| cloud_latency | |
| cloud_upload_time | Ideal single-image uplink time from physics.quantities.transfer_time before |
| days_per_year | |
| edge_annual | Annual edge cost rate, adding maintenance and variable inference. |
| edge_capex | Up-front currency cost of one edge device per site. |
| edge_cost_per_image | |
| edge_device_cost | |
| edge_first_year | First-year edge currency spend, up-front capital plus one year of operating costs. |
| edge_inference_annual | Annual edge variable cost rate for the same image volume. |
| edge_latency | |
| edge_maintenance_annual | |
| image_size | |
| images_per_case | |
| payback | Undiscounted capital-recovery duration from |
| sites | |
| uplink |
sites
Type: int.
Declared default: required.
cases_per_site_day
Type: int.
Declared default: required.
images_per_case
Type: int.
Declared default: required.
days_per_year
Type: int.
Declared default: required.
cloud_cost_per_image
Type: Quantity.
Declared default: required.
cloud_fixed_annual
Type: Quantity.
Declared default: required.
edge_device_cost
Type: Quantity.
Declared default: required.
edge_maintenance_annual
Type: Quantity.
Declared default: required.
edge_cost_per_image
Type: Quantity.
Declared default: required.
image_size
Type: Optional[Quantity].
Declared default: None.
uplink
Type: Optional[Quantity].
Declared default: None.
cloud_latency
Type: Optional[Quantity].
Declared default: None.
edge_latency
Type: Optional[Quantity].
Declared default: None.
annual_images
engine.scenario_types.CloudEdgeCostScenario.annual_images
Images processed in one modeled year, multiplying sites, daily cases, images per case, and operating days.
Equation: return sites * cases_per_site_day * images_per_case * days_per_year.
cloud_inference_annual
engine.scenario_types.CloudEdgeCostScenario.cloud_inference_annual
Cloud variable cost rate in currency per year for the annual image count.
Equation: return annual_images * cloud_cost_per_image / Q_(1, 'year').
cloud_annual
engine.scenario_types.CloudEdgeCostScenario.cloud_annual
Total annual cloud cost rate, variable inference plus fixed annual charges.
Equation: return cloud_inference_annual + cloud_fixed_annual.
edge_capex
engine.scenario_types.CloudEdgeCostScenario.edge_capex
Up-front currency cost of one edge device per site.
Equation: return sites * edge_device_cost.
edge_inference_annual
engine.scenario_types.CloudEdgeCostScenario.edge_inference_annual
Annual edge variable cost rate for the same image volume.
Equation: return annual_images * edge_cost_per_image / Q_(1, 'year').
edge_annual
engine.scenario_types.CloudEdgeCostScenario.edge_annual
Annual edge cost rate, adding maintenance and variable inference.
Equation: return edge_maintenance_annual + edge_inference_annual.
edge_first_year
engine.scenario_types.CloudEdgeCostScenario.edge_first_year
First-year edge currency spend, up-front capital plus one year of operating costs.
Equation: return edge_capex + edge_annual * Q_(1, 'year').
annual_savings
engine.scenario_types.CloudEdgeCostScenario.annual_savings
Cloud minus edge operating cost rate in currency per year.
Equation: return cloud_annual - edge_annual.
payback
engine.scenario_types.CloudEdgeCostScenario.payback
Undiscounted capital-recovery duration from physics.economics.calc_payback_period.
Equation: return calc_payback_period(edge_capex, annual_savings).
cloud_upload_time
engine.scenario_types.CloudEdgeCostScenario.cloud_upload_time
Ideal single-image uplink time from physics.quantities.transfer_time before remote processing.
Equation: return transfer_time(image_size, uplink).