SDK Simulator User Guide#

The DPS SDK is a Kubernetes-based development environment for testing power management solutions without physical hardware. It ships with four deployment profiles so you can choose a starting point for your goals.

Deployment Profiles#

  • Default - Blank DPS environment with no topology or simulators running. Recommended starting point for hands-on dpsctl exercises and API exploration.

  • Hardware Emulation - 144 emulated DGX GB300 nodes across 8 racks with pseudorandom hardware responses. Best for general API development, integration validation, and automated playbooks.

  • Workload-Aware - Same 144-node GB300 topology, but the BMC simulator calls a pluggable workload model over gRPC to return realistic GPU power traces. Best for power-aware analysis and workload optimization studies. Refer to Workload-Aware Simulation.

  • Pilot - 72 simulated GB300 nodes across four racks for rehearsing the MaxLPS power pilot. Replay a power trace on three racks for the baseline and four racks under MaxLPS, then compare simulated GPU power in Grafana. Follow Rehearse the MaxLPS Power Pilot With the SDK Simulator.

What’s Included#

Emulated Infrastructure (Hardware Emulation and Workload-Aware)#

  • 144 DGX GB300 Compute Nodes - Organized across 8 racks (18 nodes per rack)

  • Complete Power Distribution Hierarchy - Utility, Switchboard, Floor PDUs, Rack PSUs, Compute Systems

  • BMC Simulator - Provides Redfish API endpoints for all emulated nodes

For this general eight-rack topology, refer to SDK Simulator Topology. The Pilot profile uses a separate four-rack topology, described in Rehearse the MaxLPS Power Pilot With the SDK Simulator. It demonstrates configuration and control behavior with simulated hardware; inference performance and physical power compliance require real systems.

Policy Bundles (all profiles)#

The DPS server bootstraps the MaxP, MaxQ, and MaxLPS policy bundles regardless of which deployment profile you run, including Default. The SDK also includes sim/policy-bundles/sdk-site-balanced.yaml, a tutorial file that you load as the sdk-site-balanced bundle rather than a fourth server preset. It is distinct from the guide’s downloadable site-balanced example: the files and stored names differ, although their current policy payloads are identical.

The Simulator Playbooks guide covers loading and inspecting bundles as part of the Default-profile walkthrough.

Monitoring and Visualization#

  • Grafana Dashboards - Real-time metrics for datacenter power, resource groups, and system operations

  • Prometheus - Time-series metrics collection and alerting

  • Pyroscope - Continuous profiling for performance analysis

  • Web UI - Interactive interface for managing DPS

Automated Simulation Playbooks#

  • Resource Group Simulation - Automated workload lifecycle testing with configurable parameters

  • Grid Simulation - Domain-level power management and grid integration testing

  • Load Shedding Simulation - Power reduction events and recovery scenarios

  • Combined Simulations - Run multiple scenarios simultaneously for thorough testing

Use Cases#

The simulator is ideal for:

  • Learning DPS - Explore concepts, APIs, and workflows in a safe environment

  • SDK Development - Build and test custom integrations without hardware dependencies

  • Partner Integration - Develop grid or optimization integrations

  • Quick Start - Jump-start your custom datacenter deployment

Quick Start#

System Requirements:

  • Linux (Ubuntu/Debian) or macOS

  • Minimum 8 GB RAM, 20 GB free disk space

  • Internet connection for dependencies

Setup Instructions:

  1. Download and unarchive the DPS SDK files from the NVIDIA NVOnline Portal.

  2. Install SDK dependencies. From the SDK directory, run:

    cd dps-sdk
    task setup
    

    This installs docker, kubectl, k3d, helm, helm-git, uv, and dpsctl.

  3. Deploy the Default profile. This is the recommended starting point - a blank DPS environment with no topology loaded:

    task deploy
    
  4. Configure your shell for dpsctl. Paste these exports once to avoid repeating connection flags on every command:

    export DPSCTL_HOST=api.dps.sdk
    export DPSCTL_PORT=80
    export DPSCTL_INSECURE_TLS_SKIP_VERIFY=true
    
  5. Continue with the Default-profile playbook. The Simulator Playbooks guide walks you through importing the topology, creating resource groups, and setting grid load targets with dpsctl.

Other Deployment Paths#

  • Hardware Emulation (automated playbooks):

    task sdk
    task sim
    

    task sdk creates the k3d cluster and deploys DPS; task sim imports the topology and runs the combined resource-groups plus grid simulation.

  • Workload-Aware (realistic power traces): Refer to Workload-Aware Simulation for the full deployment flow.

  • Pilot (MaxLPS power-pilot rehearsal): After task setup, deploy the dedicated profile:

    task deploy:pilot
    

    Continue with Rehearse the MaxLPS Power Pilot With the SDK Simulator to import the topology, prepare the unmanaged baseline, and run the managed comparison.

Access Services#

After deployment, the SDK exposes these endpoints:

Service

URL

Default Auth

DPS API (gRPC)

api.dps.sdk

dps/dps

DPS Web UI

http://ui.dps.sdk

dps/dps

Grafana

http://grafana.dps.sdk

admin/dps

Prometheus

http://prometheus.dps.sdk

-

Alertmanager

http://alertmanager.dps.sdk

-

Pyroscope

http://pyroscope.dps.sdk

-

Next Steps#