Open Digital Twin for Datacenters
OpenDT is a distributed system that creates a real-time digital twin of datacenter infrastructure. It replays historical workload data through the OpenDC simulator to predict power consumption, enabling What-If analysis without touching live hardware.
Prerequisites: Docker, Docker Compose, Make, Python 3.11+, uv
make setup # Install dependencies
make up # Start services
Access:
- Dashboard: http://localhost:3000 (Grafana)
- API: http://localhost:3001 (OpenAPI docs)
Real-time dashboard comparing actual vs. simulated power consumption
opendt/
├── config/ # Configuration files
│ ├── default.yaml # Default configuration
│ └── experiments/ # Experiment-specific configs
├── data/ # Run outputs (timestamped directories)
├── docs/ # Documentation
├── libs/common/ # Shared library (Pydantic models, utilities)
├── opendc/ # OpenDC simulator binary
├── reproducibility-capsule/ # Experiment reproduction scripts
├── services/ # Microservices
│ ├── api/ # REST API (FastAPI)
│ ├── calibrator/ # Topology calibration service
│ ├── dc-mock/ # Datacenter mock (data replay)
│ ├── grafana/ # Dashboard configuration
│ ├── kafka-init/ # Kafka topic initialization
│ └── simulator/ # OpenDC simulation engine
└── workload/ # Workload datasets
└── SURF/ # SURF datacenter workload
| Command | Description |
|---|---|
make up |
Start all services |
make up config=path/to/config.yaml |
Start with custom configuration |
make down |
Stop all services |
make setup |
Install development dependencies |
make test |
Run tests |
make logs-<service> |
View logs for a service |
make shell-<service> |
Open shell in a container |
Run make help for the complete list.
| Document | Description |
|---|---|
| Getting Started | Installation, configuration, and running experiments |
| Concepts | Core concepts, data models, and system behavior |
| Configuration | Configuration file reference |
| Service | Description |
|---|---|
| dc-mock | Replays historical workload and power data |
| simulator | Runs OpenDC simulations |
| calibrator | Calibrates topology parameters |
| api | REST API for data queries |
| Document | Description |
|---|---|
| Reproducibility Capsule | Reproduce paper experiments |