Main content

Home

Menu

Loading wiki pages...

View
Wiki Version:
## About This repository contains supporting code and data for the paper entitled "Experimental Realization of a Measurement-Induced Entanglement Phase Transition on a Superconducting Quantum Processor with Mid-Circuit Readout" by Jin Ming Koh, Shi-Ning Sun, Mario Motta, Austin J. Minnich. Link to paper: https://doi.org/10.48550/arXiv.2203.04338. ## Contents The structure of this repository is summarized below. - `/code` — contains Python source code files. - `account.py` — interfaces with IBM Q account provider. - `backend.py` — interfaces with hardware devices and simulators with and without noise models. - `circuits.py` — code for generating hybrid random circuits for experiments or simulations. - `experiment.py` — backbone code for setting up and running experiments. - `mitigation.py` — backbone code for error mitigation. - `tomography.py` — backbone code for quantum state tomography (QST). - `numerics.py` — backbone code for classical numerics. - `simulator.py` — backbone code for exact simulation of quantum circuits. - `storage.py` — manages file I/O and storage of circuits. - `utility.py` — general utility functions. - `/data` — contains hardware experiment datasets. - `proj-L<L>-S<A>` folders contain datasets for projective measurement experiments at system size $L$ and subsystem size $A$. Data at measurement rate $p$ is stored in subfolder `data-p<1000*p>`. - `weak-L<L>-S<A>-p<1000*p>-R01` and `weak-L<L>-S<A>-p<1000*p>-R02` folders contain datasets for weak measurement experiments at system size $L$ and subsystem size $A$ for measurement rate $p$. Data at measurement strength $\eta$ is stored in subfolder `data-e<1000*eta>`. - `/storage` — contains generated hybrid random circuits for experiments. - `proj-circuits` contains circuits for projective measurement experiments. Each file `proj-...-L<L>-T<T>-p<1000*p>-circs.dat` contain $1000$ random circuits at system size $L$ and measurement rate $p$, with $T$ time steps. - `weak-circuits` contains circuits for weak measurement experiments. Each file `weak-...-L<L>-R01-T<T>-p<1000*p>-e<1000*eta>-circs.dat` contain $1000$ random circuits at system size $L$, measurement rate $p$ and strength $\eta$, with $T$ time steps. - `/tutorials` — contains tutorial notebooks demonstrating the use of code provided in this repository. - `tutorial-hardware-proj.ipynb` — demonstrates running of projective measurement experiments on hardware devices. - `tutorial-idealsim-proj.ipynb` — demonstrates running of projective measurement experiments on noiseless classical simulator. - `tutorial-hardware-weak.ipynb` — demonstrates running of weak measurement experiments on hardware devices. - `tutorial-idealsim-weak.ipynb` — demonstrates running of projective measurement experiments on noiseless classical simulator. - `tutorial-numerics.ipynb` — demonstrates numerical simulations of quantum trajectories. - `/figures` — contains code and processed data for generating figures in the paper. ## Tutorials See `/tutorials` for notebooks demonstrating the running of projective and weak measurement experiments on hardware devices and noiseless simulators, as well as numerical simulations of quantum trajectories. Comments in the notebooks and source code (in `/code`) explain key aspects of code usage and function. ## Data Format As far as possible, the data provided are stored in human-readable formats to aid in transparency. We provide further clarification on the structure of the stored data below. - Hardware experiment data in `/data`. Each experiment job, typically containing tens to hundreds of circuits, is uniquely identified by a numerical `tag` and randomly generated job `id`. Data for the experiment job is stored in files named `hw-<tag>-<id>-<suffix>`. For example, `hw-001-e83c-counts.dat` is one such data file. The suffix denotes the type of data stored in the file: - `-counts.json` files store recorded measurement bitstrings and their counts. The data is stored as a dictionary, with the following pertinent keys: - `calib` — list of bitstrings and counts for readout error mitigation calibration circuits. - `raw` — list of bitstrings and counts for the hybrid random circuits executed in the experiment job without mitigation. - `mit` — list of bitstrings and counts for the hybrid random circuits after applying readout error mitigation. *File encoding: JSON.* - `-cat.dat` files store intermediate data. The data is stored as a dictionary, with the following pertinent keys: - `seqs` — ordered lists of distinct mid-circuit measurement bitstrings, which identify quantum trajectories, enumerated over each hybrid random circuit. - `weights` — ordered lists of trajectory probabilities enumerated over each hybrid random circuit. - `densmats` — ordered lists of subsystem density matrix $\rho_A$ of each trajectory recovered through QST, enumerated over each hybrid random circuit. - `entropies` — ordered lists of entanglement entropy computed from $\rho_A$ of each trajectory, enumerated over each hybrid random circuit. Each key above is further subdivided with secondary keys `raw` and `mit` indexing data without mitigation and data with readout error mitigation applied. *File encoding: JSON.* - `-ro.dat` files store a list of calibration matrices inferred from calibration circuits for readout error mitigation, enumerated over qubit sub-registers for the tensored mitigation scheme. For the complete scheme, only a single calibration matrix will be present. *File encoding: JSON.* - `-avg.csv` files tabulate computed average entanglement entropies for each hybrid random circuit. *File encoding: CSV.* - Circuits in `/storage`. Each `.dat` circuit file is a comma-separated table, each row storing a hybrid random circuit as a QASM string, followed by two lists describing the locations of mid-circuit measurements. The two lists store redundant information but facilitate easier processing of the circuits downstream. ## Requirements The code in this repository assumes the following dependency versions: - Python 3.10.8 - Qiskit 0.36.2 - Qiskit-Terra 0.20.2 - Qiskit-Aer 0.10.4 - Qiskit-Ignis 0.7.1 - Numpy 1.23.5 - Scipy 1.9.3 Other dependencies: - Joblib - tqdm - json-numpy An IBM Quantum account (https://quantum-computing.ibm.com/) is needed for running experiments on hardware devices. Free accounts have access to a subset of quantum devices used in our experiments.
OSF does not support the use of Internet Explorer. For optimal performance, please switch to another browser.
Accept
This website relies on cookies to help provide a better user experience. By clicking Accept or continuing to use the site, you agree. For more information, see our Privacy Policy and information on cookie use.
Accept
×

Start managing your projects on the OSF today.

Free and easy to use, the Open Science Framework supports the entire research lifecycle: planning, execution, reporting, archiving, and discovery.