Gegenwärtig findet ein regelrechter Wettlauf statt, an dem sowohl etablierte Giganten als auch finanzstarke Newcomer mitmachen. Unternehmen wie IBM, Intel, Google, Honeywell, Xanadu, IonQ, Rigetti und Alibaba versuchen, immer leistungsfähigere Quantencomputer zu bauen.
Sie scheinen dazu auch durchaus in der Lage zu sein. Die Quanteninformatik verspricht dramatische Auswirkungen auf zahlreiche Bereiche – von der Cybersicherheit bis zum Finanzwesen, von der Lieferkette bis zur Pharmazie, von der Verteidigung bis zur Wettervorhersage.
Quantencomputer umfassen Qubits (das Quantenäquivalent der klassischen “0 oder 1”-Bits) und Gatter, die diese Qubits verändern. Die Unternehmen konkurrieren auf mehreren Ebenen – Anzahl der Qubits, Art der verfügbaren Gatter, Konnektivität zwischen den Qubits, Fehlerraten, Betriebstemperatur und mehr. Das Tempo des Fortschritts ist geradezu schwindelerregend. IBM beispielsweise bietet eine High-End-Quantenmaschine mit 65 Qubits an und erwartet im nächsten Jahr eine Version mit 433 Qubits und im Jahr 2023 mit über 1.000 Qubits.
Die Hardware ist nur ein Teil des Ganzen
So wichtig die Hardware ist, so unerlässlich ist auch die Software für den Durchbruch einer Quantenrevolution. In der Welt klassischer Computer ist eine moderne CPU ohne ein Betriebssystem und Softwaretools für die Entwicklung von Anwendungen nahezu nutzlos, und wir können davon ausgehen, dass dies auch bei Quantencomputern der Fall sein wird. Ohne leistungsfähige Software wird die Quanteninformatik ihr Versprechen nicht einlösen können.
Derzeit steckt die Entwicklung von Quantensoftware jedoch noch in den Kinderschuhen. Quantenprogrammiersprachen wie Q# von Microsoft, Qiskit von IBM oder Cirq von Google arbeiten in erster Linie auf der Ebene der Gatter oder Bausteine. Wenn ein gewünschter Baustein noch nicht implementiert ist, muss der Anwender die genaue Reihenfolge der Verbindungen zwischen Qubits und Quantengattern festlegen.
Dieser Prozess ähnelt der Erstellung einer digitalen Schaltung durch mühsames Platzieren von logischen UND-, ODER- und NICHT-Gattern. Bei Dutzenden von logischen Gattern funktioniert das einigermaßen gut, aber bei Tausenden oder Millionen von Gattern ist es praktisch unmöglich zu skalieren.
Quantum-Doktoranden als Software-Ingenieure
Die Komplexität beim Schreiben von Quantensoftware hat einen weiteren störenden Nebeneffekt: Es ist schwierig, Quantensoftware-Ingenieure zu finden. Da sich die Quantenprogrammierung von der klassischen Programmierung unterscheidet, sind Quantensoftware-Ingenieure eine seltene Spezies. Sie müssen Experten auf dem Gebiet der Quanteninformationstheorie sein und sowohl die Quantenphysik als auch die lineare Algebra beherrschen.
Heutzutage sind solche Ingenieure in der Regel Absolventen großer Universitäten, die einen Doktortitel besitzen. Menschen mit solchen Qualifikationen sind rar, und die Unternehmen haben Schwierigkeiten, ihre neu geschaffenen Quantengruppen zu besetzen. Darüber hinaus fehlt es den Quanten-Software-Ingenieuren an Fachwissen in den Bereichen Optionspreise, Molekularbiologie, Optimierung der Versorgungskette oder dem Problem, das die Teams zu lösen versuchen. Die Notwendigkeit, neue Algorithmen auf der Gatterebene zu definieren, macht es sehr schwierig, bereichsspezifische Experten in Quantenteams zu integrieren.
Das große Ganze erkennen
Wenn man ein schönes Urlaubsfoto geschossen hat und die Farben des Sonnenuntergangs noch dramatischer gestalten möchte, würde man dies wahrscheinlich nicht Pixel für Pixel tun wollen, vor allem, wenn das Foto Millionen von Pixeln hat. Stattdessen würde man lieber Photoshop oder eine andere Bildbearbeitungssoftware verwenden, mit der die gewünschten Änderungen festgelegt werden können, um dann herauszufinden, wie sie Pixel für Pixel umgesetzt werden können.
Ähnlich verhält es sich, wenn Teammitglieder einen neuen Quantenalgorithmus entwickelt haben und diesen nicht Tor für Tor kodieren – oder debuggen und warten – wollen. Sie benötigen eine hochentwickelte Sprache, um die neuen Konzepte in eine Implementierung auf Gatterebene zu übersetzen.
Wo hat man das schon einmal gesehen?
Eingangs wurde die Analogie zwischen der Quantenprogrammierung und dem Entwurf digitaler Schaltungen hergestellt. Die Entwicklung des Designs digitaler Schaltkreise kann als Inspiration für die Lösung des Quanten-Software-Problems dienen.
Als digitale Schaltkreise immer komplexer wurden (ein Intel 8086-Prozessor hat etwa 20.000 Transistoren, während ein moderner i7 über 4 Milliarden Transistoren hat), kamen Entwurfssprachen wie VHDL zur Hilfe. Mit VHDL, Verilog und ähnlichen Hardware-Beschreibungssprachen schreiben Programmierer menschenlesbaren Code, der beschreibt, was sie erreichen wollen, und lassen dann Computerprogramme diese High-Level-Beschreibung in detaillierte Gatterschaltungen übersetzen.
Diese Sprachen haben es möglich gemacht, wirklich komplexe Schaltungen zu entwerfen und sie effektiv zu debuggen und zu warten. Hochleistungssprachen fördern auch die Wiederverwendung von Code, so dass das Rad nicht jedes Mal neu erfunden werden muss.
Welche Erwartungen sind zu erfüllen?
Ich glaube, dass wir bald einen VHDL-ähnlichen Ansatz für die Quanteninformatik sehen werden. Zwar unterscheiden sich die Sprachkonstrukte für die Quanteninformatik erheblich von denen des Elektronikdesigns, doch das Konzept für diesen “Quantenalgorithmusentwurf” ist dasselbe: Man konzentriert sich auf die Absicht und lässt sie von einem hochentwickelten Computerprogramm in Qubits und Gatter übersetzen. Da es so viel gute Erfahrungswerte mit VHDL gibt, aus denen wir Erkenntnisse gewinnen können, gehe ich davon aus, dass sich das Quantenäquivalent viel schneller und mit viel weniger Unsicherheiten entwickeln wird.
Drei Empfehlungen
Um auf die Quantenrevolution und diese neuen Softwareplattformen vorbereitet zu sein, schlage ich den Unternehmen Folgendes vor:
- Führen Sie ihre Fachleute in die Konzepte des Quantencomputers ein, ohne von ihnen zu verlangen, Low-Level-Programmierung zu lernen.
- Vermeiden Sie es, sich Hals über Kopf in Qubits und Gates zu stürzen. Erstellen Sie zunächst eine für Menschen lesbare Beschreibung dessen, was Ihr Quantenalgorithmus tun muss.
- Suchen Sie weiter auf dem Markt nach Plattformen, die High-Level-Modellierungssprachen in optimierten Low-Level-Quantencode umwandeln können.
Verstärkung in Sicht
Ohne spürbare Fortschritte im Softwarebereich wird die Quanteninformatik ins Stocken geraten. Software für den Entwurf von Quantenalgorithmen wird es nicht nur ermöglichen, anspruchsvollere Algorithmen auf fortschrittlicheren Maschinen zu implementieren, sondern auch den verfügbaren Arbeitskräftepool zu erweitern und Fachleuten auf diesem Gebiet helfen, mit promovierten Quanteningenieuren zusammenzuarbeiten.
Durch die Zusammenarbeit von Hardware, Software und Fachkräften können wir das große Versprechen der Quanteninformatik einlösen.