Donnerstag, 25. April 2024

Archiv

Neue Computertechnik
Quantencomputer verlangen ganz neue Programmier-Konzepte

Quantencomputer sind nicht gerade ideal, um Additionen durchzuführen. Sie werden sich aber Themen widmen können, die grundsätzlich mit Wahrscheinlichkeiten zu tun haben: Klimasimulationen, Simulation von genetischen Prozessen, Elementarteilchen, Künstlicher Intelligenz. Wo steht ihre Forschung heute?

Von Maximilian Schönherr | 13.06.2020
Leider liegt für dieses Bild keine Bildbeschreibung vor
Beim Quantencomputer genügen nur wenige Qubits, um komplexe Rechnungen durchzuführen (IBM Research)
Manfred Kloiber: Quantencomputer sind en vogue. Schon allein deswegen, weil die gängige Computertechnik in die Jahre gekommen ist und an ihre Grenzen stößt. Sie beruht auf Schaltern, die in Form von Transistoren Millionenfach auf einem fingernagelkleinen Chip untergebracht werden. Dichter kann man sie nicht mehr packen. Schneller kann man sie nur noch mit hohem Kühlaufwand takten. Deswegen haben heutige PCs mehr Kerne, aber die Kerne selbst sehen aus, wie die Prozessoren vor fünf oder zehn Jahren. Ist der Quantencomputer ein Befreiungsschlag, Maximilian Schönherr?
Maximilian Schönherr: Er ist die einzige Alternative weit und breit. Aber er ist noch lange nicht so weit, rein technisch. Und er ist von Programmierern noch nicht gut verstanden. Das heißt nicht, dass Programmierer zu doof sind, mit Quanten umzugehen. Es fordert nur ein komplettes Umdenken. Null und Eins ist schon abstrakt genug, aber das hat man seit 50 Jahren verinnerlicht. Das Bit beim Quantencomputer heißt Qubit und entfaltet seine Stärke dann, wenn es genau nicht Null oder Eins ist, sondern mit einer bestimmten Wahrscheinlichkeit irgendwo dazwischen.
Kloiber: Bevor wir über diesen Paradigmenwechsel sprechen, sehen wir uns den aktuellen Stand der Quantencomputer-Forschung an.

Schon die Bits konnte man auf verschiedene Weise realisieren, etwa in Form von Elektronenröhren. Bei den Qubits ist es ähnlich. Harald Weinfurter, Professor für Physik an der Ludwig-Maximilians-Universität München und Experte für Quantennetzwerke, beschreibt die drei gängigen Modelle:
"Wenn Sie zum Beispiel einzelne Ionen oder Atome verwenden, dann wird das [Quibit] mit Laserlicht gemacht. Bei supraleitenden Qubits, wie sie jetzt von Google oder IBM propagiert werden, wird das mit Radiofrequenzwellen gemacht. Dann gibt es noch einen dritten, meiner Meinung nach sehr vielversprechenden Zugang mit Halbleiter-Qubits. Das sind Defekte, dotierte Atome in zum Beispiel Silizium. Dort wird es dann entweder über Radiofrequenz oder elektrische Spannungen gemacht."
Dass die Institute, wie auch das in München, mit nur einer Handvoll Qubits arbeiten, hängt mit dem komplexen Versuchsaufbau zusammen: Supraleitende Qubits benötigten Kühlung nah am absoluten Nullpunkt. Außerdem sind sie sensibel.
"Wir müssen die Qubits im Experiment erst unter Kontrolle bringen. Es gibt sehr viele Probleme mit den Qubits. Das eine ist die Kohärenzzeit – wie lange bleibt ein Qubit ein Qubit und wird nicht dann doch wieder zum klassischen Bit? Und das zweite ist, wie gut es manipuliert werden kann. Das heißt, die Operationen, die man auf dem Qubit durchführen will, müssen natürlich eine bestimmte Qualität haben. Da darf kein Rauschen dazu kommen, denn das würde diese Operationen und die Rechnung stören."
Der Prozessor eines klassischen PCs hat über eine Milliarde Transistoren. Beim Quantencomputer genügen nur wenige Qubits, um komplexe Rechnungen durchzuführen. Ein Quantencomputer mit 30 Qubits hängt bei vielen Problemen heutige Supercomputer ab.
Wahrscheinlichkeit bedeutet nicht: Ungenauigkeit
Das liegt im Prinzip daran, dass das Qubit nicht wie das Bit auf Null und Eins beschränkt ist, sondern mit Wahrscheinlichkeiten arbeitet, also beliebige Werte zwischen Null und Eins einnehmen kann. In der Quantentheorie heißt das: Überlagerung von zwei Zuständen. Beispiel: Der Spin dreht ein Elektron in die eine oder in die andere Richtung, aber wir können immer nur eine Wahrscheinlichkeit über diese Richtung angeben. Wahrscheinlichkeit bedeutet nicht: Ungenauigkeit.
"Wenn ich ein Qubit zuerst in Eins präpariere, und es lebt lange genug, und ich beobachte es erneut, dann wird es noch immer in Eins sein. Die quantenmechanischen Messungen sind nicht notwendigerweise unscharf. Im Gegenteil: Wenn ein Experiment eine bestimmte Wahrscheinlichkeit für ein bestimmtes Ergebnis hat, dann werde ich das eben mit der entsprechenden Wahrscheinlichkeit beobachten, und das Ergebnis, das auf einem Quantencomputer ausgerechnet wird, diese Algorithmen geben Ihnen Ihr Ergebnis mit einer sehr sehr hohen Wahrscheinlichkeit."
Gängige Computer hat man lange mit Maschinencode programmiert, bis dann so genannte Compiler aufkamen, die Code von einer höheren Programmiersprache automatisch in Maschinencode übersetzten. Harald Weinfurter beschreibt die Lage beim Quantencomputer:
"Es arbeitet eine Reihe von Gruppen daran, sozusagen diesen Compiler zu bauen. Wir haben irgendeine höhere Programmiersprache mit Zuweisungen, Schleifen, Abfragen usw. Um das Weitere brauchen wir uns nicht mehr zu kümmern. Wenn wir einen klassischen Computer programmieren, wird das Gleiche auch für den Quantencomputer existieren."

