Skip to content

RWTH-EBC/HPC-digital-twin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HPC Digital Twin

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.

Deployment environments

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.

Configuration

All user-facing configuration lives in the root .env file. It is the only file you normally edit:

  • DEPLOYMENT_ENVitc or zih (selects models, data, and per-env InfluxDB database).
  • COMPOSE_PROFILES — must mirror DEPLOYMENT_ENV: set to itc for itc (enables the itc-only state-saver for modelica), leave empty for zih.
  • TIMESTEP — backend agent timestep in seconds.
  • STATE_SAVE_INTERVAL_HOURS — hours between FMU state saves (itc only).

Usage

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.

Dashboard

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors