mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2026-07-21 17:57:24 -05:00
Run quartodoc build against the refactored package (engine/ extracted from core/, infra->infrastructure): regenerate the API reference so every stub points at the new paths. Adds engine.*/infrastructure.* stubs, removes the 41 stale core.solver.* / core.engine.* / core.scenarios.* / core.config.* / core.evaluation.* / infra*.qmd orphans, and refreshes the package pages (core now primitives-only) + index. Verified: all 47 documented symbols resolve in the new package; every index link resolves; zero stale mlsysim.core.<engine-mod> / mlsysim.infra references anywhere in docs/. (objects.json inventory is gitignored -- regenerated at build.)
54 lines
2.2 KiB
Plaintext
54 lines
2.2 KiB
Plaintext
# engine.solver.OrchestrationModel { #mlsysim.engine.solver.OrchestrationModel }
|
|
|
|
```python
|
|
engine.solver.OrchestrationModel()
|
|
```
|
|
|
|
Analyzes Cluster Orchestration and Queueing (Little's Law).
|
|
|
|
**Caveat:** This model uses a pedagogical M/D/1 queue (single server, deterministic
|
|
service) to establish macroscopic wait-time bounds for dedicated, monolithic cluster workloads.
|
|
For detailed multi-tenant job packing and preemption, a discrete-event M/G/c
|
|
scheduler simulation would be required.
|
|
|
|
This model simulates the 'Wait Wall' in shared research clusters,
|
|
calculating job completion times and researcher wait times based on
|
|
cluster utilization and arrival rates.
|
|
|
|
Literature Source:
|
|
1. Little (1961), "A Proof for the Queuing Formula: L = λW."
|
|
2. Barroso et al. (2018), "The Datacenter as a Computer" (Cluster Mgmt).
|
|
3. Jeon et al. (2019), "Analysis of Large-Scale Multi-Tenant GPU Clusters."
|
|
|
|
## Methods
|
|
|
|
| Name | Description |
|
|
| --- | --- |
|
|
| [solve](#mlsysim.engine.solver.OrchestrationModel.solve) | Solves for cluster wait times and utilization. |
|
|
|
|
### solve { #mlsysim.engine.solver.OrchestrationModel.solve }
|
|
|
|
```python
|
|
engine.solver.OrchestrationModel.solve(
|
|
fleet,
|
|
arrival_rate_jobs_per_day,
|
|
avg_job_duration_days,
|
|
)
|
|
```
|
|
|
|
Solves for cluster wait times and utilization.
|
|
|
|
#### Parameters {.doc-section .doc-section-parameters}
|
|
|
|
| Name | Type | Description | Default |
|
|
|---------------------------|--------|------------------------------------------------------------------|------------|
|
|
| fleet | Fleet | The hardware cluster configuration. | _required_ |
|
|
| arrival_rate_jobs_per_day | float | λ: Rate at which new training jobs are submitted. | _required_ |
|
|
| avg_job_duration_days | float | The average time a job takes to run if it has the whole cluster. | _required_ |
|
|
|
|
#### Returns {.doc-section .doc-section-returns}
|
|
|
|
| Name | Type | Description |
|
|
|--------|------------------|----------------------------------------------------|
|
|
| | Dict\[str, Any\] | Wait time, system length, and utilization metrics. |
|