Quantum Computing - Durchbrechen der 49-Qubit-Simulationsbarriere

Anonim

Quantencomputer stehen an der Schwelle zur Lösung wichtiger Probleme, die mit anderen, klassischeren Mitteln nicht effizient oder praktisch berechnet werden können. Wenn wir diese Schwelle überschreiten, müssen wir zuverlässige Quantencomputer mit 50 oder mehr Qubits bauen, testen und betreiben.

Um dieses Potenzial zu erreichen, sind große Fortschritte in Wissenschaft und Technik erforderlich. Um diese Sprünge zu ermöglichen, werden Methoden benötigt, um Quantengeräte zu testen und beobachtete Verhaltensweisen mit gewünschten Verhaltensweisen zu vergleichen, so dass das Design, die Herstellung und der Betrieb dieser Geräte im Laufe der Zeit verbessert werden können. Um insbesondere zu testen, ob die gemessenen Ergebnisse, die auf einem Quantengerät beobachtet werden, mit dem ausgeführten Quantenschaltkreis übereinstimmen, muss man die erwarteten Quantenamplituden (komplexe Zahlen zur Beschreibung des Verhaltens von Systemen) für diese Ergebnisse berechnen, um sie zu testen willkürliche Schaltungen. Quantenschaltungen können als Sätze von Instruktionen (Gates) betrachtet werden, die an Quantengeräte gesendet werden, um Berechnungen durchzuführen.

Dieser Bedarf hat uns ein Problem bereitet. Bei ungefähr 50 Qubits erfordern existierende Verfahren zum Berechnen von Quantenamplituden entweder zu viel Berechnung, um praktisch zu sein, oder mehr Speicher, als auf irgendeinem existierenden Supercomputer verfügbar ist, oder beides. IBM Research hat dieses Jahr ein Team zusammengestellt, um dieses Problem zu untersuchen, indem er Schaltungen mit kurzer Tiefe für Systeme mit 49 Qubits und darüber hinaus anvisiert. Wir haben unseren Ansatz zur Lösung dieses Problems in arXiv veröffentlicht: arxiv.org/abs/1710.05867.

Ich war Teil dieses Teams und hatte in einem scheinbar belanglosen Moment eine Schlüsselidee.

Visualisierung von Quantengattern als Borstenpinsel

Ein Qubit, oder Quantenbit, ist die grundlegende Informationseinheit im Quantencomputer, genau wie es ein bisschen im klassischen Computing ist. Ein Qubit kann jedoch sowohl 0 als auch 1 gleichzeitig darstellen - und zwar in gewichteten Kombinationen (z. B. 37% -0, 63% -1). Zwei Qubits können vier Werte gleichzeitig darstellen: 00, 01, 10 und 11, wiederum in gewichteten Kombinationen. Gleichermaßen können drei Qubits 2 ^ 3 oder acht Werte gleichzeitig darstellen: 000, 001, 010, 011, 100, 101, 110, 111. Fünfzig Qubits können gleichzeitig über eine Billiarde Werte und 100 Qubits über eine Billiarde Quadrat darstellen.

Wenn Qubits gemessen werden, kollabieren ihre Quantenzustände zu nur einem dieser dargestellten Werte, wobei die Gewichte der Werte - die Quantenamplituden - die Wahrscheinlichkeiten zum Beobachten dieser Werte definieren. Das große Versprechen des Quantencomputers ist die Möglichkeit, parallele Berechnungen über exponentiell viele mögliche Ergebnisse durchzuführen, um Quantenzustände zu erhalten, in denen die gewünschten Ergebnisse von Berechnungen große Amplituden haben und daher mit hoher Wahrscheinlichkeit beobachtet werden, wenn Qubits gemessen werden.

Mein scheinbar folgenloser Moment kam eine Nacht, während ich Geschirr spülte und mit einem Borstenpinsel ein großes Glas putzte. Es kam mir plötzlich in den Sinn, dass, wenn man die in einem Gitterkreis auf ein bestimmtes Qubit angewandten Gatter betrachtet, die Gatter ein Borstenpinselmuster bilden, wobei die Borsten die verwickelnden Gatter sind, die auf dieses Qubit angewendet werden. Mathematisch entspricht dieser "Borstenpinsel" der Tore einem Tensor und die Borsten den Tensorindizes. Ein Tensor in Mathematik entspricht im Wesentlichen einem n-dimensionalen Array in der Informatik.

