This repository contains an implementation of the classical part of the Accelerated Quantum Phase Estimation (AQPE) subroutine of the Accelerated Variational Quantum Eigensolver (AVQE) based on the work by Cruise et al. 1, which takes advantage of the capabilities of Signaloid's compute engine to achieve faster convergence. The implementation is a variation of the AVQE application evaluated by Tsoutsouras et al. 2. For phase estimation, the implementation uses the Signaloid compute engine's Bayes-Laplace operation to implement Bayesian inference. For comparison, the repository Signaloid-Demo-Quantum-AQPE-NoUx contains an implementation of AQPE using an approximation to Bayesian inference called Reduction Filtering Phase Estimation (RFPE).
The AQPE algorithm is a method to estimate the eigenphase
AVQE is a generalization of the standard Variational Quantum Eigensolver (VQE) which replaces the Quantum Expectation Estimation (QEE) subroutine with the AQPE subroutine and is a bridge between VQE and the classical QPE algorithm by Kitaev et al. 3. AVQE introduces a parameter
Algorithm | Quantum Circuit Depth, |
Number of Quantum Circuit Measurements, |
---|---|---|
AVQE |
|
|
VQE | ||
Kitaev's QPE |
The table above shows the requirements for the quantum circuit depth
With the contemporary NISQ-era quantum computers being capable of maintaining qbit coherence for quantum circuit depths of only few hundreds, implementing Kitaev's QPE approach is out of question for low values of
After clicking on the "add to signaloid.io" button at the top of this README, you will be connected to the Repositories Tab on the Signaloid Cloud Developer Platform. Next, click on the button to set the command-line arguments to -i -o -p 1e-4 -a 0.5
. This sets
Compared with the RFPE approach, the implementation of AQPE in this repository takes advantage of the Bayes-Laplace operation supported by the Signaloid compute engine and exposed thorugh the UxHw
API, to achieve:
- Faster execution times.
- More robust convergence statistics.
- Fewer total required number of iterative circuit mappings to quantum hardware to achieve convergence.
- Fewer total required number of quantum circuit measurements to achieve convergence.
- Easier access to Bayesian inference without the need to worry about implementing an efficient approximation of Bayesian inference as in the case of RFPE.
The table below compares the results of the Signaloid implementation against the RFPE method in -r 1000
command-line argument) for
Performance metric | Signaloid solution (C0pro-S+) 4 | RFPE method | Signaloid improvement percentages |
---|---|---|---|
Faster execution times: Elapsed user time for |
|
|
9.86% faster classical component runtime |
More robust convergence statistics: Number of successful convergences (within |
|
|
32.09% more robust convergence statistics |
Fewer total required number of circuit mappings to quantum hardware to achieve convergence: Average total required number of quantum circuit mappings |
|
|
44.89% better hardware usage efficiency |
Fewer total required number of quantum circuit measurements to achieve convergence: Average total required number of shots |
|
|
44.89% better hardware usage efficiency |
Easier access to Bayesian inference: Required number of lines of code for Bayesian inference |
|
|
77.78% shorter code |
[-s <K> <sample1> <sample2> ... <sampleK> <sampleWeight1> <sampleWeight2> ... <sampleWeightK>] K in [1, 100000]
[-i [path_to_input_csv_file : str] (Default: 'input.csv')]
[-o [path_to_output_csv_file : str] (Default: './sd0/aqpeOutput.csv')]
[-t <target_phase : double in [-pi, pi]>] (Default: pi / 2)
[-p <precision_in_phase_estimation : double in (0, inf)>] (Default: 1e-4)
[-a <alpha : double in [0,1]>] (Default: 0.5)
[-n <number_of_evidence_samples_per_iteration : int in [1, inf)>] (Default: 1 / precision^{alpha})
[-r <number_of_repetitions : size_t in (0, inf)>] (Default: 1)
[-v] (Verbose mode: Prints details of each repeated AQPE experiment to stdout.)
[-h] (Display this help message.)
.
├── LICENSE
├── README.md
├── inputs
│ └── input.csv
└── src
├── README.MD
├── main.c
├── utilities.c
└── utilities.h
Footnotes
-
J. R. Cruise, N. I. Gillespie, and B. Reid: Practical Quantum Computing: The value of local computation. arXiv:2009.08513 [quant-ph], Sep. 2020. Available Online: http://arxiv.org/abs/2009.08513. ↩
-
Vasileios Tsoutsouras, Orestis Kaparounakis, Bilgesu Arif Bilgin, Chatura Samarakoon, James Timothy Meech, Jan Heck, Phillip Stanley-Marbell: The Laplace Microarchitecture for Tracking Data Uncertainty and Its Implementation in a RISC-V Processor. MICRO 2021: 1254-1269. ↩
-
A. Y. Kitaev, A. Shen, and M. N. Vyalyi: Classical and Quantum Computation. American Mathematical Society, 2002. ↩
-
C0pro-S+ is a core from the C0pro family and has the same configuration parameters as the standard C0-S+ core. In contrast to standard C0 cores, C0pro cores do not suffer from the virtualization overhead caused by our hardware emulator. C0pro cores are in limited private beta: we are indeed making it available for customers who get dedicated servers. ↩
-
We evaluated the performance for the Signaloid solution versus RFPE running on a 16-core Intel Xeon Platinum 8275CL CPU running at 3.00GHz. ↩
-
In our implementation, there are an additional 22 lines of safety-checking code to check for memory allocation bounds. ↩