Welche Programmiersprachen gibt es für Quantencomputer?


53

Aus dieser Frage ging hervor, dass die wichtigsten Programmiersprachen für Quantencomputer Q # und QISKit sind .

Welche anderen Programmiersprachen stehen für die Programmierung von Quantencomputern zur Verfügung? Gibt es bestimmte Vorteile bei der Auswahl bestimmter?

EDIT: Ich suche Programmiersprachen, keine Emulatoren. Emulatoren simulieren Dinge. Programmiersprachen sind eine Methode zum Schreiben von Anweisungen (entweder für reale Objekte oder für Emulatoren). Es kann eine einzige Sprache geben, die für mehrere Emulatoren funktioniert und umgekehrt.


Ich möchte darauf hinweisen, dass im Wesentlichen keine der hier in der akzeptierten Antwort aufgeführten Sprachen auf einem vorhandenen Quantencomputer ausgeführt werden kann. Es kann sinnvoller sein, entweder 1) die Frage zu bearbeiten, um zu verdeutlichen, dass Sie nach Sprachen fragen, die nicht für die Verwendung mit vorhandener Hardware kompiliert werden können, oder 2) eine andere Antwort zu akzeptieren.
DanielSank

1
@DanielSank Ich habe die Wikipedia-Liste akzeptiert, da ich davon ausgegangen bin, dass diese Liste aktualisiert wird und Sprachen enthält, die tatsächlich auf Hardware ausgeführt werden. Dies ist die beste Antwort, vorausgesetzt, Wikipedia verfügt weiterhin über diese Seite.
Pro Q

1
@ProQ - Meine Antwort wurde geringfügig aktualisiert. Außerdem habe ich klargestellt, dass meine Antwort nicht Ausschneiden / Einfügen ist, sondern überprüfte Links enthält. Ich habe einen fehlerhaften Link behoben. Ich habe eine wichtige Website für Autoren hinzugefügt. - Ich werde von Zeit zu Zeit wiederkommen, um sicherzustellen, dass diese Antwort "ungefähr großartig" ist. Details zur Beantwortung und Pflege wurden angesprochen. Einige der Sprachen in meiner Antwort werden auf Hardware ausgeführt, die zum Kauf angeboten wird, und werden regelmäßig verwendet. Vielen Dank für Ihren Glauben ProQ.
Rob

Es gibt auch Yao (Extensible, Efficient Quantum Algorithm Design for Humans), geschrieben in Julia, github.com/QuantumBFS/Yao.jl . Und hier und hier finden Sie einen Vergleich.
Skan

Antworten:


35

Wikipedia-Liste der Programmiersprachen von Quantum Computer

(Diese Antwort ist keine Kopie dieser Webseite, sie ist aktueller und mit überprüften Links versehen. In einigen Fällen wird der Link zum Artikel oder zur Website des Autors hinzugefügt.)

Die Website Quantum Computing Report enthält eine Tools-Webseite mit über einem Dutzend Links, von denen einige neu sind und einige die obige Liste wiederholen.

Siehe auch die Webseite von QuanTiki: " Liste der QC-Simulatoren " für eine große Liste von Simulatoren und Programmiersprachen auf der Basis von: C / C ++, CaML, OCaml, F # sowie GUI-basiert, Java, JavaScript, Julia, Maple, Mathematica, Maxima , Matlab / Octave, .NET, Perl / PHP, Python, Schema / Haskell / LISP / ML und andere Online-Dienste, die Taschenrechner, Compiler, Simulatoren und Toolkits usw. bereitstellen.

Gibt es bestimmte Vorteile bei der Auswahl bestimmter?

Wenn Sie vorhaben, einen bestimmten Quantencomputer zu verwenden, würde man hoffen, dass die vom Hersteller entwickelte Programmiersprache sowohl für diese bestimmte Maschine am besten geeignet ist als auch gut unterstützt wird.

Wenn Sie eine Sprache mit einer größeren Anzahl von Anhängern auswählen, stehen mehr Foren zur Verfügung und hoffentlich mehr Fehlerbehebungen und Support.

Leider gibt es einige großartige Nischenprodukte, für die es schwierig ist, eine Nutzerbasis zu gewinnen. Der Versuch, eine Sprache zu finden, die sowohl aussagekräftig als auch ausdrucksstark ist und auf verschiedenen Plattformen unterstützt wird, ist der Trick. Die Antwort ist ein Meinungsautomaten.

Eine Evaluierung von vier Softwareplattformen: Forest (pyQuil), QISKit, ProjectQ und das Quantum Developer Kit wird von Ryan LaRose in " Überblick und Vergleich von Quantum-Softwareplattformen auf Gate-Ebene " (6. Juli 2018) angeboten.


Aktualisierung:

Googles Cirq und OpenFermion-Cirq: " Googles AI-Blog - Ankündigung von Cirq: Ein Open Source-Framework für NISQ-Algorithmen ".

Das Leap and Ocean SDK von D-Wave ermöglicht den Zugriff auf ein D-Wave 2000Q ™ -System in einer Cloud-Umgebung mit Zugriff auf eine Qubit-Quantenglühmaschine über 2000, um Workloads kostenlos zu testen und auszuführen, vorausgesetzt, die verwendeten Kernalgorithmen fließen in den Open Source-Pool ein . Bewerben Sie sich, um sich auf der Leap In- Webseite von D-Wave anzumelden.

Der Quantum Cloud Service (QCS) von Rigetti Computing bietet ein Quantum Machine Image, eine virtualisierte Programmier- und Ausführungsumgebung, die mit Forest 2.0 vorkonfiguriert ist, um auf bis zu 16 Qubits eines 128-Qubit-Computers zuzugreifen.

