Commit 1a3269fc authored by Murali's avatar Murali
Browse files

Saving circuit using QPY instead of OpenQASM3

parent a2f79f67
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ any quantum circuit can be loaded and run.
import numpy as np
# Importing standard Qiskit libraries
from qiskit import QuantumCircuit
import qiskit.qasm3
from qiskit import qpy
from qiskit_aer import AerSimulator
from qiskit_ibm_runtime import SamplerV2 as Sampler
from qiskit_ibm_runtime import RuntimeEncoder
@@ -81,7 +81,8 @@ def qc_circ(n_qubits_matrix, classical_solution, args, input_vars):
    filename = input_vars['savefilename'].format(**input_vars)
    savefilename = f'{filename}_circ_nqmatrix{n_qubits_matrix}'
    t = time.time()   
    circ = qiskit.qasm3.load(f'{savefilename}.qasm')
    with open(f'{savefilename}.qpy', 'rb') as fd:
        circ = qpy.load(fd)[0]
    t_load = time.time() - t
    print(f'===============Loaded circuit (before transpile) ==============')
    print(f'Time elapsed for loading circuit:  {int(t_load/60)} min {t_load%60:.2f} sec', flush=True)
@@ -94,7 +95,8 @@ def qc_circ(n_qubits_matrix, classical_solution, args, input_vars):
    savefilename = f'{filename}_circ-transpile_nqmatrix{n_qubits_matrix}_backend-{args.backend_method}'
    if args.loadcirctranspile:
        t = time.time()
        isa_circ = qiskit.qasm3.load(f'{savefilename}.qasm')
        with open(f'{savefilename}.qpy', 'rb') as fd:
            isa_circ = qpy.load(fd)[0]
        t_load = time.time() - t
        print(f'===============Loaded transpiled circuit ==============')
        print(f'Time elapsed for loading circuit:  {int(t_load/60)} min {t_load%60:.2f} sec', flush=True)
@@ -115,8 +117,8 @@ def qc_circ(n_qubits_matrix, classical_solution, args, input_vars):
            pickle.dump(save_data, file)
            file.close()
            # save transpiled circuit
            with open(f'{savefilename}.qasm', 'w') as ofile:
                qiskit.qasm3.dump(isa_circ, ofile)
            with open(f'{savefilename}.qpy', 'wb') as fd:
                qpy.dump(isa_circ, fd)
            print("===========Transpiled Circuit saved===========", flush=True)
    
    # ============================