If you are impatient and just want to run the code, jump ahead to the running the code section.
The Réseaux IP Européens (RIPE) Network Coordination Center (NCC) is co-organizing the Quantum Internet Hackathon (QIH) 2022 on 1 and 2 December 2022.
Team Q-Harmonics participates in the quantum hackathon; it consists of the following members (in alphabetical order):
Name | GitHub | |
---|---|---|
Abdullah K | GitHub | |
B Akash Reddy | GitHub | |
Bruno Rijsman | GitHub | |
Kiran Kaur | GitHub | |
Sai Ganesh Manda | GitHub | |
Tyler Cowan | GitHub |
The name of the team, Q-Harmonics (for Quantum Harmonics) was chosen because we will be working on the quantum Fourier transformation. The Fourier transformation is also known as harmonic analysis.
We chose "Feasible and Doable" as the motto for our team.
The team Q-Harmonics project for the QIH 2022 hackathon is to implement a distributed version of the Quantum Fourier Transformation (QFT) on two different simulation platforms, namely Qiskit and QNE-ADK.
GitHub repository https://github.com/brunorijsman/quantum-internet-hackathon-2022/ contains all code and documentation that team Q-Harmonics produced for the hackathon. Everything is open source (Apache 2.0 license).
The quantum Fourier transformation is an important building block in many quantum computing algorithms including factoring prime numbers using Shor's algorithm and phase estimation.
There are numerous resources that describe the quantum Fourier transformation and its applications, including:
-
Several sections in the Qiskit textbook
-
Chapter 5 "The quantum Fourier transformation and its applications" in the book Quantum Computation and Quantum Information.
We are currently in the Noisy Intermediate Scale Quantum era (NISQ).
The circuit size that can be supported by current quantum computer technology is limited by the number of qubit memories and by the resilience to noise due gate infidelity and memory decoherence.
Due to these limitations existing quantum computers are not yet able to execute quantum fourier transform based algorithms such as phase estimation and Shor's algorithm for input sizes that have practical relevance. For example, quantum computers are not yet powerful enough to use Shor's algorithm to break RSA encryption.
Academia and industry are pursuing several different approaches to overcome this challenge:
-
Improving the capabilities of hardware platforms in terms of more qubits, better gate fidelities, and longer memory coherence times.
-
The use of Quantum Error Correction (QEC) to recover from errors.
-
The use of distributed quantum computation to implement quantum algorithms on a collection of smaller quantum computers that are interconnected by a quantum network (as opposed to a large monolithic quantum computer).
The following blogs and papers discuss distributed quantum computing:
-
Distributed Quantum Computing: A path to large scale quantum computing
-
D-NISQ: A reference model for Distributed Noisy Intermediate-Scale Quantum computers
The goal of this project is to implement a distributed version of the quantum Fourier transformation.
We want to compute the quantum Fourier transform on an N qubit input value.
We pretend that we only have access to quantum computers that have fewer than N qubits of memory. (I say pretend because in our project we will use only small values of N due to limitations of the simulators that we will be using.)
We are going to distribute the quantum Fourier transform computation over M separate smaller quantum processors, where each quantum processor has N/M qubit memories plus a few extra qubit memories for communication with other quantum processors.
We will be using two approaches for implementing the distributed quantum Fourier transformation:
-
The fist approach is based on teleportation. Whenever we want to perform a two-qubit gate where one qubit is located on one quantum processor A and the other qubit is located on another quantum processor B, we first teleport one qubit from A to B, then perform the gate locally on processor B, and then teleport one qubit back from B to A.
-
The second approach is based on quantum cat states. This approach only works for controlled-unitary gates, which is the majority of two-qubit gates in the quantum Fourier transform. We first create a cat state to share the control qubit among two quantum processors, then we perform the controlled-unitary, and then we unshare the cat state.
Some existing resources that describe the distributed quantum Fourier transformation include:
Note that some of these papers discuss a distributed implementation of Shor's algorithm. This includes as a sub-problem a distributed quantum Fourier transformation, which is the easiest part of the problem.
We will be implementing our distributed quantum Fourier transformation on two different simulation platforms: Qiskit and QNE-ADK (both are described in more detail below).
Qiskit is an open-source software development kit (SDK) for working with quantum computers at the level of pulses, circuits, and application modules.
One of the components in Qiskit is Aer, which provides high-performance quantum computing simulators with realistic noise models.
In this project we use the Qiskit SDK to develop three different implementations of the quantum Fourier transformation:
-
A monolithic (non-distributed) version of the quantum Fourier transformation. We use this as a reference to check whether the results of the distributed versions (see below) are correct.
-
A distributed version of the quantum Fourier transformation based on teleportation.
-
A distributed version of the quantum Fourier transformation based on cat states.
Read the viewing and running the team Q-Harmonics Qiskit related code for more details on Qiskit and for more details on the team Q-Harmonics implementation of the distributed quantum Fourier transformation in Qiskit (including the structure of the code and instructions on how to install and run the code).
The Quantum Network Explorer (QNE) is a platform provided by QuTech where you can gain online access to our quantum internet demonstrator and learn about its applications and capabilities.
The QNE Application Development Kit (QNE-ADK) allows users to develop quantum applications that run on the quantum network explorer.
In this project we port the three implementation of the Quantum fourier transformation (see above) from Qiskit to QNE-ADK.
Enough theory talk! Let's get our hands dirty and actually run some code!
Read the installation instructions for instructions on how to download and install the team Q-Harmonics code and its dependencies.
A description of how the distributed quantum Fourier transformation is implemented in Qiskit and instructions on how to run the Qiskit-based DQFT code cand be found here.
A description of how the distributed quantum Fourier transformation is implemented in the Quantum Network Explorer (QNE) Application Development Kit (ADK) and instructions on how to run the QNE-ADK-based DQFT code cand be found here.