Dieser Artikel ist inspiriert von dem Bedarf an mehr Softwareentwicklern im Bereich Quantencomputing. Ganz zu schweigen von den anderen Entwicklern, UX-Designern, QA-Testern, Produktmanagern und all den anderen Talenten, die es ermöglichen, ein echtes Produkt an echte Kunden auszuliefern. Insbesondere Produkte in den Bereichen Deep Tech und Frontier Tech wie Quantencomputing.
Diese Produkte und die Teams, die versuchen, sie zu entwickeln, durchlaufen eine lange und anspruchsvolle Reise von der „Wissenschaft über die Technologie und Entwicklung bis hin zum Produkt“ . Dabei handelt es sich um eine Reihe von Phasenwechseln, bei denen es eher um die Entwicklung der Organisation (und der Gemeinschaft) geht als nur um eine lineare Entwicklung bis zur Technologiereife.
Diese Entwicklung passiert nicht einfach so. Diejenigen von uns, die in diesen Teams arbeiten, stehen vor der Herausforderung, die Organisation neu zu erfinden, während sie sich vom akademischen zum technischen Bereich hin zu einem Bereich mit breiterer Marktorientierung wandelt. Das bedeutet, dass wir eine wachsende Gemeinschaft von Talenten finden und mit ihnen zusammenarbeiten sowie unsere eigenen Fähigkeiten kontinuierlich weiterentwickeln und verbessern müssen.
Dies war ein Thema, das ich 2022 in meinem Vortrag „ Open Source – Ihr Weg in eine Karriere als Quantencomputer “ auf dem Open Source Summit der Linux Foundation angesprochen habe. Und in den letzten ein oder zwei Jahren ist es noch weiter gewachsen, mit einer spürbaren Branchenverschiebung hin zu „Quantennutzen“ (ein Begriff, den wir verwenden, um uns auf den Nutzen in der realen Welt statt auf theoretische Überlegenheit zu konzentrieren) und dem Start einiger Großprojekte. Wie zum Beispiel die fast 1 Milliarde Dollar teure Investition der australischen Regierung in PsiQuantum, um in meiner Heimatstadt Brisbane (die ich mit ein wenig Heimweh von hier in Seattle aus vortrage) einen kommerziellen Quantencomputer aufzubauen.
Also ja, es ist eine Menge los. Deshalb ist dies ein sehr guter Zeitpunkt, um zu verstehen, woraus diese Quantensysteme tatsächlich bestehen und wo Ihr Talent und Ihre Neugier hineinpassen. Am Ende habe ich einige Empfehlungen dazu beigefügt, wie Sie sich einbringen können. Und ich sollte kurz anmerken, dass es nicht wirklich ein „Quantencomputer“-Paradigma gibt. Ich habe die gängigsten Elemente der verschiedenen Systeme, an denen wir arbeiten, aus pädagogischen Gründen abstrahiert, freue mich aber über jede Herausforderung oder Widerlegung, während sich dieses Modell im Laufe der Zeit weiterentwickelt.
In vielerlei Hinsicht entspricht der Quantencomputer-Stack dem Muster eines modernen High-Performance-Computing-Stacks (HPC). Und in geringerem Maße wird er jedem vertraut sein, der im Cloud-Computing-Bereich arbeitet. Wir gehen von einer hochrangigen Benutzererfahrung zu einer Art Plattform über, die unsere Arbeitslast übernimmt und sie in etwas umwandelt, das dann auf der Hardware ausgeführt wird. Einfach genug, um es zu verstehen.
Die Nuancen sind viel komplizierter. Zum Beispiel das Verständnis, dass ein Quantencomputer nur so gut ist wie der verwendete Quantenalgorithmus. All das tolle Zeug, das Sie über Superposition und Verschränkung gehört haben, läuft eigentlich nur auf eine Methode hinaus, um einige nützliche Algorithmen zuverlässig auszuführen, die auf Hardwareebene Phase und Interferenz verwenden , um die „Berechnung“ durchzuführen, die eine Wahrscheinlichkeit der richtigen Antwort ausspuckt. Wenn dies häufig geschieht, erhöht sich die Wahrscheinlichkeit der richtigen Antwort. Um dies überhaupt zu tun, sind ein nützlicher Algorithmus und eine zuverlässige Systemimplementierung erforderlich.
Auch die Simulation spielt eine entscheidende Rolle. Sie könnten denken, dass dies mit der „Ersparnis von teuren Hardwarekäufen“ zu tun hat, aber das ist nicht wirklich der Fall (und oft ein Hinweis darauf, dass jemand nur KI verwendet, um seinen Quanten-Clickbait zu schreiben). Wir verlassen uns auf die Simulation, um nicht nur neue und interessante Algorithmen zu entwickeln, sondern auch die verschiedenen Möglichkeiten zum Einrichten einer Arbeitslast zu erkunden. Sie ist auch ein zentraler Bestandteil der Arbeitsabläufe, auf die viele von uns hinarbeiten, wobei ein wirklich hybrides System klassische Computerressourcen zur Bewältigung der Arbeitslast und Planung sowie zur Beschleunigung über GPUs (oder neuere Chips wie TPUs und LPUs ) verwenden und bestimmte Arbeitslasten effektiv an die Quantenverarbeitungseinheit (QPU) übertragen würde, wo ein Quantenalgorithmus für die anstehende Aufgabe nützlich sein könnte. Während sich einige, wie ich, auf die Integration des Quantencomputings in die vorhandene Infrastruktur konzentrieren, widmen sich andere dem Aufbau des leistungsstärksten eigenständigen Quantensystems. Daher das breite Spektrum der Erkundung in der Branche.
Wenn Sie daraus nur mitnehmen, dass ein Quantencomputer ein spezialisiertes System ist, das zusätzlich zum vorhandenen Rechenstapel eine QPU enthält, um spezialisierte Quantenalgorithmen auszuführen, dann ist das ein Gewinn. Keine Katzen, Schlitze oder gruseliges Handgefuchtel erforderlich.
Die folgenden Abschnitte führen von der obersten Benutzerebene über die Plattform bis hin zur Hardwareebene. Obwohl die Grenzen zwischen diesen Ebenen in der Praxis verschwimmen können, folgen wir aus Gründen der Übersichtlichkeit (und Vernunft) einem Modell, das auf einer typischen Arbeitslast oder einem typischen Arbeitsablauf basiert.
Auf der höchsten Ebene des Quantensystems steht der Mensch, der auf der Tastatur herumhämmert. Quantenprogrammiersprachen bieten das hohe Abstraktionsniveau, das zum Erforschen von Quantenalgorithmen und zum Erstellen von Programmen in einer handhabbaren Form erforderlich ist. Die Erfahrung im Umgang mit diesen Sprachen wird durch Software Development Kits (SDKs) erweitert, die die Bibliotheken und Tools bieten, die zum Entwickeln von Quantensoftware erforderlich sind.
Die Unterscheidung zwischen SDKs und Frameworks und integrierten Entwicklungsumgebungen (IDEs) verschwimmt etwas. Dies ist auf die unterschiedlichen Ansätze der Quantenanbieter und die Integration von Plattformen und Produktvertikalen zurückzuführen, die auf bestimmte Endbenutzer zugeschnitten sind. Ein Forscher, der vollständigen lokalen Zugriff und Kontrolle auf Pulsebene wünscht, unterscheidet sich von einem Unternehmensteam, das hybride Workloads entwickelt, und dieses wiederum unterscheidet sich von einem Fintech-Startup, das auf einer Cloud-basierten Quantenplattform aufbaut. Dieses Muster ist in Unternehmens- oder Cloud-basierten Projekten bekannt, wird sich jedoch mit Nuancen weiterentwickeln, wenn der kommerzielle Wert von Quantensystemen deutlicher wird und das Produktdesign beeinflusst. Mittlerweile sind die gängigsten SDKs und die zugehörigen Programmiersprachen wie folgt.
Wenn wir uns weiter nach unten bewegen, kommen wir zu den Algorithmen, die das Herzstück jeder gewünschten Quanten-Workload bilden. Mit der Verbesserung der verschiedenen konkurrierenden Ansätze zur Entwicklung von Quantencomputern verbessern sich auch die Möglichkeiten für reale Anwendungen. Eine Reihe von Softwarebibliotheken und -paketen wird für bestimmte funktionale Anwendungsbereiche entwickelt (wie etwa IBMs Qiskit Machine Learning für Quanten-Maschinenlernen oder Googles OpenFermion für die Quantenchemie), und die vorhandenen Bibliotheken bekannter Quantenalgorithmen werden von Forschern und kommerziellen Anbietern erweitert und optimiert (wie etwa Stephen Jordans Quantum Algorithm Zoo und die Bibliothek von Classiq ).
Einige Quantenalgorithmen haben beinahe schon Berühmtheit erlangt. Andere sind Quantenadaptionen klassischer Algorithmen oder dienen als Bausteine für größere Arbeitslasten. Es gibt sogar einige Quantenalgorithmen, die in der realen Welt funktional nutzlos sind (fügen Sie hier einen Witz über Physiker ein, wenn Sie sich trauen), aber wichtige Beispiele für Quantenvorteile sind. Wenn Sie tiefer in die Materie eintauchen möchten, lesen Sie meinen Beitrag zu Quantenalgorithmen, aber hier sind einige bemerkenswerte Beispiele.
Quantensimulatoren sind Softwaretools, mit denen das Verhalten von Quantensystemen auf klassischen Computern nachgebildet wird. Sie sind ein wesentlicher Bestandteil unseres Arbeitsablaufs bei der Entwicklung von Algorithmen und der Optimierung potenzieller Arbeitslasten (insbesondere bei Simulatoren, die über denselben Satz von Gates oder anderen Elementen der spezifischen Hardware verfügen). Die Rolle der Simulatoren hat sich weiterentwickelt, während sich die Branche selbst von der rein akademischen Forschung zu einem potenziellen kommerziellen Nutzen entwickelt hat. Die Genauigkeit der Simulation für spezifische Quantenhardware hat sich so weit verbessert, dass das einzigartige Rauschen und die Fehler des Systems modelliert werden können. Beachten Sie, dass sich die folgenden Beispiele ändern oder veralten können, wenn Anbieter ( ich denke an Sie, Qiskit 1.0 ) ihre Produktpaletten im Zuge der Weiterentwicklung der Branche iterieren oder rationalisieren.
Bevor wir uns weiter nach unten bewegen, müssen wir eine kleine Randbemerkung zum Thema Quanten-Cloud-Plattformen machen. In der heutigen Zeit gibt es eine Handvoll großer Anbieter, die einige Hardwaresysteme im Einsatz haben. Jeder steht vor der gleichen Frage, ob er versuchen soll, Hardwareeinheiten direkt zu verkaufen, auf seinem eigenen Campus zu hosten, den Zugang über das Internet zu verkaufen oder eine Kombination aus beidem. Und dann kommen noch private Verbindungen, öffentliche Cloud-Anbieter, souveräne Kapazitäten und Forschungslabore hinzu. Es ist nicht selbstverständlich, dass sich das Cloud-Plattform-Modell als das bestimmende Wirtschaftsmodell für das Quantencomputing erweisen wird, obwohl es angesichts der früheren Muster des Cloud-Computings außerhalb des Sektors die größte Aufmerksamkeit genießt.
Achten Sie jedoch auch auf die Unternehmen, die sich dafür entscheiden, ihre Systeme nicht für den Zugriff auf Cloud-Plattformen bereitzustellen. Bei Quantum Brilliance lag mein Schwerpunkt auf hochparallelisierten Edge-Compute-Clustern mit dem Diamond NV-Center-Ansatz, der QPUs mit kleinem Formfaktor und Raumtemperatur ermöglicht (die ersten ). Im Gespräch mit anderen Quanten-Startups scheinen die Anwendungsfälle für alle Formen der festen oder mobilen Bereitstellung zuzutreffen, und es gibt eine Menge interessanter (und oft nicht offengelegter) Arbeiten, die außerhalb des Internets durchgeführt werden. Unter den online verfügbaren sind einige, die Sie sich ansehen sollten.
Die Rolle des Quantencompilers besteht darin, die hochrangigen Quantenprogramme in niedrigrangige Anweisungen zu übersetzen, die auf der Quantenhardware ausgeführt werden sollen. Die Einzelheiten gehen über den Rahmen dieses Artikels hinaus. Der Prozess umfasst die Gatterzerlegung (um die abstrakten Gatter den physischen Qubits zuzuordnen), Mapping und Scheduling (um die logischen Qubits des Algorithmus den physischen Qubits zuzuordnen) sowie Details, die für den Anbieter und sein jeweiliges System spezifisch sind (wie Wiedergabetreue, Fehlerraten und Konnektivität).
Um diesen Beispielstapel zu vereinfachen, werden wir auf dieser Ebene die verschiedenen Formen der Quantenschaltkreisoptimierung einbeziehen, die Techniken anwenden, um die Anzahl der Quantengatter, die Tiefe oder andere Ressourcenelemente zu minimieren, ohne die zugrunde liegende Funktion zu ändern. Dies kann vor der Kompilierung erfolgen, als Teil davon während des Kompilierungsprozesses oder später als Teil einer Feinabstimmung für den Hardwareprozess. Der Übersichtlichkeit halber gruppieren wir es hier innerhalb unseres Workflows. Hier sind einige Beispiele, die Sie beachten sollten.
Die Rolle der Quantenfehlerkorrektur ist im aktuellen Zeitalter „verrauschter“ Quantensysteme besonders wichtig. Es gibt sogar Unternehmen, die sich auf diese Schicht des Stapels spezialisiert haben. Der Bedarf an diesen Unternehmen und den umfassenderen Fehlerkorrekturbemühungen liegt an der fragilen Natur von Quantensystemen. Während supraleitende Quantencomputer die Vorstellungswelt beherrschen, ist die Fehlerkorrektur bei allen Methoden (gefangene Ionen, Photonik, NV-Zentren usw.) von entscheidender Bedeutung.
Unabhängig von der Methode zur Qubit-Generierung ergeben sich Herausforderungen bei der Vorbereitung, der Ausführung der Arbeitslast und der Messung. Dekohärenz betrifft alle Methoden, ebenso wie Gate-Fehler, Messfehler und die Qualität einzelner Qubits. Die Quantenfehlerkorrektur ist verständlicherweise komplex, kann aber Techniken wie Systemredundanz (Verteilung der Quanteninformationen auf mehrere Qubits), Syndrommanagement (Verwendung zusätzlicher Qubits zur Fehlererkennung ohne Störung der codierten Informationen) und Profilierung der Leistung einzelner oder gruppierter Qubits im Zeitverlauf umfassen. Diese werden zwar immer noch wichtig sein, wenn das Zeitalter des wirklich fehlertoleranten Quantencomputings erreicht werden kann, sind aber im gegenwärtigen Zeitalter des Noisy Intermediate-Scale Quantum (NISQ), in dem wir uns befinden, ein spannendes Forschungsthema. Zu den wichtigsten Anbietern und Beispielen gehören die folgenden.
Das Quantenkontrollsystem ist für die Verwaltung und Steuerung der Vorgänge der Quantenhardware verantwortlich. Es übernimmt Aufgaben auf Hardwareebene wie Kalibrierung, Impulsformung und Qubit-Steuerung. Angesichts der verschiedenen Formen des Quantencomputings, die entwickelt werden, und der Bandbreite an Implementierungen monolithischer oder vernetzter Quantensysteme können wir den Begriff „Quantenkontrollsystem“ als inklusiv und nicht als spezifisch betrachten. Ebenso gibt es keine feste Definition eines „Quantenbetriebssystems“.
Dies wird sich wahrscheinlich im Laufe der Zeit ändern, wenn die Entwicklungsphase von der „Wissenschaft zur Technologie“-Phase in die „Entwicklung zum Produkt“-Phase übergeht. Dies gilt insbesondere dort, wo eine engere Angleichung an bestehende Produktmuster und die Terminologie der Benutzer und/oder des Marktes wünschenswert ist. Zum größten Teil wird das Steuerungssystem eine interne Ressource sein (etwas zwischen einem Betriebssystem und einer Firmware), aber die folgenden Anbieter und Produkte sind bemerkenswert.
Die letzte Schicht in unserem Stack ist die Quantenhardware selbst. Es ist nützlich, sich daran zu erinnern, dass es keinen einzigen oder richtigen Weg gibt, Qubits zu erzeugen und mit ihnen zu arbeiten. Es gibt auch keinen klaren marktführenden Ansatz. Jede Methode oder jeder Ansatz hat ihre eigenen Herausforderungen, und es kann sich herausstellen, dass es mehrere Ansätze mit Vorteilen für bestimmte Szenarien gibt.
Viele denken beim Begriff „Quantencomputing“ an die Hardware-Ebene, ähnlich wie die frühen Röhren- und Ventilcomputer die Terminologie und Sprache durch reine Kraft mechanischer Interaktion definierten. Schalter und Lochkarten wurden im Laufe der Zeit durch Anweisungen und Programme ersetzt, die wiederum durch Speicher und Datenspeicher erweitert und dann durch Netzwerke und Server verbunden wurden.
Diese Muster sind in der Forschung und Entwicklung von Quantengeräten vorhanden, und wie wir oben sehen können, bieten die Schichten eines Beispiel-Quantenstapels der vorhandenen Expertise auf jeder Schicht die Möglichkeit, neue und interessante Ideen zu liefern. Hoffentlich auf neue Weisen, die wir angesichts der Nuancen, die jede zugrunde liegende Technologie und Schicht im Stapel bietet, vielleicht nie in Betracht gezogen hätten.
Die Arbeit von Quantenphysikern, Elektro- und Elektronikingenieuren, Atomherstellern und Atommanipulatoren aller Art wird von denen unter uns, die mit den Bits und (Zetta-)Bytes umgehen, nicht nur unterstützt, sondern ermöglicht. Es ist ein guter Zeitpunkt, sich zu engagieren.
Ein guter Einstieg für neue Lernende ist „Black Opal“ von Q-CTRL , der anspruchsvolle MOOC der Universität Delft auf edX und der unvermeidliche Weg zu IBMs Qiskit . Für diejenigen unter Ihnen, die sich eher mit C# auskennen, bietet diese Microsoft-Einführung einen kurzen Überblick über deren Ansatz mit Q# und wie dieser in das Azure-Ökosystem integriert wird. Und die Classiq-Algorithmusbibliothek ist ein Lesezeichen wert.
Ich werde bald einen eigenen Artikel zum Thema Quantenlernen für Softwareentwickler schreiben, da ich seit meinem Vortrag auf dem Open Source Summit (und den seitdem erfolgten Entlassungen von Ingenieurtalenten) fast wöchentlich E-Mails zu diesem Thema bekomme. Zwar ist jeder Branchenwechsel für die Menschen und Familien, die von der kälteren Seite der Wirtschaft betroffen sind, hart, aber er kann auch eine Gelegenheit sein, Talente (und Karrierewege) freizusetzen, die sonst unentdeckt blieben. Wenn Sie also weitere Erkundungen in Erwägung ziehen, tun Sie das bitte und schreiben Sie mir, wenn ich Ihnen irgendwie behilflich sein kann . Und abonnieren Sie unbedingt den Newsletter „Product In Deep“ , in dem wir uns mit der Strategie und dem Handwerk befassen, die für die Auslieferung echter Produkte in den Bereichen Deep Tech und Frontier Technology erforderlich sind.