Giter Site home page Giter Site logo

brunorijsman / quantum-internet-hackathon-2022 Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 3.0 22.05 MB

Distributed Quantum Fourier Transformation (RIPE Quantum Internet Hackathon 2022)

License: Apache License 2.0

Python 1.71% Shell 0.18% Jupyter Notebook 98.10%
fourier-transform quantum quantum-computing quantum-networking

quantum-internet-hackathon-2022's Introduction

All checks

If you are impatient and just want to see the code, jump ahead to the Qiskit implementation or the QNE ADK implementation.

RIPE Labs Quantum Internet Hackathon 2022

On 1 and 2 December 2022 the Réseaux IP Européens (RIPE) Network Coordination Center (NCC) organized the Quantum Internet Hackathon (QIH) 2022. Teams from five European cities (Amsterdam, Dublin, Padua, Sarajevo and Poznan) as well as online teams worked on quantum networking related projects.

Team Q-Harmonics

Team Q-Harmonics was one of the online teams that participated in the 2022 Quantum Internet Hackathon. The members of the team were:

Name LinkedIn GitHub
Bruno Rijsman LinkedIn GitHub
Tyler Cowan LinkedIn GitHub
Sai Ganesh Manda LinkedIn GitHub
Abdullah K GitHub
B Akash Reddy LinkedIn GitHub
Kiran Kaur LinkedIn GitHub

The Distributed Quantum Fourier Transformation

The project that we chose for the hackathon was to implement a distributed version of the quantum Fourier transformation that runs on a cluster of small quantum computers connected by an entanglement-based quantum network. We did three different implementations: one using Qiskit, one using QNE-ADK, and one using Pennylane.

The name of the team, Q-Harmonics (for Quantum Harmonics) was chosen because the Fourier transformation is also known as harmonic analysis.

This GitHub Repository

This 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 documentation in this GitHub repository is also published on GitHub pages: https://brunorijsman.github.io/quantum-internet-hackathon-2022/.

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

In this project we explore the path of using distributed quantum computing by implementing a distributed version of the quantum Fourier transformation.

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 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:

Some of these papers discuss a distributed implementation of Shor's algorithm. The quantum Fourier transformation is one of the steps in Shor's algorithm (not the most difficult step).

We will be implementing our distributed quantum Fourier transformation on three different simulation platforms: Qiskit, QNE-ADK, and Pennylane (all 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:

  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.

See the Qiskit implementation chapter for more details on our implementation of the distributed quantum Fourier transformation in Qiskit.

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.

See the QNE-ADK implementation chapter for more details on our implementation of the distributed quantum Fourier transformation in QNE-ADK.

quantum-internet-hackathon-2022's People

Contributors

abdullahkazi500 avatar brunorijsman avatar mvsg2 avatar tylergcowan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.