Program Ensembles

The divi.qprog.ensemble module coordinates parallel execution of multiple quantum programs with automatic circuit batching and progress tracking.

Core Architecture

ProgramEnsemble is the abstract base shared by every workflow class. BatchConfig and BatchMode configure how circuits are grouped for execution.

Classes

BatchConfig([mode, max_batch_size, ...])

Configuration for circuit batching in ProgramEnsemble.run().

BatchMode()

Controls whether circuit submissions are merged across programs.

ProgramEnsemble(backend)

This abstract class provides the basic scaffolding for higher-order computations that require more than one quantum program to achieve its goal.

Workflows

Concrete workflow classes build on ProgramEnsemble. VQEHyperparameterSweep orchestrates parameterized VQE runs over a grid of inputs; PartitioningProgramEnsemble decomposes a large graph problem into solvable sub-problems; TimeEvolutionTrajectory runs a sequence of time-evolution steps to build a trajectory.

Classes

MoleculeTransformer(base_molecule, ...[, ...])

A class for transforming molecular structures by modifying bond lengths.

PartitioningProgramEnsemble(problem, ...[, ...])

Generic orchestrator for partition-solve-aggregate quantum optimization.

TimeEvolutionTrajectory(hamiltonian, ...[, ...])

Run TimeEvolution across multiple time points in parallel.

VQEHyperparameterSweep(ansatze[, ...])

Allows user to carry out a grid search across different values for the ansatz and the bond length used in a VQE program.

Partitioning Configuration

GraphPartitioningConfig parameterizes how PartitioningProgramEnsemble splits a graph; it lives in divi.qprog.problems and is documented on the Problems reference page.