The structure of this repo:
qite/contains the source code of the QITE approach.notebooks/contains the Jupyter notebooks to reproduce the results in the paper.tests/contains the tests for QITE.program_bank/contains the programs generated by QITE.config/contains the configuration files for QITE.reports/contains the GitHub issues and developer discussions for each bug reported.docker/contains the Dockerfile to build the Docker image for QITE runs that collect coverage information on the target quantum platforms.
There are two reproduction levels for the results in the paper:
- Reproduce the results in the paper: The Jupyter notebooks in
notebooks/can be used to reproduce the results in the paper. - Reproduce the results from scratch: The QITE source code in
qite/can be used to reproduce the results from scratch.
We share the data used in the paper:
- QITE Data: containing the experimental data obtaining running QITE, and used to produce the plots and figures in the paper.
- MorphQ Data: containing the experimental data obtaining running MorphQ, and used to compare the performance of QITE with MorphQ.
You need to have the following software installed on your machine to run QITE:
- Conda
- Docker
- screen (optional but recommended to run QITE in the background while closing your terminal)
OS: we recommend to have Ubuntu e.g. Ubuntu 22.04.5 LTS or newer, since we have tested the code on Ubuntu Ubuntu 22.04.5 LTS we cannot guarantee that it will work out of the box on other operating systems.
-
Download the data and place them in the 'program_bank/' directory. See the 'program_bank/README.md' file for more information on folder structure.
-
Make sure to have all the dependencies listed in the 'environment.yml' file installed. You can create a Conda environment with the following command:
conda env create -f environment.yml
Activate the environment with the following command:
conda activate crosspl
-
Open the notebook
notebooks/028_RQ_Results.ipynb. If in VSCode, you can open the notebook directly.jupyter notebook notebooks/028_RQ_Results.ipynb
This notebook contains the code to reproduce the figures in the paper. Run it top to bottom to reproduce the figures.
To run QITE with coverage information collection you have to follow these steps:
-
Prepare a configuration file in the
config/directory. You can use theconfig/demo_qite.yamlfile as example. Read it carefully since it has an explanations of the fields, in case you want to change them. -
Run the following command to build the QITE Docker image and run the QITE tests:
# Clone the repository git clone <this-repo-url> cd <this-repo-name> # From the root of the repository bash docker/coverage_toolkit/run_qite_in_docker.sh -c config/demo_qite.yaml --interactive
Run it in
screento keep the process running in the background even if you close your terminal. Addscreenbefore the command above. -
The results will be stored in the folder
program_bank/demo_qite/<<run_id>>. Note that this can be configured in the configuration file changing theoutput_dirandinput_folderfields of the various commands.
You can also install QITE locally thanks to the pyproject.toml file.
-
Clone the repo and install QITE by running the following command:
# Clone the repository git clone <this-repo-url> cd <this-repo-name> pip install -e .
-
Run QITE with the following command:
# From the root of the repository python entry.py --config config/demo_qite.yaml -
The results will be stored in the folder
program_bank/demo_qite/<<run_id>>.