Qrisp

Höhere Programmiersprache für Quantencomputer

SQC Technologie Qrisp, Grafik, Deutsch, 16z9, 1200x675px
© Fraunhofer FOKUS

Qrisp ist eine höhere Programmiersprache für die Programmierung von Quantencomputern. Sie ermöglicht Entwicklerinnen und Entwicklern komplexe Quantenalgorithmen mit einer leicht zu erlernenden, modernen Syntax zu schreiben und diese bis auf Schaltkreisebene zu kompilieren. Durch die Automatisierung eines Großteils der Low-Level-Programmieraufgaben, wie das hinzufügen einzelner Gatteroperationen oder das Qubit-Management, soll das Forschungsgebiet für ein breites Publikum geöffnet werden. Qrisp ist ein Open-Source Projekt bei der Eclipse Foundation, wird hauptsächlich vom Fraunhofer FOKUS entwickelt und durch das Bundesministerium für Wirtschaft und Klimaschutz (BMWK) und die Europäische Union gefördert.

Überblick über das Framework

Die zentrale Datenstruktur für die abstrakte Quantenprogrammierung ist die »QuantumVariable«. Der Lebenszyklus der »QuantumVariable« wird, neben anderen Aspekten, von der Klasse »QuantumSession« gesteuert, die auch für die Interaktion mit der QPU (Quantum processing unit) zuständig ist. Dank eines ausgeklügelten Systems zur Verwaltung von »QuantumSessions« müssen die Nutzerinnen und Nutzer von Qrisp keine »QuantumSession«-Objekte verwenden und entsprechend Qubits selbst verwalten, sondern können direkt die »QuantumVariable« nutzen.

In vielen Fällen sind aber reine »QuantumVariablen« nicht sehr hilfreich, da sie aufgrund ihrer Allgemeinheit nur wenige fortgeschrittene Datenverarbeitungsmöglichkeiten bieten. Man kann sie sich als abstrakte Basisklasse für spezifischere Datentypen vorstellen.

Qrisp bietet fünf fortgeschrittene Quantum-Datentypen:

  1. QuantumFloat: Darstellung und Verarbeitung von Zahlen mit beliebiger Genauigkeit
  2. QuantumModulus: Darstellung und Verarbeitung von modularer Arithmetik
  3. QuantumBool: Darstellung boolescher Werte
  4. QuantumChar: Darstellung von Buchstaben und Schrift-zeichen / Characters
  5. QuantumString: Darstellung von Zeichenketten

»QuantumVariablen« desselben Typs können in der Klasse »QuantumArray« verwaltet werden. Diese Klasse bietet viele praktische und bewährte Funktionen wie »Slicing«, also der einfache Zugriff auf einen bestimmten Teil des Arrays, oder Reshaping, das Anpassen der Größe des Arrays.

Mit dem Konzept der »QuantumEnvironments« ist es möglich, viele der etablierten Methoden der klassischen Programmierung zu nutzen, wie die bedingte Ausführung von Codeblöcken.

Da sich Quantenschaltkreise bei der Implementierung und Forschung zu Quantenalgorithmen etabliert haben, bieten wir mit dem »Circuit-Construction-Modul« eine Möglichkeit zur Konstruktion solcher Quantenschaltkreise. Die Struktur und Benennung der Klassen und Methoden in Qrisp wurden für eine bessere Kompatibilität so weit wie möglich vom bekannten Programmierframework für Quantencomputer »Qiskit« übernommen.

Um eine anwendungsorientierte Algorithmenentwicklung zu gewährleisten, verfügt Qrisp über eine Netzwerkschnittstelle, um Quantenprogramme auf realen (Remote)-Quantenbackends auszuführen. Diese Schnittstelle wurde bereits mit verschiedenen Anbietern wie eleQtron, IQM, AQT und IBM erfolgreich getestet.

Vorteile von Qrisp

Mit Qrisp können sich Programmiererinnen und Programmierer auf die entscheidenden Aspekte ihres Codes konzentrieren und den Arbeitsaufwand für das Management einzelner Qubits und Quantengatter reduzieren. Durch ein ausgeklügeltes Qubit-Management-System werden recycelte Quantenressourcen automatisch über Funktionen hinweg wiederverwendet. So lässt sich Qrisp-Code effektiv modularisieren. Auf diese Weise können Programme in kleinere Module unterteilt werden, die sich dann flexibel einsetzen lassen und nicht immer wieder neu implementiert werden müssen. Kombiniert mit einem Typensystem, welches nahtlos in die Python-Infrastruktur integriert ist, wird die Entwicklung skalierbarer Algorithmen zu einem unkomplizierten Prozess. Qrisp ist einfach zu bedienen und hat einen schnellen, komfortablen Entwicklungsablauf.

Die Thinq Qrisp Community

Mit der Thinq Qrisp Community hat sich im September 2024 eine Community gegründet, die sich zum Ziel gesetzt hat, an neuen Ideen für die Programmierung von Quantencomputern zu arbeiten. Um das zu erreichen sollen die Aktivitäten der Quantum Software Engineering Community gebündelt werden und eine Vernetzung der einzelnen Akteure stattfinden. Im Mittelpunkt steht dabei die Programmiersprache Qrisp. Die Thinq Qrisp Community bietet ihren Mitgliedern neben dem Zugang zu exklusivem Lernmaterial und neuesten Entwicklungen auch die Möglichkeit zur Weiterbildung durch Webinare, den direkten Kontakt zu Qrisp-Entwickler:innen und gemeinsame Events, wie z. B. Netzwerkveranstaltungen und Hackathons.