Skip to main content
IBM Quantum Platform

Qiskit 0.36 Versionshinweise


0.36.2

Terra- 0.20.2

Vorspiel

Qiskit Terra 0.20.2 ist eine Bugfix-Version, die einige kleinere Probleme behebt, die seit der letzten Patch-Version aufgetreten sind.

Fehlerkorrekturen

  • Ein Problem wurde behoben mit BackendV2-basierenden Fake-Backend-Klassen aus dem Modul qiskit.providers.fake_provider wie FakeMontrealV2, bei denen die Werte für die dtm und dt attribute und das zugehörige Attribut Target.dt nicht korrekt in Sekunden umgewandelt wurden. Dies würde zu Problemen bei der Verwendung dieser gefälschten Backends mit der Zeitplanung führen. Siehe #8018.

  • marginal_counts() wird nun erfolgreich sein, wenn er aufgefordert wird, Speicher mit einem indices Parameter zu marginalisieren, der Elemente ungleich Null enthält. Zuvor konnten Schüsse, deren hexadezimale Ergebnisdarstellung hinreichend klein war, eine ValueError auslösen. Siehe #8044.

  • Der OpenQASM 3 Exporter (qiskit.qasm3) gibt nun input oder output vor den Gate-Deklarationen aus. Dies entspricht eher der aktuellen ANTLR-Referenzgrammatik des OpenQASM 3-Teams. Siehe #7964.

  • Es wurde ein Fehler im RZXCalibrationBuilder transpiler-Durchgang, bei dem die skalierte Kreuzresonanz-Impulsamplitude auch nach der Zuweisung parametrisiert erscheinen konnte. Dies könnte dazu führen, dass die Pulsvisualisierungstools das parametrisierte Format anstelle des erwarteten numerischen Formats verwenden. Siehe #8031.

  • Es wurde ein Problem mit der transpile() funktion, wenn diese mit einem BackendV2-basierten Backend und dem Schlüsselwortargument scheduling_method ausgeführt wird. Bisher hat die Funktion die Standarddauer der vom Backend unterstützten Anweisungen nicht korrekt verarbeitet, was zu einem Fehler führte.

  • Es wurde ein Fehler im RZXCalibrationBuilder transpiler-Durchgang behoben, der dazu führte, dass Impulse manchmal mit falschen Dauern konstruiert wurden. Siehe #7994.

  • Der SabreSwap transpiler-Pass, der in transpile() verwendet wird, wenn routing_method="sabre" gesetzt ist, lässt während der Routing-Phase der Transpilierung nicht mehr sporadisch klassisch konditionierte Gatter und ihre Nachfolger aus Schaltungen fallen. Siehe #8040.

  • Statevector erlaubt nun die direkte Iteration durch seine Werte (wie for coefficient in statevector) und meldet seine Länge korrekt unter len. Zuvor wurde versucht, auf Daten außerhalb des zulässigen Bereichs zuzugreifen, und es wurde ein QiskitError. Siehe #8039.

Aer- 0.10.4

Keine Änderung

Ignis- 0.7.1

Vorspiel

Dies ist eine Bugfix-Veröffentlichung, die in erster Linie ein Paketierungsproblem behebt, das dazu führte, dass das Verzeichnis docs/ , das die zur Erstellung der qiskit-ignis-Dokumentation verwendeten Quelldateien enthält, in das Paket Python aufgenommen wurde.

IBM Q Anbieter 0.19.1

Keine Änderung


0.36.1

Terra- 0.20.1

Vorspiel

Qiskit Terra 0.20.1 ist eine Fehlerbehebungsversion, die Probleme aus der Version 0.20.0 behebt.

Bekannte Probleme

  • QPY-Deserialisierung mit der qpy.load() funktion eines direkt instanziierten UCPauliRotGate objekts in einem Schaltkreis scheitert, weil das Argument der Rotationsachse in der Klasse nicht an einem Standardort gespeichert ist. Um dieses Problem zu umgehen, können Sie stattdessen die Unterklassen verwenden: UCRXGate, UCRYGate, oder UCRZGate (je nachdem, ob Sie eine Drehachse von "X", "Y" oder "Z" verwenden), die die Drehachse in den Klassenkonstruktor einbettet und in QPY korrekt funktioniert.

  • Seit seiner ursprünglichen Einführung in Qiskit Terra 0.20, XXPlusYYGate im Vergleich zu allen anderen Rotationstoren eine negative Winkelkonvention verwendet. In Qiskit Terra 0.21 wird dies korrigiert, damit es mit den anderen Rotationstoren übereinstimmt. Dies wirkt sich nicht auf andere Rotationstore aus, noch XXMinusYYGate.