Diese Einsicht führte sofort zur Idee, einen Gitterkreis für jedes Qubit in einzelne "Borstenpinsel" zu zerlegen, dann die entsprechenden Tensoren zu berechnen und schließlich die Tensoren für jedes Qubit zu kombinieren, um die Quantenamplituden für die Gesamtschaltung zu berechnen. Am nächsten Morgen hatte ich herausgefunden, wie man Amplituden für eine 64-Qubit-Tiefenschaltung mit nur einem Gigabyte Speicher berechnet, indem Gruppen von 16 Qubits auseinander gezogen werden. Von da an entwickelte sich die Idee zu allgemeineren Möglichkeiten, Schaltkreise in Teilschaltungen zu unterteilen, Teilschaltungen getrennt zu simulieren und die Ergebnisse von Teilschaltungen in verschiedenen Ordnungen zu kombinieren, um gewünschte Amplituden zu berechnen.

Das Endergebnis ist ein Verfahren zum Berechnen von Quantenamplituden, das um Größenordnungen weniger Speicher als frühere Verfahren benötigt, während es immer noch mit den besten dieser Verfahren vergleichbar ist, und zwar hinsichtlich des Betrags der pro Amplitude durchgeführten Berechnung. Diese kleineren Speicheranforderungen werden durch Tensor Slicing in Kombination mit den oben genannten Erkenntnissen zur Berechnung von Ausgangsamplituden von Schaltungen in Schichten erreicht, ohne dass alle Amplituden auf einmal berechnet und / oder gespeichert werden müssen.

Bei der Berechnung der Amplituden für die gemessenen Ergebnisse müssen nur die Schichten berechnet werden, die den tatsächlich gemessenen Ergebnissen entsprechen. Mit anderen Worten, für den Zweck der Bewertung der Leistung eines Quantengeräts basierend auf gemessenen Ergebnissen ist eine vollständige Simulation nicht notwendig und es müssen keine Berechnungskosten entstehen, die exponentiell in der Anzahl von Qubits sind. Dies ist ein wichtiger Vorteil unseres Ansatzes.

Wenn man jedoch tatsächlich daran interessiert ist, vollständige Simulationen durchzuführen, hat unsere Slicing-Methode einen weiteren Vorteil darin, dass Slices völlig unabhängig in einer peinlich parallelen Weise berechnet werden können - was bedeutet, dass sie leicht getrennt werden können - wodurch Berechnungen über ein Netzwerk verteilt werden können lose gekoppelte Hochleistungsrechenressourcen. Diese Möglichkeit ändert die Wirtschaftlichkeit vollständiger Simulationen völlig und ermöglicht die Simulation von Quantenschaltungen, von denen vorher angenommen wurde, dass sie nicht simuliert werden können.

Simulieren von 49 und 56 Qubit-Schaltungen mit einem Supercomputer

Unser Forschungsteam wandte sich an das Lawrence Livermore National Laboratory (LLNL) und die Universität von Illinois, um diese Möglichkeit in die Realität umzusetzen. Unter Verwendung des Vulcan-Supercomputers am LLNL und des Cyclops Tensor Frameworks, das ursprünglich an der Universität von Kalifornien in Berkeley entwickelt wurde, um die Tensormanipulationen durchzuführen, haben wir zunächst einen 49-Qubit-Universal-Zufallsschaltkreis der Tiefe 27 simuliert sogenannte Quantenhoheit. Für diese Simulation wurden die Berechnungen in 2 ^ 11 Scheiben mit 2 ^ 38 Amplituden unterteilt, die pro Scheibe berechnet wurden; 4, 5 Terabyte wurden benötigt, um die Tensorwerte zu halten. Die Slice-Berechnungen wurden in peinlicher Weise über sechs Gruppen von vier Racks von Prozessoren hinweg parallelisiert, wobei jede Gruppe von vier Racks 4.096 Verarbeitungsknoten mit insgesamt 64 Terabyte Speicher aufwies. Von solchen 49-Qubit-Schaltungen wurde bisher angenommen, dass sie unmöglich zu simulieren sind, weil frühere Verfahren acht Petabyte Speicher benötigt hätten, was die Kapazität existierender Supercomputer übersteigt.

Für unsere nächste Demonstration wählten wir eine 56-Qubit-Universal-Zufallsschaltung der Tiefe 23 aus, die mit den bisherigen Methoden unmöglich hätte simuliert werden können, weil ein Exabyte an Speicher benötigt worden wäre. Die Berechnungen wurden in 2 ^ 19 Scheiben mit jeweils 2 ^ 37 Amplituden unterteilt. Aber in diesem Fall haben wir uns entschieden, Amplituden für nur eine willkürlich ausgewählte Scheibe zu Demonstrationszwecken zu berechnen; 3, 0 Terabyte wurden benötigt, um Tensorwerte zu halten, und Berechnungen wurden an zwei Racks mit 2.048 Verarbeitungsknoten mit insgesamt 32 Terabyte Speicher durchgeführt.

