Ein bisschen noch wie Lochkartenprogrammierung Quantensoftware auf dem Sprung zum echten Problemlöser

Ein Gastbeitrag von Yuval Boger*

Anbieter zum Thema

Ohne die richtige Software ist selbst der beste Quantencomputer nutzlos. Wie sieht eine solche Quantensoftware also aus?

Classiq entwirft Quantensoftware für eine höheren Ebene als die, die jetzt gebräuchlich. Die hauseigene Plattform hilft bei der Entwicklung komplexer, optimierter und hardwaregerechter Quantenschaltungen und -algorithmen, die auf andere Weise nicht erstellt werden könnten.
Classiq entwirft Quantensoftware für eine höheren Ebene als die, die jetzt gebräuchlich. Die hauseigene Plattform hilft bei der Entwicklung komplexer, optimierter und hardwaregerechter Quantenschaltungen und -algorithmen, die auf andere Weise nicht erstellt werden könnten.
(Bild: Classiq)

Im Bereich der Datenverarbeitung sind Quantencomputer die nächste, große Revolution. Sie allein sind in der Lage, Probleme zu lösen, die klassische Computer nicht lösen können – weder heute noch in Zukunft. Quantencomputer hingegen haben das Potenzial, nahezu jede erdenkliche Branche mit all ihren unterschiedlichen Geschäftsbereichen zu verändern, dazu zählt das Entdecken neuer Materialien, ebenso wie das neuer Arzneimittel, die Optimierung von Lieferketten, Portfolios, Verkehr, maschinelles Lernen und und und. Angesichts dieser Fülle an Möglichkeiten ist es kein Wunder, dass Tech-Giganten wie IBM, Google und Microsoft massiv in Quantenhardware investieren.

Und sie sind mit diesem Bestreben nicht allein. Gartner prognostiziert, dass bis 2023 sogar jedes fünfte Unternehmen Quantencomputerprojekte einplanen wird.

Doch die Hardware allein ist nicht das Einzige, was zählt, um aus großen Datenmengen revolutionäre Erkenntnisse gewinnen zu können.

Quantencomputing zwischen Wunsch und Wirklichkeit

Einerseits ist das Schreiben von Software, die auf Quantencomputern zum Einsatz kommen kann, ein bisschen wie Elektronikdesign, andererseits ein wenig wie Assembler. Bei Letzterer handelt es sich um eine Programmiersprache, die eine 1:1-Beziehung zur Hardware hat. Das bedeutet, dass ein Befehl in der Regel mit einer Maschinenanweisung gleichzusetzen ist.

Um ein Quantenprogramm zu erstellen, legt man fest, welche Quantenbits, die auch als „Qubits“ bezeichnet und durch Drähte dargestellt werden, mit welchen Maschinenbefehlen oder „Gattern“, dargestellt durch quadratische Blöcke, verbunden werden. Dieses Quantenschaltungsdesign wird dann in Quanten-Assemblersprache geschrieben und zur Verarbeitung an den Quantencomputer gesendet. Dieser Prozess der Programmierung von Quantencomputern ähnelt sehr der Lochkartenprogrammierung, die in den 1960er Jahren Anwendung fand.

Doch es gibt ein entscheidendes Problem: Mithilfe heutiger Quantencomputer mit 10er-Qubits lassen sich zwar einfache Programme erstellen. Um reale Probleme lösen zu können, werden jedoch größere Quantenschaltungen benötigt.

Eine Lochkarte
Eine Lochkarte
(Bild: / CC BY 4.0)

Wie bei klassischen Computern wird die derzeitige Art der „Lochkarten“-Programmierung künftige Hardware nicht mehr unterstützen können. Während die meisten Quantenprogrammierer Software für ein 5-Qubit-System in einem Tag oder für einen 50-Qubit-Quantencomputer in einer Woche erstellen können, wird die Erstellung von Software für künftige 1.000-Qubit-Quantencomputer mit den derzeitigen Methoden Monate dauern.