Fehlerkorrekturen

  • Festgelegt Clifford, Pauli und CNOTDihedral operatorinitialisierung von kompatiblen Schaltungen, die Delay anweisungen enthalten. Diese Anweisungen werden bei der Umwandlung in Operatoren als Identitäten behandelt.

  • Ein Problem wurde behoben, bei dem die eval_observables() funktion einen Fehler auslöste, wenn ihr quantum_state Argument vom Typ StateFn war. eval_observables unterstützt nun korrekt alle Eingabetypen, die in den Typ-Hinweisen angegeben sind.

  • Ein Problem mit der Visualisierungsfunktion wurde behoben dag_drawer() und Methode DAGCircuit.draw() wo früher die Schublade fehlschlug, wenn versucht wurde, eine Visualisierung für ein DAGCircuit objekt zu erzeugen, das ein Qubit oder Clbit enthielt, das nicht Teil eines QuantumRegister oder ClassicalRegister war. Behoben #7915.

  • Die Parametervalidierung für die Klasse Drag wurde korrigiert. Zuvor war es unempfindlich gegenüber großen Beta-Werten mit negativem Vorzeichen, was zu Wellenformabtastungen mit einem Maximalwert führen konnte, der die Amplitudengrenze von 1.0 überschritt.

  • Die QuantumInstance klasse, die von vielen Algorithmen (z. B. VQE) verwendet wird, kodiert den Wert für einen Ruhezustand fest, während sie in einer Schleife auf die Aktualisierung des Auftragsstatus wartet. Er respektiert nun den konfigurierten Schlafwert, wie er im Attribut wait im Initialisierer von QuantumInstance.

  • Es wurde ein Problem mit der Funktion schedule funktion behoben, bei der Aufrufer, die eine list von QuantumCircuit objekte mit einem einzigen Eintrag angeben, fälschlicherweise ein einzelnes Schedule objekt anstelle eines list zurückgegeben wurde.

  • Es wurde ein Problem mit der Visualisierungsfunktion plot_error_map behoben, das verhinderte, dass sie mit einem Backend funktionierte, das einen Auslesefehler in der bereitgestellten Backend-Datei BackendProperties definiert war, oder wenn sie mit einem BackendV2 backend. Behoben #7879.

  • Ein Fehler wurde behoben, der zu exponentieller Laufzeit und Nichtbeendigung führen konnte, wenn eine Pauli instanz an die Methode init_observables() übergeben wird.

  • Festgelegt SabreSwapund durch Erweiterung transpile() mit optimization_level=3, gelegentlich eine ungültige Neuordnung der Messungen. Wenn früher zwei Messungen auf dasselbe klassische Bit geschrieben wurden, konnte SabreSwap (abhängig von der Kopplungskarte) neu anordnen, um eine nicht-äquivalente Schaltung zu erzeugen. Dieses Verhalten war stochastisch, so dass es möglicherweise nicht zuverlässig war. Behoben #7950

  • Der SabreSwap transpiler-Pass, und damit auch SabreLayout und transpile() auf optimization_level=3, verfügt nun über einen Escape-Mechanismus, der garantiert, dass er niemals in einer Endlosschleife stecken bleiben kann. Bestimmte Eingaben konnten früher mit viel Pech in einem stabilen lokalen Minimum des Suchraums steckenbleiben, so dass der Durchlauf nie weiter vorankam. Es erzwingt nun eine Reihe von Vertauschungen, die eine Fortsetzung des Routings ermöglichen, wenn es feststellt, dass es in letzter Zeit keine Fortschritte gemacht hat. Behoben #7707.

  • Es wurde ein Problem mit der QPY-Deserialisierung über die qpy.load() funktion der UCRXGate, UCRYGate, und UCRZGate klassen. Zuvor führte eine QPY-Datei, die eines dieser Gates enthielt, beim Versuch, die Datei zu laden, zu einem Fehler. Behoben #7847.

Aer- 0.10.4

Keine Änderung

Ignis- 0.7.0

Keine Änderung

IBM Q Anbieter 0.19.1

0.19.1

Fehlerkorrekturen

  • PR #1129 aktualisiert die Methode least_busy() , so dass BaseBackend nicht mehr als gültiger Ein- oder Ausgabetyp unterstützt wird, da es in qiskit-terra schon lange veraltet ist und kürzlich entfernt wurde.

0.36.0

Terra- 0.20.0

Keine Änderung

Aer- 0.10.4

Anmerkungen zu Upgrades

  • Qiskit Aer wird nicht mehr mit unsicheren Gleitkomma-Optimierungen kompiliert. Während die meisten Auswirkungen auf Qiskit Aer beschränkt sein sollten, könnten einige Aspekte der subnormalen Behandlung durch die falsche Einstellung des "flush to zero"-Modus durch die Bibliothek in den Anwendercode gelangt sein. Dies wird nicht mehr geschehen.

