Skip to content

mvsg2/quantum-internet-hackathon-2022

 
 

Repository files navigation

If you are impatient and just want to run the code, jump ahead to the running the code section.

RIPE Labs Quantum Internet Hackathon 2022

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

Team Q-Harmonics participates in the quantum hackathon; it consists of the following members (in alphabetical order):

Name LinkedIn GitHub
Abdullah K GitHub
B Akash Reddy LinkedIn GitHub
Bruno Rijsman LinkedIn GitHub
Kiran Kaur LinkedIn GitHub
Sai Ganesh Manda LinkedIn GitHub
Tyler Cowan LinkedIn 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.

Team Project: Distributed Quantum Fourier Transformation

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.

This GitHub Repository

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 (QFT)

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:

Distributed Quantum Computation (DQC)

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:

The Distributed Quantum Fourier Transformation (DQFT)

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 Implementation

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:

  1. 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.

  2. A distributed version of the quantum Fourier transformation based on teleportation.

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

QNE-ADK Implementation

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.

Running the code

Enough theory talk! Let's get our hands dirty and actually run some code!

Installation instructions

Read the installation instructions for instructions on how to download and install the team Q-Harmonics code and its dependencies.

Running the distributed quantum Fourier transformation implemented in Qiskit

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.

Running the distributed quantum Fourier transformation implemented in QNE-ADK

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.

About

RIPE Quantum Internet Hackathon 2022

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 98.5%
  • Python 1.4%
  • Shell 0.1%