cuda-q-distributed-simulation
Table of Contents
Distributed Quantum Simulation
Distributed simulation spreads quantum state vectors across multiple GPUs or nodes, enabling simulation of even larger systems (30+ qubits).
#include "cudaq.h" #include <mpi.h> // Message Passing Interface struct LargeScaleCircuit { void operator()() __qpu__ { int n = 30; cudaq::qvector q(n); // Quantum operations for (int i = 0; i < n; i++) { h(q[i]); } for (int i = 0; i < n - 1; i += 2) { cx(q[i], q[i+1]); } mz(q); } }; int main(int argc, char** argv) { // Initialize MPI for distributed execution MPI_Init(&argc, &argv); // Set backend to use multiple GPUs cudaq::set_target("nvidia"); // Automatically distributes if MPI is initialized printf("Running distributed simulation on multiple GPUs...\n"); auto result = cudaq::sample<LargeScaleCircuit>(10000); printf("Distributed samples collected: %lu\n", result.size()); MPI_Finalize(); return 0; }
Scaling
Single GPU: ~25–27 qubits
Multi-GPU (distributed): 30+ qubits (limited by interconnect and memory)
Distributed simulation trades communication overhead for larger system size. Effective when circuit is deep (many gate operations amortize communication cost).
cuda-q-distributed-simulation.md · Last modified: by 127.0.0.1
