A digital twin for high-performance computing (HPC) centers. It simulates the cooling infrastructure and IT load of a data center and lets you run scenario analyses and optimizations from a web dashboard.
The system consists of three components, orchestrated together via Docker Compose:
- iot-platform — FIWARE NGSI-LD stack (Orion-LD, IoT Agent, MongoDB, TimescaleDB, InfluxDB, Mosquitto). Stores entities and time-series data.
- backend — Python/Julia digital-twin simulation. A data publishing agent replays real data into the platform; a coordinator (FastAPI) runs predictions and optimizations.
- frontend — Next.js dashboard for visualization, scenario analysis, and optimization.
The twin ships with data from two exemplary data centers, selected via DEPLOYMENT_ENV:
- itc — Data center of the RWTH Aachen. Infrastructure modeled with a Modelica model (FMU).
- zih — Data center of the TU Dresden. Infrastructure modeled with a Julia model.
In both cases the HPC/IT load is represented by a machine-learning model, and real measured data from the respective data center is played back into the platform by the data publishing agent, simulating a "live" operation.
The julia models need to compile at first use. This takes a rather long time once.
All user-facing configuration lives in the root .env file. It is the only
file you normally edit:
DEPLOYMENT_ENV—itcorzih(selects models, data, and per-env InfluxDB database).COMPOSE_PROFILES— must mirrorDEPLOYMENT_ENV: set toitcforitc(enables the itc-only state-saver for modelica), leave empty forzih.TIMESTEP— backend agent timestep in seconds.STATE_SAVE_INTERVAL_HOURS— hours between FMU state saves (itc only).
A Makefile provides shortcuts around Docker Compose:
make up # build and start all services
make start # start without rebuilding
make down # stop and remove containers (data kept)
make clean # stop and remove containers AND data volumes
make logs-backend # tail backend logs
make logs-iot # tail iot-platform logs
make logs-frontend # tail frontend logs
make help # list all targets
Services start in the correct order automatically: iot-platform, then the backend (entities are provisioned before the agents start), then the frontend.
Once the stack is running, open the dashboard at:
http://localhost:3000
From there you can inspect measured and predicted trajectories, run scenario
analyses, and start optimizations. The backend coordinator API is available at
http://localhost:8000.