π Qdislib Example NotebookΒΆ
This document explains each section of the Qdislib Jupyter notebook, showcasing how to apply gate and wire cutting techniques to large quantum circuits using Qdislib, Qibo, Qiskit, and PyCOMPSs.
Import the PyCOMPSs library
[1]:
import pycompss.interactive as ipycompss
π§ 1. Environment Setup with PyCOMPSsΒΆ
Goal: Start the PyCOMPSs runtime for distributed execution.
What Happens:
Loads required COMPSs XML config files: project.xml and resources.xml.
Enables optional flags like graph, monitor, debug, and trace.
Why: PyCOMPSs enables parallel task execution β crucial for evaluating subcircuits in distributed environments.
[2]:
import os
if "BINDER_SERVICE_HOST" in os.environ:
ipycompss.start(
graph=True,
project_xml="../xml/project.xml",
resources_xml="../xml/resources.xml",
)
else:
ipycompss.start(graph=True, monitor=1000) # debug=True, trace=True
********************************************************
**************** PyCOMPSs Interactive ******************
********************************************************
* .-~~-.--. ______ ______ *
* : ) |____ \ |____ \ *
* .~ ~ -.\ /.- ~~ . __) | __) | *
* > `. .' < |__ | |__ | *
* ( .- -. ) ____) | _ ____) | *
* `- -.-~ `- -' ~-.- -' |______/ |_| |______/ *
* ( : ) _ _ .-: *
* ~--. : .--~ .-~ .-~ } *
* ~-.-^-.-~ \_ .~ .-~ .~ *
* \ \ ' \ '_ _ -~ *
* \`.\`. // *
* . - ~ ~-.__\`.\`-.// *
* .-~ . - ~ }~ ~ ~-.~-. *
* .' .-~ .-~ :/~-.~-./: *
* /_~_ _ . - ~ ~-.~-._ *
* ~-.< *
********************************************************
* - Starting COMPSs runtime... *
* - Log path : /home/mtejedor/.COMPSs/Interactive_237/
* - PyCOMPSs Runtime started... Have fun! *
********************************************************
Import task and compss_wait_on module before annotating functions or methods
[3]:
from pycompss.api.task import task
from pycompss.api.api import compss_wait_on
π§ 2. Importing Required ModulesΒΆ
Modules:
qibo.models, qibo.gates, qibo.hamiltonians: for defining and manipulating quantum circuits.
qd: likely refers to Qdislib, which contains the circuit cutting functions.
Setup:
Sets the backend for Qibo (βnumpyβ) to run locally on CPU.
[4]:
import numpy as np
import qibo
from qibo import models, gates, hamiltonians, callbacks
from qibo.models import Circuit
from qibo.symbols import X, Y, Z, I
qibo.__version__
qibo.set_backend("numpy")
[Qibo 0.2.8|INFO|2025-04-30 11:41:10]: Using numpy backend on /CPU:0
Import Qdislib where the circuit cutting is implemented
[5]:
import Qdislib.api as qd
βοΈ 3. Define the Main CircuitΒΆ
Function entire_circuit(): builds a 10-qubit circuit with:
Single-qubit gates: H, RX, RY, RZ.
Two-qubit gates: CZ.
Circuit Objective: Simulates a non-trivial entangled circuit useful for demonstrating cutting algorithms.
[6]:
def entire_circuit():
nqubits = 10
circuit = models.Circuit(nqubits)
circuit.add(gates.H(0))
circuit.add(gates.CZ(0, 1))
circuit.add(gates.CZ(2, 6))
circuit.add(gates.RZ(8, np.pi / 3))
circuit.add(gates.RY(3, np.pi / 5))
circuit.add(gates.RX(4, np.pi / 5))
circuit.add(gates.CZ(0, 2))
circuit.add(gates.CZ(5, 9))
circuit.add(gates.CZ(3, 5))
circuit.add(gates.CZ(3, 4))
circuit.add(gates.CZ(6, 7))
circuit.add(gates.RY(7, np.pi / 5))
circuit.add(gates.RZ(1, np.pi / 5))
circuit.add(gates.CZ(1, 5))
circuit.add(gates.RX(6, np.pi / 5))
circuit.add(gates.CZ(7, 8))
circuit.add(gates.H(9))
return circuit
circuit = entire_circuit()
print(circuit.draw())
q0: βHβoββββββoβββββββββββββββββββββ
q1: βββZββββββ|βββββββββRZβoββββββββ
q2: βββββoββββZββββββββββββ|ββββββββ
q3: βββββ|βRYβββββoβoββββββ|ββββββββ
q4: βββββ|βRXβββββ|βZββββββ|ββββββββ
q5: βββββ|ββββββoβZββββββββZββββββββ
q6: βββββZββββββ|βββββoββββββRXβββββ
q7: ββββββββββββ|βββββZβRYββββββoβββ
q8: βββββββRZβββ|βββββββββββββββZβββ
q9: ββββββββββββZβββββββββββββββββHβ
βοΈ 4. Gate Cutting ExampleΒΆ
qd.find_cut(circuit): Automatically identifies gates suitable for cutting.
Example result: [βCZ_2β]
qd.gate_cutting(circuit, cut):
Applies the gate cutting algorithm.
Cuts the circuit at the specified gate.
Evaluates subcircuits and reconstructs the expectation value.
Output: A reconstructed value (e.g., 0.0084β¦).
[7]:
circuit = entire_circuit()
cut = qd.find_cut(circuit)
print(cut)
['CZ_2']
[8]:
reconstruction = qd.gate_cutting(circuit, cut)
print(reconstruction)
-0.018377304077148438
π 5. Wire Cutting ExampleΒΆ
find_cut(β¦, gate_cut=False):
Finds cuts (pairs of gates) between which a wire cut is possible.
Force the algorithm to only finde wire cuts (setting gate_cut=False)
Example: [(βCZ_2β, βCZ_7β)]
qd.wire_cutting(β¦):
Applies the wire cutting method across the selected gates.
Calculates the reconstructed expectation value.
[9]:
circuit = entire_circuit()
cut = qd.find_cut(circuit, gate_cut=False)
print(cut)
[('CZ_2', 'CZ_7')]
[10]:
reconstruction = qd.wire_cutting(circuit, cut)
print(reconstruction)
-0.005832259999999987
π 6. Exact Expected ValueΒΆ
qd.analytical_solution(circuit, βZβ*nqubits):
Computes the expected value using a symbolic statevector.
Used as a ground-truth comparison.
Observable can be modified
Observation: Returns exact expected value β allows evaluation of gate cutting accuracy.
[11]:
circuit = entire_circuit()
analytic = qd.analytical_solution(circuit,"Z"*circuit.nqubits)
print(analytic)
0.0
π§© 7. Gate Cutting with SubcircuitsΒΆ
qd.gate_cutting_subcircuits(β¦):
Performs gate cutting like before but also returns the subcircuits used for reconstruction.
compss_wait_on(subcircuits): Synchronizes and retrieves the results (used with PyCOMPSs).
Printed output: Visual representation of generated subcircuits using Qiskitβs circuit print.
[12]:
circuit = entire_circuit()
cut = qd.find_cut(circuit)
print(cut)
subcircuits = qd.gate_cutting_subcircuits(circuit,cut)
subcircuits = compss_wait_on(subcircuits)
for subcirc in subcircuits:
print(subcirc)
['CZ_2']
βββββ ββββββββββββ
q_0: ββββ€ H βββββ€ Rz(-Ο/2) βββββββ ββββββββ
βββββ ββββββββββββ β
q_1: ββββββ βββββββββββββββββββββββ ββββββββ
β βββββββββββ
q_2: ββββββ βββββββββββ βββββββ€ Rx(Ο/5) ββββ
β βββββββββββ€
q_3: βββββββββββββββββ βββββββ€ Ry(Ο/5) βββ β
βββββββββββ βββββββββββ β
q_4: β€ Rz(Ο/3) ββββββββββββββββββββββββββ β
βββββββββββ
c: 5/βββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββ
q_0: β€ Rz(-Ο/2) ββ€ Rz(Ο/5) ββββββ β
βββββββββββ¬ββββββββββββ β
q_1: β€ Ry(Ο/5) ββββββββ βββββββ βββΌβ
βββββββββββ€ β β β
q_2: β€ Rx(Ο/5) ββββββββΌβββββββ βββΌβ
βββββββββββ β β
q_3: ββββββ ββββββββββββ ββββββββββ β
β βββββ
q_4: ββββββ ββββββββββ€ H ββββββββββ
βββββ
c: 5/βββββββββββββββββββββββββββββ
βββββ βββββββββββββββββ
q_0: ββββ€ H βββββ€ Z ββ€ Rz(-Ο/2) βββ β
βββββ βββββββββββββββββ β
q_1: ββββββ ββββββββββββββββββββββββ β
β βββββββββββ
q_2: ββββββ ββββββββ βββ€ Rx(Ο/5) βββββ
β βββββββββββ€
q_3: ββββββββββββββ βββ€ Ry(Ο/5) ββββ β
βββββββββββ βββββββββββ β
q_4: β€ Rz(Ο/3) ββββββββββββββββββββ β
βββββββββββ
c: 5/βββββββββββββββββββββββββββββββ
βββββ βββββββββββββββββββββββ
q_0: ββββ€ Z βββββ€ Rz(-Ο/2) ββ€ Rz(Ο/5) βββ β
ββββ΄ββββ΄ββββββββββββββββββββββββββ β
q_1: β€ Ry(Ο/5) βββββββ ββββββββββββ βββββββΌβ
βββββββββββ€ β β β
q_2: β€ Rx(Ο/5) βββββββΌββββββββββββ βββββββΌβ
βββββββββββ β β
q_3: ββββββ βββββββββββ βββββββββββββββββββ β
β βββββ
q_4: ββββββ βββββββββ€ H βββββββββββββββββββ
βββββ
c: 5/βββββββββββββββββββββββββββββββββββββ
βββββ βββ βββββ ββββββββββββ
q_0: ββββ€ H βββββ€Mββββββββ€ X βββββ€ Rz(-Ο/2) βββ β
βββββ ββ₯β βββ₯ββ ββββββββββββ β
q_1: ββββββ βββββββ«ββββββββββ«βββββββββββββββββββ β
β β β βββββββββββ
q_2: ββββββ βββββββ«βββ βββββββ«ββββββ€ Rx(Ο/5) βββββ
β β β βββββββββββ€
q_3: βββββββββββββ«βββ βββββββ«ββββββ€ Ry(Ο/5) ββββ β
βββββββββββ β β βββββββββββ β
q_4: β€ Rz(Ο/3) βββ«ββββββββββ«βββββββββββββββββββ β
βββββββββββ β ββββββ¨βββββ
c: 5/βββββββββββββ©βββββ‘ c_0=0x0 ββββββββββββββββ
0 βββββββββββ
βββββββββββββββββββββ
q_0: ββ€ Rz(-Ο) ββ€ Rz(Ο/5) ββββββ β
ββ΄βββββββββ€βββββββββββ β
q_1: β€ Ry(Ο/5) βββββββ βββββββ βββΌβ
βββββββββββ€ β β β
q_2: β€ Rx(Ο/5) βββββββΌβββββββ βββΌβ
βββββββββββ β β
q_3: ββββββ βββββββββββ ββββββββββ β
β βββββ
q_4: ββββββ βββββββββ€ H ββββββββββ
βββββ
c: 5/ββββββββββββββββββββββββββββ
βββββ βββ βββββ ββββββββββββ
q_0: ββββ€ H βββββ€Mββββββββ€ X βββββ€ Rz(-Ο/2) βββ β
βββββ ββ₯β βββ₯ββ ββββββββββββ β
q_1: ββββββ βββββββ«ββββββββββ«βββββββββββββββββββ β
β β β βββββββββββ
q_2: ββββββ βββββββ«βββ βββββββ«ββββββ€ Rx(Ο/5) βββββ
β β β βββββββββββ€
q_3: βββββββββββββ«βββ βββββββ«ββββββ€ Ry(Ο/5) ββββ β
βββββββββββ β β βββββββββββ β
q_4: β€ Rz(Ο/3) βββ«ββββββββββ«βββββββββββββββββββ β
βββββββββββ β ββββββ¨βββββ
c: 5/βββββββββββββ©βββββ‘ c_0=0x0 ββββββββββββββββ
0 βββββββββββ
βββββββββββ
q_0: β€ Rz(Ο/5) βββββββββββ β
βββββββββββ€ β
q_1: β€ Ry(Ο/5) ββββ ββββ βββΌβ
βββββββββββ€ β β β
q_2: β€ Rx(Ο/5) ββββΌββββ βββΌβ
βββββββββββ β β
q_3: ββββββ ββββββββ βββββββ β
β βββββ
q_4: ββββββ ββββββ€ H βββββββ
βββββ
c: 5/ββββββββββββββββββββββ
βββββ ββββββββββ
q_0: ββββ€ H βββββ€ Rz(-Ο) βββββββ ββββββββ
βββββ ββββββββββ β
q_1: ββββββ βββββββββββββββββββββ ββββββββ
β βββββββββββ
q_2: ββββββ ββββββββββ ββββββ€ Rx(Ο/5) ββββ
β βββββββββββ€
q_3: ββββββββββββββββ ββββββ€ Ry(Ο/5) βββ β
βββββββββββ βββββββββββ β
q_4: β€ Rz(Ο/3) ββββββββββββββββββββββββ β
βββββββββββ
c: 5/βββββββββββββββββββββββββββββββββββ
βββ βββββ βββββββββββββββββββββββ
q_0: ββββββββββββ€Mβββββ€ X βββββ€ Rz(-Ο/2) ββ€ Rz(Ο/5) βββ β
βββββββββββββ₯β βββ₯ββ βββββββββββββββββββββββ β
q_1: β€ Ry(Ο/5) βββ«βββββββ«βββββββββββ ββββββββββββ βββββββΌβ
βββββββββββ€ β β β β β
q_2: β€ Rx(Ο/5) βββ«βββββββ«βββββββββββΌββββββββββββ βββββββΌβ
βββββββββββ β β β β
q_3: ββββββ βββββββ«βββββββ«βββββββββββ βββββββββββββββββββ β
β β β βββββ
q_4: ββββββ βββββββ«βββββββ«βββββββββ€ H βββββββββββββββββββ
β ββββββ¨βββββ βββββ
c: 5/βββββββββββββ©ββ‘ c_0=0x0 βββββββββββββββββββββββββββ
0 βββββββββββ
βββββ
q_0: ββββ€ H ββββββ βββββββββββββββ
βββββ β
q_1: ββββββ βββββββ βββββββββββββββ
β βββββββββββ
q_2: ββββββ βββββββ ββ€ Rx(Ο/5) ββββ
β βββββββββββ€
q_3: βββββββββββββ ββ€ Ry(Ο/5) βββ β
βββββββββββ βββββββββββ β
q_4: β€ Rz(Ο/3) βββββββββββββββββ β
βββββββββββ
c: 5/ββββββββββββββββββββββββββββ
βββ βββββ βββββββββββββββββββββββ
q_0: ββββββββββββ€Mβββββ€ X βββββ€ Rz(-Ο/2) ββ€ Rz(Ο/5) βββ β
βββββββββββββ₯β βββ₯ββ βββββββββββββββββββββββ β
q_1: β€ Ry(Ο/5) βββ«βββββββ«βββββββββββ ββββββββββββ βββββββΌβ
βββββββββββ€ β β β β β
q_2: β€ Rx(Ο/5) βββ«βββββββ«βββββββββββΌββββββββββββ βββββββΌβ
βββββββββββ β β β β
q_3: ββββββ βββββββ«βββββββ«βββββββββββ βββββββββββββββββββ β
β β β βββββ
q_4: ββββββ βββββββ«βββββββ«βββββββββ€ H βββββββββββββββββββ
β ββββββ¨βββββ βββββ
c: 5/βββββββββββββ©ββ‘ c_0=0x0 βββββββββββββββββββββββββββ
0 βββββββββββ
π§© 8. Wire Cutting with SubcircuitsΒΆ
Same as gate cutting, but uses wire cutting logic.
Subcircuits generated are more complex and may include measurements and resets.
Visuals: Many circuit renderings show various Qiskit circuits built from the wire cut portions.
[13]:
circuit = entire_circuit()
cut = qd.find_cut(circuit, gate_cut=False)
print(cut)
subcircuits = qd.wire_cutting_subcircuits(circuit,cut)
subcircuits = compss_wait_on(subcircuits)
for subcirc in subcircuits:
print(subcirc)
[('CZ_2', 'RZ_13')]
βββββ
q_0: ββββ€ H ββββββ βββββββ ββββββββ
βββββ β β
q_1: βββββββββββββ βββββββΌββββββββ
β
q_2: ββββββ ββββββββββββββ ββββββββ
β βββββββββββ
q_3: ββββββ βββββββ ββ€ Rx(Ο/5) ββββ
β βββββββββββ€
q_4: βββββββββββββ ββ€ Ry(Ο/5) βββ β
βββββββββββ βββββββββββ β
q_5: β€ Rz(Ο/3) βββββββββββββββββ β
βββββββββββ
c: 6/ββββββββββββββββββββββββββββ
βββββββββββ
q_0: β€ Ry(Ο/5) ββββ ββββ β
βββββββββββ€ β β
q_1: β€ Rx(Ο/5) ββββΌββββ β
βββββββββββ β
q_2: ββββββ ββββββββ ββββ β
β βββββ β
q_3: ββββββ ββββββ€ H βββΌβ
ββββββββββββββββ β
q_4: β€ Rz(Ο/5) ββββββββ β
βββββββββββ
c: 5/βββββββββββββββββββ
βββββ
q_0: ββββ€ H ββββββ βββββββ ββββββββ
βββββ β β
q_1: βββββββββββββ βββββββΌββββββββ
β
q_2: ββββββ ββββββββββββββ ββββββββ
β βββββββββββ
q_3: ββββββ βββββββ ββ€ Rx(Ο/5) ββββ
β βββββββββββ€
q_4: βββββββββββββ ββ€ Ry(Ο/5) βββ β
βββββββββββ βββββββββββ β
q_5: β€ Rz(Ο/3) βββββββββββββββββ β
βββββββββββ
c: 6/ββββββββββββββββββββββββββββ
βββββββββββ
q_0: β€ Ry(Ο/5) βββββββ βββββββ β
βββββββββββ€ β β
q_1: β€ Rx(Ο/5) βββββββΌβββββββ β
βββββββββββ β
q_2: ββββββ βββββββββββ βββββββ β
β βββββ β
q_3: ββββββ βββββββββ€ H ββββββΌβ
βββββ ββββ΄ββββ΄βββ β
q_4: ββββ€ X βββββ€ Rz(Ο/5) βββ β
βββββ βββββββββββ
c: 5/βββββββββββββββββββββββββ
βββββ
q_0: ββββ€ H ββββββ βββββββ ββββββββββ
βββββ β β βββββ
q_1: βββββββββββββ βββββββΌββββββ€ H β
β βββββ
q_2: ββββββ ββββββββββββββ ββββββββββ
β βββββββββββ
q_3: ββββββ βββββββ ββ€ Rx(Ο/5) ββββββ
β βββββββββββ€
q_4: βββββββββββββ ββ€ Ry(Ο/5) ββββ ββ
βββββββββββ βββββββββββ β
q_5: β€ Rz(Ο/3) ββββββββββββββββββ ββ
βββββββββββ
c: 6/ββββββββββββββββββββββββββββββ
βββββββββββ
q_0: β€ Ry(Ο/5) βββββββ βββββββ β
βββββββββββ€ β β
q_1: β€ Rx(Ο/5) βββββββΌβββββββ β
βββββββββββ β
q_2: ββββββ βββββββββββ βββββββ β
β βββββ β
q_3: ββββββ βββββββββ€ H ββββββΌβ
βββββ ββββ΄ββββ΄βββ β
q_4: ββββ€ H βββββ€ Rz(Ο/5) βββ β
βββββ βββββββββββ
c: 5/βββββββββββββββββββββββββ
βββββ
q_0: ββββ€ H ββββββ βββββββ ββββββββββ
βββββ β β βββββ
q_1: βββββββββββββ βββββββΌββββββ€ H β
β βββββ
q_2: ββββββ ββββββββββββββ ββββββββββ
β βββββββββββ
q_3: ββββββ βββββββ ββ€ Rx(Ο/5) ββββββ
β βββββββββββ€
q_4: βββββββββββββ ββ€ Ry(Ο/5) ββββ ββ
βββββββββββ βββββββββββ β
q_5: β€ Rz(Ο/3) ββββββββββββββββββ ββ
βββββββββββ
c: 6/ββββββββββββββββββββββββββββββ
βββββββββββ
q_0: β€ Ry(Ο/5) ββββ ββββββββ ββββββββ
βββββββββββ€ β β
q_1: β€ Rx(Ο/5) ββββΌββββββββ ββββββββ
βββββββββββ β
q_2: ββββββ ββββββββ βββββββββββββββ β
β βββββ β
q_3: ββββββ ββββββ€ H ββββββββββββββΌβ
βββββ βββββ€βββββββββββ β
q_4: ββββ€ X βββββ€ H ββ€ Rz(Ο/5) βββ β
βββββ ββββββββββββββββ
c: 5/ββββββββββββββββββββββββββββββ
βββββ
q_0: ββββ€ H ββββββ βββββββ βββββββββββββββββ
βββββ β β ββββββββββββ
q_1: βββββββββββββ βββββββΌββββββ€ Sdg ββ€ H β
β ββββββββββββ
q_2: ββββββ ββββββββββββββ βββββββββββββββββ
β βββββββββββ
q_3: ββββββ βββββββ ββ€ Rx(Ο/5) βββββββββββββ
β βββββββββββ€
q_4: βββββββββββββ ββ€ Ry(Ο/5) βββββ ββββββββ
βββββββββββ βββββββββββ β
q_5: β€ Rz(Ο/3) βββββββββββββββββββ ββββββββ
βββββββββββ
c: 6/βββββββββββββββββββββββββββββββββββββ
βββββββββββ
q_0: β€ Ry(Ο/5) ββββ ββββββββ ββββββββ
βββββββββββ€ β β
q_1: β€ Rx(Ο/5) ββββΌββββββββ ββββββββ
βββββββββββ β
q_2: ββββββ ββββββββ βββββββββββββββ β
β βββββ β
q_3: ββββββ ββββββ€ H ββββββββββββββΌβ
βββββ βββββ€βββββββββββ β
q_4: ββββ€ H βββββ€ S ββ€ Rz(Ο/5) βββ β
βββββ ββββββββββββββββ
c: 5/ββββββββββββββββββββββββββββββ
βββββ
q_0: ββββ€ H ββββββ βββββββ βββββββββββββββββ
βββββ β β ββββββββββββ
q_1: βββββββββββββ βββββββΌββββββ€ Sdg ββ€ H β
β ββββββββββββ
q_2: ββββββ ββββββββββββββ βββββββββββββββββ
β βββββββββββ
q_3: ββββββ βββββββ ββ€ Rx(Ο/5) βββββββββββββ
β βββββββββββ€
q_4: βββββββββββββ ββ€ Ry(Ο/5) βββββ ββββββββ
βββββββββββ βββββββββββ β
q_5: β€ Rz(Ο/3) βββββββββββββββββββ ββββββββ
βββββββββββ
c: 6/βββββββββββββββββββββββββββββββββββββ
βββββββββββ
q_0: β€ Ry(Ο/5) ββββ βββββ ββββββββββββββββ
βββββββββββ€ β β
q_1: β€ Rx(Ο/5) ββββΌβββββ ββββββββββββββββ
βββββββββββ β
q_2: ββββββ ββββββββ ββββββββββββββββββββ β
β βββββ β
q_3: ββββββ ββββββ€ H βββββββββββββββββββΌβ
βββββ βββββ€ββββββββββββββββ β
q_4: ββββ€ X βββββ€ H ββ€ S ββ€ Rz(Ο/5) βββ β
βββββ βββββββββββββββββββββ
c: 5/βββββββββββββββββββββββββββββββββββ
βββββ
q_0: ββββ€ H ββββββ βββββββ ββββββββ
βββββ β β
q_1: βββββββββββββ βββββββΌββββββββ
β
q_2: ββββββ ββββββββββββββ ββββββββ
β βββββββββββ
q_3: ββββββ βββββββ ββ€ Rx(Ο/5) ββββ
β βββββββββββ€
q_4: βββββββββββββ ββ€ Ry(Ο/5) βββ β
βββββββββββ βββββββββββ β
q_5: β€ Rz(Ο/3) βββββββββββββββββ β
βββββββββββ
c: 6/ββββββββββββββββββββββββββββ
βββββββββββ
q_0: β€ Ry(Ο/5) ββββ ββββ β
βββββββββββ€ β β
q_1: β€ Rx(Ο/5) ββββΌββββ β
βββββββββββ β
q_2: ββββββ ββββββββ ββββ β
β βββββ β
q_3: ββββββ ββββββ€ H βββΌβ
ββββββββββββββββ β
q_4: β€ Rz(Ο/5) ββββββββ β
βββββββββββ
c: 5/βββββββββββββββββββ
βββββ
q_0: ββββ€ H ββββββ βββββββ ββββββββ
βββββ β β
q_1: βββββββββββββ βββββββΌββββββββ
β
q_2: ββββββ ββββββββββββββ ββββββββ
β βββββββββββ
q_3: ββββββ βββββββ ββ€ Rx(Ο/5) ββββ
β βββββββββββ€
q_4: βββββββββββββ ββ€ Ry(Ο/5) βββ β
βββββββββββ βββββββββββ β
q_5: β€ Rz(Ο/3) βββββββββββββββββ β
βββββββββββ
c: 6/ββββββββββββββββββββββββββββ
βββββββββββ
q_0: β€ Ry(Ο/5) βββββββ βββββββ β
βββββββββββ€ β β
q_1: β€ Rx(Ο/5) βββββββΌβββββββ β
βββββββββββ β
q_2: ββββββ βββββββββββ βββββββ β
β βββββ β
q_3: ββββββ βββββββββ€ H ββββββΌβ
βββββ ββββ΄ββββ΄βββ β
q_4: ββββ€ X βββββ€ Rz(Ο/5) βββ β
βββββ βββββββββββ
c: 5/βββββββββββββββββββββββββ
βΉοΈ 9. Shutting Down PyCOMPSsΒΆ
ipycompss.stop(sync=True):
Stops the COMPSs runtime.
Synchronizes any unresolved futures (e.g., cut, subcircuits).
Why it matters: Proper shutdown is required in PyCOMPSs to finalize all asynchronous tasks cleanly.
[14]:
ipycompss.stop(sync=True)
********************************************************
***************** STOPPING PyCOMPSs ********************
********************************************************
Checking if any issue happened.
Synchronizing all future objects left on the user scope.
Found a list to synchronize: cut
Found a list to synchronize: subcircuits
********************************************************