Informieren Sie sich über Fujitsus Digital Annealer , eine Architektur, die Berechnungen rund 10.000-mal schneller als ein herkömmlicher Computer durchführt. Wenn sie irgendwann eine Entwicklungsumgebung bereitstellen, die mit echten Quantencomputern kompatibel ist, bleiben diese beiden Absätze in dieser Antwort erhalten, ansonsten werde ich sie entfernen.

Obwohl der Siliziumchip nicht quantenbasiert ist, hat Fujitsu in Zusammenarbeit mit 1Qbit einen so genannten " Quantum Inspired AI Cloud Service " entwickelt. Dabei spielt es keine Rolle , ob der Digital Annealer wie eine Ente quakt (annealt wie eine D-Wave und verwendet kompatiblen Code). bleibt abzuwarten. Besuchen Sie hier, um auf den technischen Service von Fujitsu Digital Annealer zuzugreifen .

Der QWIRE ( Chor ) der University of Pennsylvania ist ein Tool für die Quantenschaltungssprache und formale Verifizierung. Es verfügt über eine GitHub-Webseite .

Eine Übersicht über: Cirq, Cliffords.jl, dimod, dwave-system, FermiLib, Forest (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Qiskit Terra und Aqua, Qiskit Tutorials und Qiskit.js, Qrack, Quantennebel, Quantum ++, Qubiter, Quirk, Referenz-qvm, ScaffCC, Strawberry Fields, XACC und schließlich XACC VQE werden im Artikel " Open Source Software im Quantencomputing " (21. Dezember 2018) von Mark Fingerhuth angeboten. Tomáš Babej und Peter Wittek.

Ich werde von Zeit zu Zeit auf diese Antwort zurückkommen, um Aktualisierungen vorzunehmen, ohne übermäßig zu stoßen .


Das QOSF verfügt über eine Liste von Open-Source-Quantencomputer-Software .
Rob

Nachrichten zum Thema "Programmierung": IBM kündigt an, dass im nächsten Monat 53 Qubit-Computer für die Öffentlichkeit verfügbar sind .
Rob

28

Hardwarehersteller von Gate-Modellen haben ihre eigenen Basissprachen entwickelt:

Diese haben höhere Python-SDKs zur Verfügung:

Rigetti packt ihre Sprache auch in eine übergeordnete Bibliothek, um vorgefertigte Anwendungen namens Grove aufzurufen .

Microsoft hat Q # so entwickelt , dass es mit dem vorhandenen Simulator und eventuell der physischen Hardware kompatibel ist.

Da die oben genannten Sprachen herstellerspezifisch sind, besteht der Hauptvorteil darin, dass Sie Quantenprogramme auf ihren Computern ausführen können.

Außerhalb der herstellerspezifischen Sprachen befindet sich Scaffold , das von Forschern aus Princeton entwickelt wird. Diese Sprache ist interessant, da sie eine Toolchain zur Analyse der Programme enthält, um Kosten, Leistungspotenzial und Skalierbarkeitspotenzial zu bestimmen.

Bearbeiten: Project Q ist ein weiteres Framework, mit dem Sie mithilfe von Python Programme entwickeln können, die auf einem mitgelieferten Simulator ausgeführt werden können.

Oak Ridge National Labs hat mit der Arbeit an einem Projekt namens XACC begonnen, das herstellerspezifischen Code abstrahieren soll, um Benutzern den Zugriff auf die verschiedenen Hardwareplattformen zu ermöglichen, ohne Code in jeder herstellerspezifischen Sprache zu duplizieren.


3
Erwähnenswert ist auch projectq.ch.
James Wootton

1
Diese Antwort gefällt mir, weil sie erklärt, welche Sprachen auf vorhandener Hardware ausgeführt werden können .
DanielSank


3

Ich würde IBM Composer einschließen. Es fühlt sich nicht nach Programmieren an, da Sie nicht alle Fehler und Funktionen kennen, sondern Ihre Anweisungen auf Gates eindeutig in QASM konvertieren und auf einem echten IBM-Simulator oder einem echten IBM-Quantencomputer ausführen (Sie haben die Wahl) der Benutzer).


1

Leider ist die Liste auf Quantiki ziemlich alt und nicht gut gepflegt. Selbst die Auflistung aller Quantenprogrammiersprachen in einer einzigen Antwort auf diese Frage ist nicht nachhaltig, da sich die Quantenlandschaft ständig weiterentwickelt. Zum Beispiel hat Google gerade Cirq herausgebracht , ein neues Quantenprogrammierungs-Framework für NISQ-Computer (Noisy Intermediate Scale Quantum), das in keiner der oben genannten Antworten enthalten ist, da es erst vor einigen Tagen angekündigt wurde.

Um dieses Problem zu lösen und um eine weitere Frage zu QC StackExchange zu beantworten, habe ich eine kuratierte Liste von Open-Source-Softwareprojekten auf GitHub erstellt, die auch einen umfassenden Überblick über aktiv entwickelte Quantenprogrammiersprachen und Frameworks enthält. Die Liste wird von der Community aktiv gepflegt und wir fügen ständig neue Projekte hinzu.


2
Dies sieht aus wie eine wunderbare Ressource. Danke! Ich frage mich, ob es eine ähnliche Liste von Projekten gibt, die nicht nur Open Source sind.
Pro Q

1
@ProQ um ehrlich zu sein denke ich, dass die Open-Source-Liste mehr als 95% des Speicherplatzes der Quantensoftware abdeckt. Es gibt kaum Closed-Source-Pakete mit öffentlichem Zugriff, und Quantensoftware, die intern in einigen Unternehmen ohne öffentlichen Zugriff verwendet wird, ist Ihnen egal.
Mark Fingerhuth
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.