Skip to content

sola-st/qite-quantum-platform-testing

Repository files navigation

QITE: Cross-Platform Quantum Platform Testing

The structure of this repo:

  1. qite/ contains the source code of the QITE approach.
  2. notebooks/ contains the Jupyter notebooks to reproduce the results in the paper.
  3. tests/ contains the tests for QITE.
  4. program_bank/ contains the programs generated by QITE.
  5. config/ contains the configuration files for QITE.
  6. reports/ contains the GitHub issues and developer discussions for each bug reported.
  7. 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:

  1. Reproduce the results in the paper: The Jupyter notebooks in notebooks/ can be used to reproduce the results in the paper.
  2. Reproduce the results from scratch: The QITE source code in qite/ can be used to reproduce the results from scratch.

Data Availability

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.

Requirements

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.

Reproduction: Results in the Paper (Level 1)

  1. Download the data and place them in the 'program_bank/' directory. See the 'program_bank/README.md' file for more information on folder structure.

  2. 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
  3. 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.

Reproduction: Re-run QITE (Level 2)

Installation and Running QITE in Docker (Recommended)

To run QITE with coverage information collection you have to follow these steps:

  1. Prepare a configuration file in the config/ directory. You can use the config/demo_qite.yaml file as example. Read it carefully since it has an explanations of the fields, in case you want to change them.

  2. 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 screen to keep the process running in the background even if you close your terminal. Add screen before the command above.

  3. 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 the output_dir and input_folder fields of the various commands.

Installing and Running QITE Locally

You can also install QITE locally thanks to the pyproject.toml file.

  1. 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 .
  2. Run QITE with the following command:

    # From the root of the repository
    python entry.py --config config/demo_qite.yaml
  3. The results will be stored in the folder program_bank/demo_qite/<<run_id>>.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published