Kloiber: Die Compiler werden also gebaut, sie sind aber noch nicht fertig?
Schönherr: Ja, das wird noch dauern. Und im Moment schlagen sich die an Quantencomputern interessierten Programmierer mit tatsächlich neuen Terminologien herum. Zum Beispiel lernt man seit ungefähr 50 Jahren im ersten Semester Informatik das UND-Gatter. Das hat zwei Eingänge und einen Ausgang. Wenn in beide Eingänge Einsen hineinfließen, kommt vorn eine Eins heraus, in allen anderen Kombinationen aber eine Null. Das kann man mit wenigen Strichen auf ein Papier kritzeln. Bei Qubits gibt es so ein logisches "Gatter" schon allein deswegen nicht, weil die Quanten aus Prinzip nichts vergessen können. Mit der Folge, dass alle Vorgänge (man nennt sie Zustandsübergänge, im klassischen Computer würde man von Schaltern sprechen) umkehrbar sein müssen. Zwei Eingänge und nur ein Ausgang wie beim UND-Gatter geht also nicht.
Kloiber: Und auf Papier kann man ein Qubit auch nicht mit ein paar Strichen aufmalen?
Quantenschaltung schaltet nicht, sondern "macht eine Evolution durch"
Schönherr: Höchstens als Vektoren. Und mathematisch in Matrizenform. Auf diesem abstrakten Niveau wird man letztendlich den Quantencomputer nicht programmieren, aber es ist schwer, von gewohnten hohen Programmiersprachen mit ihren Klassen und Variablen, die man definiert, zu dieser auf Wahrscheinlichkeiten und der Umkehrbarkeit basierenden Beschreibung zu kommen.
Eine Quantenschaltung schaltet nicht, sondern sie "macht eine Evolution durch". Es gibt "Identitätsmatrizen", die nichts anderes tun, als ein Qubit unverändert zu lassen. So etwas wäre beim klassischen Programmieren lästig, beim Quantencomputer braucht man es aber wegen der Umkehrbarkeit. Ein Qubit ist im Normalbetrieb seltenst Null oder Eins, sondern es ist gleichzeitig Null und Eins. Auch dafür gibt es eine eigene Sprachregelung: Ket 0 und Ket 1. Ein Qubit hält idealerweise seinen Quantenzustand, zum Beispiel Ket 0,44875329, kommuniziert das mit benachbarten Qubits – bis der Wert dann gemessen wird und auf Ket 0 oder Ket 1 kollabiert.
Kloiber: Wenn man sich mit diesem Quanten-Weltbild angefreundet hat, wie geht es dann weiter?
Schönherr: Man wird schnell merken, dass Quantencomputer nicht gerade ideal dafür sind, Additionen durchzuführen. Das macht der gängige PC viel schmerzloser, und perfekt. Der Programmierer wird sich stattdessen Themen widmen, die grundsätzlich mit Wahrscheinlichkeiten zu tun haben. Klimasimulationen, Simulation von genetischen Prozessen. Elementarteilchen. Auch alles, was mit Künstlicher Intelligenz zu tun hat, dürfte mit stabil laufenden Quantencomputern mit nur sage wir mal 20 Qubits schneller zu Ergebnissen führen. Der Klassiker ist das Traveling Salesman-Problem. Da geht es darum, eine optimale Navigation zu finden.
Kloiber: Das tun die gängigen Navigationssysteme doch perfekt!
Schönherr: Aber nicht, wenn der Vertreter 800 Orte auf optimale Weise abklappern muss – und keinen zweimal besuchen darf. Mit jedem zusätzlichen Ort steigt die Rechenzeit klassischer Computer exponentiell an.
Kloiber: Wie rechnet man so etwas dann auf einem Quantencomputer?
Schönherr: Am besten auf einem Quantencomputer. Den man sich natürlich nicht auf den Schreibtisch stellen kann. Aber viele Labore, auch das von Harald Weinfurter in München, haben Quantencomputer mit einigen wenigen Qubits. Bei Firmen wie Google, Rigetti und IBM, Microsoft kann man seine eigenen Quanten-Programme laufen lassen, in vielen Fällen kostenlos. Es gibt dafür einige Ansätze höherer Programmiersprachen wie Python. Das fühlt sich dann an wie klassisches Cloud-Computing, aber auf der anderen Seite stehen eben keine hoch getakteten Transistortürme, sondern ein paar wenige tief gekühlte Elementarteilchen.