Es ist also schnell ersichtlich, dass es mit den Entwicklungsmethoden, die aktuell zur Verfügung stehen, unmöglich ist, Quantenschaltungen zu entwerfen, zu debuggen und zu warten, sobald die Anzahl der Qubits und Gatter steigt. Glücklicherweise arbeiten Hersteller wie IBM mit Hochdruck daran, genau diese Herausforderung zu überwinden:

Der Entwicklungsplan des Konzerns sieht vor, bereits 2023 ein System mit 1.000 und 2025 ein weiteres mit 4.000 Qubits auf den Markt zu bringen. Mithilfe von Hardware wie dieser wird es endlich möglich sein, Probleme mit einem realen Geschäftswert zu lösen.

Einführung neuer Programmiersprachen wird notwendig

Trotz des angekündigten Entwicklungsfortschritts, eine Frage bleibt: Wie soll für so viele Qubits programmiert werden, wenn die neue Hardware verfügbar ist?

Um der Beantwortung dieser Frage auf den Grund zu gehen, lohnt es sich, erneut einen Blick in die Vergangenheit klassischer Computer zu werfen: Um mit den Fortschritten der Hardware Schritt zu halten und die Entwicklung komplexerer Software zu ermöglichen, ging man hier nämlich von einfachen Assembler- zu höheren Programmiersprachen wie C, Java und Python über. Die Programmierer konnten dadurch ihre Software anhand von High-Level-Modellen definieren, anstatt auf einfacher Gatterebene zu programmieren. Im Bereich der Quantensoftware braucht es deshalb jetzt denselben Schritt – auch hier muss man sich mittelfristig von der simplen Assembler-Programmierung zur modellbasierten Programmierung auf höherer Ebene weiterentwickeln.

Die gute Nachricht ist: Schon heute stehen Technologien zur Verfügung, welche die Entwicklung von Quantensoftware auf höherer Ebene ermöglichen. Anstelle endloser Low-Level-Codierung bietet sie Programmierern die Chance, funktionale Modellierungen auf hoher Ebene durchzuführen und automatisch die zugehörigen Quantenschaltungen zu generieren.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu RZ- und Server-Technik

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Eine höhere Programmiersprache für das Quantencomputing

Die Funktionsweise ist ganz einfach: Die Benutzer geben ein High-Level-Modell ein, das beschreibt, was die Schaltung tun soll. Anschließend werden automatisch Millionen von Optionen untersucht, um die beste Lösung für die Implementierung dieser Schaltung zu finden. Zuletzt wird ebenso automatisch ein Quantencode generiert, der sich auf jedem beliebigen Quantencomputer ausführen lässt.

Auf jedem? Jein, denn nicht alle Quantencomputer sind gleich. Einige haben mehr Qubits als andere, manche können längere Schaltungen ausführen, wieder andere verwenden eine abweichende Anzahl von Gattern.

Um dieses Problem zu umgehen und Software zu schreiben, die nicht nur auf einem bestimmten Quantencomputer funktioniert, ist es wichtig, dass die Programmierer bereits im Vorfeld ihre „Einschränkungen“, also die Zahl der Qubits, die gewünschte Genauigkeit und so weiter, angeben können. Denn nur so ist es möglich, sicherzustellen, dass die genannten Faktoren beim Design und der Optimierung der Quantenprogramme berücksichtigt wird und diese sicher laufen.

Mehr Leistung für eine realitätsnahe Problemlösung

Die Beseitigung vieler der mit der Quantenprogrammierung verbundenen Probleme bedeutet auch, dass Quantenteams zukünftig Personen umfassen können, die keine ausgewiesenen Experten in diesem Bereich sind. So können Fachleute aus anderen Abteilungen wie Finanzen, Fertigung und Pharmazie mit Entwicklungsteams zusammenarbeiten, um Quantensoftware auf einer höheren Ebene zu entwerfen und groß angelegte Schaltkreise zu erstellen, die echte Probleme lösen.

*Der Autor: Yuval Boger

Yuval Boger

ist Chief Quantum Evangelist bei
Classiq

.

Bildquelle: Classiq

Artikelfiles und Artikellinks

(ID:48527265)