Sequential Quantum Gate Decomposer  v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
Functions | Variables
wide_circuit_optimization Namespace Reference

Functions

def transpile_to_ibm_eagle (qasm_path_or_circ, parameters=None)
 

Variables

 _
 
 a2a_stats = None
 
 a2a_time = None
 
tuple a2acirc = wide_circuit_optimizer.config["all_to_all_circuit"]
 
 circ
 
dictionary config
 
 elapsed = time.time() - start_time
 
dictionary existing_results = {}
 
 f
 
list files = [os.path.join(Path(__file__).resolve().parent, "bv_n14.qasm")]
 
def final_ibm_eagle = transpile_to_ibm_eagle(optcirc, optparameters)
 
 fname = os.path.basename(filename)
 
 forced_test
 
list IBM_EAGLE_BASIS = ["cx", "rz", "sx", "x"]
 
 indent
 
def init_ibm_eagle = transpile_to_ibm_eagle(filename)
 
 init_stats = CircuitGateStats(circ)
 
 label
 
 opt_stats = CircuitGateStats(optcirc)
 
tuple opt_time = wide_circuit_optimizer.config.get("optimization_time", None)
 
 optcirc
 
 optparameters
 
 parameters
 
dictionary result_entry
 
dictionary results = existing_results
 
string RESULTS_FILE = "results.json"
 
 routed_stats = None
 
tuple routedcirc = wide_circuit_optimizer.config["routed_circuit"]
 
 routing
 
tuple routing_time = wide_circuit_optimizer.config.get("routing_time", None)
 
 start_time = time.time()
 
tuple wide_circuit_optimizer
 

Function Documentation

◆ transpile_to_ibm_eagle()

def wide_circuit_optimization.transpile_to_ibm_eagle (   qasm_path_or_circ,
  parameters = None 
)
Transpile a circuit to IBM Eagle's native gate set and return consistent
gate stats via Squander's CircuitGateStats.

Args:
    qasm_path_or_circ: Either a path to a .qasm file, or a Squander Circuit.
    parameters: Required if passing a Squander Circuit.

Returns:
    dict from CircuitGateStats, using the same decomposition as the main
    benchmark pipeline.

Definition at line 38 of file wide_circuit_optimization.py.

Here is the call graph for this function:

Variable Documentation

◆ _

wide_circuit_optimization._
private

Definition at line 108 of file wide_circuit_optimization.py.

◆ a2a_stats

wide_circuit_optimization.a2a_stats = None

Definition at line 135 of file wide_circuit_optimization.py.

◆ a2a_time

tuple wide_circuit_optimization.a2a_time = None

Definition at line 137 of file wide_circuit_optimization.py.

◆ a2acirc

tuple wide_circuit_optimization.a2acirc = wide_circuit_optimizer.config["all_to_all_circuit"]

Definition at line 139 of file wide_circuit_optimization.py.

◆ circ

wide_circuit_optimization.circ

Definition at line 108 of file wide_circuit_optimization.py.

◆ config

dictionary wide_circuit_optimization.config
Initial value:
1 = {
2  "strategy": "TreeSearch", # possible values: "TreeSearch", "qiskit", "bqskit", "TabuSearch"
3  "test_subcircuits": False,
4  "test_final_circuit": False,
5  "max_partition_size": 4,
6  "beam": None,
7  "use_osr": True,
8  "use_graph_search": True,
9  "pre-opt-strategy": "TreeSearch", # possible values: "TreeSearch", "qiskit", "bqskit", "TabuSearch"
10  "routing-strategy": "seqpam-ilp", # possible values: "sabre", "light-sabre", "bqskit-sabre", "seqpam-quick", "seqpam-ilp"
11  "tolerance": 1e-5, #1e-5 for use_float and 1e-10 if not are sensible
12  "use_float": True, # whether to use single precision for the optimization (experimental, may cause instability in some cases, but can significantly reduce optimization time and memory usage for large circuits)
13  # **{'use_basin_hopping': True, 'bh_T': 1.1822334624366124, 'bh_stepsize': 0.9020671823381502, 'bh_interval': 165, 'bh_target_accept_rate': 0.7037812116166546, 'bh_stepwise_factor': 0.8254028860713254}
14  }

Definition at line 67 of file wide_circuit_optimization.py.

◆ elapsed

wide_circuit_optimization.elapsed = time.time() - start_time

Definition at line 127 of file wide_circuit_optimization.py.

◆ existing_results

wide_circuit_optimization.existing_results = {}