Zusätzlich zu diesen Demonstrationen haben wir auch Wege gefunden, die 49-Qubit-Schaltung zu partitionieren, so dass nur 96 Gigabyte Speicher für ihre Simulation benötigt werden, mit nur etwas mehr als dem Doppelten der Rechenanforderungen. Wir haben auch eine Partitionierung entdeckt, die 162 Gigabyte benötigt, für die die Rechenanforderungen kaum erhöht werden. Es besteht daher die Möglichkeit, diese Simulationen nun auf Clustern von High-End-Servern durchzuführen, anstatt Supercomputer zu verwenden.

Fortschritte in der Simulation werden Fortschritte in der Quantenhardware ermöglichen

Obwohl das volle Ausmaß dessen, was heute mit unseren Methoden klassisch berechenbar ist, noch zu bestimmen ist, ist es klar, dass dieser Fortschritt es uns ermöglicht hat, eine Schwelle in der Simulation von Quantentrassen mit kurzer Tiefe von 49 Qbits und größer zu überschreiten. Pragmatisch werden die Methoden das Testen und Verstehen des Betriebs von physikalischen Geräten erleichtern. Sie werden auch die Entwicklung und das Debuggen von Algorithmen mit kurzer Tiefe für Probleme erleichtern, bei denen das Quantencomputing das Potential hat, einen echten Vorteil gegenüber herkömmlichen Ansätzen zu bieten.

Zumindest für Quantengeräte, die derzeit entwickelt werden oder auf den Zeichenbrettern, ist die Fähigkeit, diese Simulationen durchzuführen, nun eine Frage der Menge an Rechenressource, die ökonomisch beschafft werden kann, und nicht, ob die Simulationen physikalisch überhaupt durchgeführt werden können. Zum Beispiel wurde im Falle unserer 56-Qubit-Simulation keine vollständige Simulation durchgeführt, nur weil unsere Zeitaufteilung auf Vulcan abgelaufen war. Es besteht keine Frage, dass eine vollständige 56-Qubit-Schaltungssimulation mit kurzer Tiefe jetzt physikalisch durchgeführt werden kann. Die Laufzeiten dieser Simulationen sind auch nicht durch die Ressourcen beschränkt, die auf isolierten Computersystemen verfügbar sind. Da Slice-Berechnungen in peinlicher Weise parallelisiert werden können, können sie über Netzwerke von lose gekoppelten Systemen mit minimaler Kommunikation verteilt werden, was eine starke Skalierbarkeit bis zur Anzahl der Slices ermöglicht. Die Cloud-basierte Quantensimulation kann letztendlich die Simulation relativ großer Quantenschaltungen erlauben.

Bedeutet das, dass wir keine echten Quantencomputer brauchen? Ganz und gar nicht. Wir werden sie unbedingt brauchen! Abhängig von der speziellen Art der Anwendung werden wir physikalische Quantencomputer benötigen, um Berechnungen durchzuführen, die entweder zu viel Speicher oder zu viel Verarbeitungsleistung benötigen, um auf klassischen Computern wirtschaftlich ausgeführt zu werden. Und irgendwann werden wir wirklich Beweise dafür haben, dass Quantencomputer für einige praktische Anwendungen einen Vorteil gegenüber klassischen Computern haben, in einem sehr realen Sinn.

Dies ist keine künstliche Vorstellung von "Quantenhoheit". Wir sind jetzt in einer Phase, in der wir quantenbereit sind, um die von uns online gestellten Quantenhardware-, Software- und Engineering-Fähigkeiten voll auszunutzen. Die Simulation ist bereits ein wesentlicher Bestandteil dieser quantenbereiten Phase.

IBM hat den Zugriff auf Simulatoren und die tatsächliche Hardware mit fünf und 16 Qubits als Teil der IBM Q Experience ermöglicht, die Ressourcen zum Lernen und Experimentieren bietet. Wir haben auch ein Quantum SDK, oder Quantum Informationssoftware Kit (QISKit), um den Aufbau von Schaltungen zu vereinfachen. Um mehr über den Einstieg zu erfahren, haben wir Jupyter Notebook-Beispiele auf github zur Verfügung gestellt.

Mit dem Fortschreiten der Gerätetechnologie werden wir in eine Zeit des Quantenvorteils eintreten, in der eine breite Palette von Unternehmen, Wissenschaftlern und Ingenieuren die Hardware und die Leistungsfähigkeit des Quantencomputers voll ausschöpfen wird, um immer schwierigere und komplexere Probleme zu lösen. Während dieser Quantenvorteilsphase werden erweiterte Simulationsfähigkeiten benötigt, um sowohl die Forschung und Entwicklung neuer Quantenalgorithmen als auch die Weiterentwicklung der Gerätetechnologie selbst zu unterstützen.

menu
menu