Gibt es Emulatoren für Quantencomputer?


64

Gibt es eine Möglichkeit, einen Quantencomputer in meinem normalen Computer zu emulieren, damit ich Quantenprogrammiersprachen (wie Q # ) testen und ausprobieren kann ? Ich meine etwas, mit dem ich meine Hypothese wirklich testen und die genauesten Ergebnisse erzielen kann.

Update: Ich bin nicht wirklich auf der Suche nach der Simulation eines Quantencomputers, bin mir aber nicht sicher, ob es möglich ist, einen solchen auf einem normalen nicht-quantenbasierten PC effizient zu emulieren.


Antworten:


39

Ja, es ist möglich (aber langsam). Es gibt einige Emulatoren (dies ist nur eine unvollständige Liste):

  • QDD: Eine Quantencomputer-Emulationsbibliothek

    QDD ist eine C ++ - Bibliothek, die eine relativ intuitive Menge von Quantencomputerkonstrukten im Kontext der C ++ - Programmierumgebung bereitstellt. QDD ist insofern einzigartig, als seine Emulation des Quantencomputers auf einer BDD-Darstellung (Binary Decision Diagram) des Quantenzustands basiert.

  • jQuantum

    jQuantum ist ein Programm, das einen Quantencomputer simuliert. Sie können damit Quantenschaltungen entwerfen und sie laufen lassen. Der aktuelle Zustand des Quantenregisters ist dargestellt.

  • QCE

    QCE ist ein Software-Tool, das verschiedene Hardware-Designs von Quantum Computers emuliert. QCE simuliert die physikalischen Prozesse, die den Betrieb eines Hardware-Quantenprozessors steuern, streng nach den Gesetzen der Quantenmechanik. QCE bietet auch eine Umgebung zum Debuggen und Ausführen von Quantenalgorithmen unter realistischen experimentellen Bedingungen.

(Außerdem funktioniert Q # nur mit dem QDK von MS , danke @Pavel)

Der Nachteil von all diesen ist einfach: Sie laufen immer noch auf binären (Nicht-Quanten-) Schaltungen. Zum besten meines Wissens gibt es keine leicht zugänglichen Quantencomputer für den Betrieb , diese Dinge zu verwenden. Und da zum Ausdrücken eines einzelnen Qubits mehrere Binärbits erforderlich sind, wird die zum Simulieren eines Quantenprogramms erforderliche Rechenleistung sehr schnell groß.

Ich zitiere einen Artikel zu diesem Thema ( J. Allcock, 2010 ):

Unsere Evaluierung zeigt, dass unsere Implementierungen sehr genau sind, gleichzeitig jedoch eine erhebliche Menge an zusätzlichem Speicher verwendet wird, um dies zu erreichen. Eine Reduzierung unserer Genauigkeitsziele würde es uns ermöglichen, die Darstellungsgröße zu verringern und daher mehr Qubits mit der gleichen Speichergröße zu emulieren.

S. 89, Abschnitt 5.1

Wenn unsere Implementierungen genauer werden, werden sie auch langsamer.

TL; DR: Es ist möglich und es gibt einige Emulatoren, aber keine sind für große Mengen von Qubits sehr effizient.


Beachten Sie, dass keiner dieser Emulatoren (derzeit) von Q # verwendet werden kann, was nur mit dem QDK von Microsoft funktioniert.
Pavel

3
Zusätzlich zu dem, was Sie gesagt haben: Es gibt programmatische Möglichkeiten, Code in IBM Quantum Experience auszuführen, der echte Quantencomputer bereitstellt - nicht Q # -Code, sondern QASM. QISKit ist der Weg hierher. github.com/QISKit
blalasaadri

Was Sie gesagt haben, ist sinnvoll, da die Simulation auf einem Computer ausgeführt wird. Aber ist es möglich, die gleiche Geschwindigkeit zu erreichen, wenn mehrere Computer verwendet wurden?
iOS Kalender patchthecode.com

26

Ja, es ist möglich, einen Quantencomputer auf einem normalen Computer zu simulieren - aber Sie müssen höchstwahrscheinlich auf Effizienz verzichten.

2nn


Ressourcen

Sie könnten an Q # interessiert sein, wie andere Antworten vermerkt haben. Einige weitere Emulatoren:

  • Quantum Computing-Spielplatz

    Quantum Computing Playground ist ein browserbasiertes WebGL-Chrome-Experiment. Es verfügt über einen GPU-beschleunigten Quantencomputer mit einer einfachen IDE-Oberfläche und eine eigene Skriptsprache mit Funktionen zum Debuggen und zur Visualisierung des 3D-Quantenzustands. Quantum Computing Playground kann effizient Quantenregister mit bis zu 22 Qubits simulieren, Grovers und Shors Algorithmen ausführen und verfügt über eine Vielzahl von Quantentoren, die in die Skriptsprache selbst integriert sind.

  • QX Simulator

    Der QX-Simulator ist ein universeller Quantencomputersimulator, der bei QuTech von Nader Khammassi entwickelt wurde. Mit dem QX können Designer von Quantenalgorithmen die Ausführung ihrer Quantenschaltungen auf einem Quantencomputer simulieren. Der Simulator definiert eine einfache Quantum-Assemblersprache, nämlich den Quantum-Code, mit dem die Benutzer ihre Schaltkreise in einer einfachen Quelltextdatei beschreiben können. Die Quellcodedatei wird dann als Eingabe des Simulators verwendet, der seinen Inhalt ausführt.

  • Quantum ++

    Quantum ++ ist eine moderne C ++ 11-Bibliothek für allgemeine Quantencomputer, die ausschließlich aus Header-Vorlagendateien besteht. Quantum ++ ist in Standard-C ++ 11 geschrieben und weist sehr geringe externe Abhängigkeiten auf, wobei nur die Vorlagenbibliothek Eigen 3 für lineare Algebra-Header und, falls verfügbar, die OpenMP-Multi-Processing-Bibliothek verwendet werden.

  • Quantencomputersprache

    Trotz vieler gängiger Konzepte in der klassischen Informatik gilt das Quantencomputing nach wie vor als eine Spezialdisziplin auf dem weiten Gebiet der theoretischen Physik. [...] QCL (Quantum Computation Language) versucht, diese Lücke zu schließen: QCL ist eine architekturunabhängige Hochsprache für Quantencomputer mit einer Syntax, die von klassischen prozeduralen Sprachen wie C oder Pascal abgeleitet ist. Dies ermöglicht die vollständige Implementierung und Simulation von Quantenalgorithmen (einschließlich klassischer Komponenten) in einem einheitlichen Formalismus.

  • Weitere relevante Emulatoren finden Sie auf Quantiki


21

Ja, es ist möglich, Quantenberechnungen auf einem klassischen Computer zu simulieren. Die Simulationskosten steigen jedoch exponentiell mit der Anzahl der Qubits und / oder der Schaltkreistiefe und / oder bestimmten Betriebszahlen.

Mein Simulator Quirk ist großartig, um Ideen schnell auszuprobieren . Es ist ein Open-Source -Quantenschaltungssimulator, der in Ihrem Webbrowser ausgeführt wird. Sie können auf eine Live-Version unter algassert.com/quirk zugreifen .

Hier ist ein Screenshot von Quirk's Beispiel einer Grover-Schaltung, die mit Zwischenzustandsanzeigen ausgestattet ist, um den "verborgenen" Zustand zu verfolgen, der wahrscheinlicher wird:

Screenshot von Quirk


16

Wenn Sie sich speziell mit Q # beschäftigen, ist die Verwendung mit einem Emulator sehr einfach. Tatsächlich ist es nicht möglich, Q # zu haben, aber nicht den Emulator. Sie sind zusammengebündelt.

Zunächst müssen Sie .NET Core von der Microsoft-Website herunterladen .

Wenn Sie das Quantum Development Kit von dotnet new -i "Microsoft.Quantum.ProjectTemplates::0.2-*"Microsoft über oder die Microsoft-Website herunterladen, werden sowohl die Sprache als auch der Microsoft-eigene Emulator zusammen heruntergeladen.

dotnet new console -lang Q#Wenn Sie ein neues Q # -Projekt ( ) erstellen, wird es automatisch für die Verwendung des Emulators konfiguriert. Wenn Sie also Q # eingeben und das Projekt ausführen, funktioniert es einfach.


3

Ja. Wenn Sie es selbst bauen, suchen Sie sich einen Computer eines Drittanbieters mit den gleichen Spezifikationen wie die BullSequana M9600-Serie, oder über 100.000 €, und kaufen Sie ein System von Atos.

Beachten Sie die Ähnlichkeit zwischen der BullSequana M9600-Serie und dem Atos QLM . Atis QLM gegen M9600

Gleiche Box (und wahrscheinlich interne Komponenten) mit unterschiedlicher Software (aber Sie wollten Ihre eigene verwenden, Q #). Atos behauptet: "Der leistungsstärkste Quantensimulator der Welt". Da bin ich mir nicht sicher, aber die Spezifikationen für die 30-Qubit-Version sind erreichbar, nur zwei Intel-CPUs und 1 TB Speicher.

Atos QLM .PDF Broschüre .

Gibt es einen Weg , einen Quantencomputer in meinem normalen Computer zu emulieren , damit ich Quantenprogrammiersprachen (wie Q #) testen und ausprobieren kann ?

Wenn Sie nur 256 GB Arbeitsspeicher und 1-24 TB Swap-Laufwerk verwenden, wird es langsam sein, aber es wird funktionieren.

Ich meine etwas, an dem ich meine Hypothese wirklich testen und die genauesten Ergebnisse erzielen kann .

Zitat aus der Broschüre:

"Die Atos Quantum Lernmaschine berechnet die exakte Ausführung eines Quantenprogramms mit zweistelliger Genauigkeit. Sie simuliert die Gesetze der Physik , die das Herzstück des Quantencomputers bilden. Dies unterscheidet sich stark von bestehenden Quantenprozessoren, die unter Quanten leiden Rauschen, Quantendekohärenz und Herstellungsverzerrungen sowie Leistungsengpässe. Die Simulation auf der Atos Quantum Learning Machine ermöglicht Entwicklern, sich auf ihre Anwendungen und Algorithmen zu konzentrieren, ohne auf die Verfügbarkeit von Quantenmaschinen warten zu müssen. "

Sie behaupten hohe Genauigkeit, da es sich um einen Simulator handelt, der weder Rauschen ausgesetzt ist, noch so schnell oder so teuer ist. Theoretisch könnten Sie Ihrem Computer Speicher, Laufwerke und Software hinzufügen ...


3

Ich finde einen schönen "Überblick" zum Thema gibt es unter: Quantiki

Sie haben eine Liste von Quantencomputersimulatoren in mehreren Sprachen, einige der Simulatoren wurden hier bereits erwähnt. Sie führen jedoch eine Liste, die sie aktualisieren, um über den Projektstatus zu informieren (oder zu informieren). Es gibt einige "Bibliotheken" wie:

Haskell

qchas (qchas: Eine Bibliothek zum Implementieren von Quantenalgorithmen) - Eine Bibliothek, die zum Implementieren von Quantenalgorithmen nützlich ist. Es enthält Definitionen von Quantentoren, Qubits.

Python

Qubiter : Das Qubiter-Projekt zielt darauf ab, eine vollständige Suite von hauptsächlich in Python geschriebenen Werkzeugen zum Entwerfen und Simulieren von Quantenschaltungen auf klassischen Computern bereitzustellen.

Javascript

jsqis : jsqis ist im Kern ein in Javascript geschriebener Quantencomputersimulator. Es ermöglicht die Initialisierung von Quantenregistern und deren Manipulation mit Hilfe von Quantentoren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.