Definition at line 91 of file wide_circuit_optimization.py.

◆ f

wide_circuit_optimization.f

Definition at line 171 of file wide_circuit_optimization.py.

◆ files

list wide_circuit_optimization.files = [os.path.join(Path(__file__).resolve().parent, "bv_n14.qasm")]

Definition at line 84 of file wide_circuit_optimization.py.

◆ final_ibm_eagle

def wide_circuit_optimization.final_ibm_eagle = transpile_to_ibm_eagle(optcirc, optparameters)

Definition at line 131 of file wide_circuit_optimization.py.

◆ fname

wide_circuit_optimization.fname = os.path.basename(filename)

Definition at line 99 of file wide_circuit_optimization.py.

◆ forced_test

wide_circuit_optimization.forced_test

Definition at line 179 of file wide_circuit_optimization.py.

◆ IBM_EAGLE_BASIS

list wide_circuit_optimization.IBM_EAGLE_BASIS = ["cx", "rz", "sx", "x"]

Definition at line 35 of file wide_circuit_optimization.py.

◆ indent

wide_circuit_optimization.indent

Definition at line 171 of file wide_circuit_optimization.py.

◆ init_ibm_eagle

def wide_circuit_optimization.init_ibm_eagle = transpile_to_ibm_eagle(filename)

Definition at line 117 of file wide_circuit_optimization.py.

◆ init_stats

wide_circuit_optimization.init_stats = CircuitGateStats(circ)

Definition at line 116 of file wide_circuit_optimization.py.

◆ label

wide_circuit_optimization.label

Definition at line 180 of file wide_circuit_optimization.py.

◆ opt_stats

wide_circuit_optimization.opt_stats = CircuitGateStats(optcirc)

Definition at line 130 of file wide_circuit_optimization.py.

◆ opt_time

tuple wide_circuit_optimization.opt_time = wide_circuit_optimizer.config.get("optimization_time", None)

Definition at line 132 of file wide_circuit_optimization.py.

◆ optcirc

wide_circuit_optimization.optcirc

Definition at line 124 of file wide_circuit_optimization.py.

◆ optparameters

wide_circuit_optimization.optparameters

Definition at line 124 of file wide_circuit_optimization.py.

◆ parameters

wide_circuit_optimization.parameters

Definition at line 108 of file wide_circuit_optimization.py.

◆ result_entry

dictionary wide_circuit_optimization.result_entry
Initial value:
1 = {
2  "file": fname,
3  "strategy": config["strategy"],
4  "pre_opt_strategy": config["pre-opt-strategy"],
5  "routing_strategy": config["routing-strategy"],
6  "init": init_stats,
7  "init_ibm_eagle": init_ibm_eagle,
8  "final": opt_stats,
9  "final_ibm_eagle": final_ibm_eagle,
10  "timing": {
11  "a2a": round(a2a_time, 2) if a2a_time else None,
12  "routing": round(routing_time, 2) if routing_time else None,
13  "optimization": round(opt_time, 2) if opt_time else None,
14  "total": round(elapsed, 2),
15  },
16  }

Definition at line 146 of file wide_circuit_optimization.py.

◆ results

wide_circuit_optimization.results = existing_results

Definition at line 97 of file wide_circuit_optimization.py.

◆ RESULTS_FILE

string wide_circuit_optimization.RESULTS_FILE = "results.json"

Definition at line 87 of file wide_circuit_optimization.py.

◆ routed_stats

wide_circuit_optimization.routed_stats = None

Definition at line 136 of file wide_circuit_optimization.py.

◆ routedcirc

tuple wide_circuit_optimization.routedcirc = wide_circuit_optimizer.config["routed_circuit"]

Definition at line 140 of file wide_circuit_optimization.py.

◆ routing

wide_circuit_optimization.routing

Definition at line 178 of file wide_circuit_optimization.py.

◆ routing_time

tuple wide_circuit_optimization.routing_time = wide_circuit_optimizer.config.get("routing_time", None)

Definition at line 144 of file wide_circuit_optimization.py.

◆ start_time

wide_circuit_optimization.start_time = time.time()

Definition at line 123 of file wide_circuit_optimization.py.

◆ wide_circuit_optimizer

tuple wide_circuit_optimization.wide_circuit_optimizer
Initial value:
1 = (
2  Wide_Circuit_Optimization.qgd_Wide_Circuit_Optimization({**config})
3  )

Definition at line 120 of file wide_circuit_optimization.py.