Fehlerkorrekturen

  • Der Transpiler für die Cache-Blockierung erkennt nun, dass Superop im Cache blockiert ist. Dies ist ein Fix für das Problem 1479 <https://github.com/Qiskit/qiskit-aer/issues/1479> jetzt kann density_matrix mit Rauschmodellen parallelisiert werden. Ein neuer Test, test_noise.TestNoise.test_kraus_gate_noise_on_QFT_cache_blocking wurde hinzugefügt, um dieses Problem zu überprüfen. Diese Korrektur beinhaltet auch die Behebung des Problems 1483 <https://github.com/Qiskit/qiskit-aer/issues/1483>, das durch Hinzufügen eines neuen Testfalls entdeckt wurde. Damit wird die Messung über Chunks für statevector festgelegt.

  • Behebt einen Fehler in NoiseModel.from_backend() , der einen Fehler auslöste, wenn T2 einen Wert größer als 2 * T1 vom Backend geliefert wurde. Nach dieser Korrektur wird der Wert von T2 bis zu 2 * T1 abgeschnitten und eine Benutzerwarnung ausgegeben, wenn er abgeschnitten wird. Der Fehler wurde in #1391 eingeführt, und davor hatte NoiseModel.from_backend() den Wert T2 bis zu 2 * T1 stillschweigend abgeschnitten.

    Siehe Ausgabe 1464 für weitere Einzelheiten.

  • device=Thrust war bei einer kleinen Anzahl von Qubits sehr langsam, da immer OpenMP threading angewendet wurde. Diese Korrektur gilt für OpenMP Threads genauso wie für device=CPU unter Verwendung von statevector_parallel_threshold.

  • Qiskit Aer setzt den Fließkommamodus beim Laden nicht mehr auf "flush to zero". Nachgeschaltete Benutzer haben möglicherweise zuvor Warnungen von Numpy gesehen, wie zum Beispiel:

    Der Wert der kleinsten Subnormale für den Typ <class ‘numpy.float64’> ist Null.

    Diese werden nun nicht mehr ausgegeben, und die Fließkomma-Behandlung ist korrekt.

  • Ein mögliches Problem bei der Ausführung von Simulationen auf Schaltkreisen mit dem QuantumCircuit.metadata attribut gesetzt ist. Das metadata attribut kann ein beliebiges Python-Wörterbuch sein. Bisher hat qiskit-aer versucht, den Inhalt des Attributs in JSON zu serialisieren, um ihn zusammen mit dem Rest der Schaltkreiseingabe zu verarbeiten, auch wenn der Inhalt nicht in JSON serialisierbar war. Dies tritt nicht mehr auf, da das QuantumCircuit.metadata attribut nicht mehr verwendet wird, um die Simulation auszuführen, so dass der Inhalt jetzt nicht mehr serialisiert wird und stattdessen direkt an das qiskit.result.Result objekt angehängt, ohne zu versuchen, den Inhalt in JSON zu serialisieren. Behoben #1435

Ignis- 0.7.0

Keine Änderung

IBM Q Anbieter 0.19.0

Neue Funktionen

  • Das Paket qiskit-ibmq-provider unterstützt jetzt die Funktionen von IBM Quantum LiveData. Mit diesen Funktionen können die Benutzer das Echtzeitverhalten von IBM Quantum-Backends während der Ausführung von Aufträgen beobachten. Insbesondere enthält der Anbieter jetzt eine neue Registerkarte im Jupyter-Widget des Backends und unterstützt die Ausführung von Aufträgen (über die Methode qiskit.providers.ibmq.IBMQBackend.run() ) mit dem Parameter live_data_enabled=True in zulässigen IBM Quantum-Backends.
  • Sie können jetzt eine andere Protokollierungsstufe im Schlüsselwort options angeben, wenn Sie einen Qiskit Runtime Auftrag mit der Methode qiskit.providers.ibmq.runtime.IBMRuntimeService.run() übermitteln.

Anmerkungen zu Upgrades

  • Python 3.6 die Unterstützung wurde eingestellt, da sie im Dezember 2021 das Ende ihrer Lebensdauer erreicht hat.
  • qiskit.providers.ibmq.random der Zufallszahlendienst, der für den Zugriff auf den CQC-Zufallsextraktor verwendet wurde, wird nicht mehr unterstützt und wurde entfernt.

Hinweise zu veralteten Versionen

  • Das Schlüsselwort image in der Methode qiskit.providers.ibmq.runtime.IBMRuntimeService.run() ist veraltet. Stattdessen sollten Sie das zu verwendende Bild mit dem Schlüsselwort options angeben.

Fehlerkorrekturen

  • Behebt das Problem [#190] ( https://github.com/Qiskit/qiskit-ibm-provider/issues/190 ). Jetzt wurden qiskit.providers.ibmq.runtime.RuntimeEncoder und qiskit.providers.ibmq.runtime.RuntimeDecoder aktualisiert, um Instanzen der Klasse Instruction zu behandeln.
  • Behebt das Problem #74, bei dem Numpy-Ndarrays mit Objekttypen nicht serialisiert werden konnten. qiskit.providers.ibmq.runtime.RuntimeEncoder und qiskit.providers.ibmq.runtime.RuntimeDecoder wurden aktualisiert, um mit diesen ndarrays umgehen zu können.
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.