Welcome to QuOp_MPI’s documentation!

Python 3.11+ License GitHub Repository DOI

QuOp_MPI is a Python framework for parallel simulation of quantum variational algorithms using MPI.

Quick Start

Here’s a minimal example using QAOA to solve a MaxCut problem:

from mpi4py import MPI
import numpy as np
import networkx as nx
from quop_mpi.algorithm.combinatorial import qaoa
from quop_mpi.toolkit import I, Z

# Create a graph
G = nx.complete_graph(4)

# Define the MaxCut cost function
n_qubits = G.number_of_nodes()

def maxcut_qualities(system_size, local_i, local_i_offset):
    C = sum(0.5 * (I(n_qubits) - Z(i, n_qubits) @ Z(j, n_qubits))
            for i, j in G.edges())
    return -C.diagonal()[local_i_offset:local_i_offset + local_i].real

# Set up and run QAOA
alg = qaoa(system_size=2**n_qubits, MPI_COMM=MPI.COMM_WORLD)
alg.set_qualities(maxcut_qualities)
alg.execute()
alg.print_result()

Run with MPI:

mpiexec -n 4 python maxcut_example.py

For more examples, see the Examples page.

Getting Started

Indices