Skip to main content
IBM Quantum Platform

Qiskit 0.24 Versionshinweise


0.24.1

Terra- 0.16.4

Keine Änderung

Aer- 0.7.6

Keine Änderung

Ignis- 0.5.2

Keine Änderung

Aqua- 0.8.2

Keine Änderung

IBM Q Anbieter 0.12.2

Anmerkungen zu Upgrades

  • qiskit.providers.ibmq.IBMQBackend.defaults() gibt jetzt die Puls-Standardwerte für das Backend zurück, wenn das Backend Puls unterstützt. Es kann jedoch sein, dass Ihr Anbieter Puls nicht unterstützt, auch wenn das Backend dies tut. Das open_pulse Flag in der Backend-Konfiguration zeigt an, ob der Anbieter dies unterstützt.

0.24.0

Terra- 0.16.4

Keine Änderung

Aer- 0.7.6

Neue Funktionen

  • Dies ist die erste Version von qiskit-aer, die vorkompilierte Binärdateien auf PyPI für Linux auf aarch64 ( arm64 ) veröffentlicht. Von dieser Version an werden Linux aarch64 Pakete veröffentlicht und unterstützt.

Fehlerkorrekturen

  • Behebt den Fehler #1153, bei dem Rauschen auf bedingte Gatter immer angewendet wurde, unabhängig davon, ob das bedingte Gatter tatsächlich auf der Grundlage des klassischen Registerwertes angewendet wurde. Jetzt wird das Rauschen eines bedingten Gatters nur in dem Fall angewendet, in dem das bedingte Gatter angewendet wird.
  • Problem #1126 behoben: Fehler bei der Meldung der Messung eines einzelnen Qubits. Der Fehler trat beim Kopieren des Messwertes in die Ausgabedatenstruktur auf.
  • Zuvor gab es eine Diskrepanz zwischen der standardmäßig gemeldeten Anzahl von Qubits, die laut den Aer-Backend-Objekten unterstützt wurden, und der maximalen Anzahl von Qubits, die der Simulator tatsächlich ausführen konnte. Dies lag an einer Unstimmigkeit zwischen dem Python Code, der für die Berechnung der maximalen Anzahl von Qubits verwendet wurde, und dem C++ Code, der für eine Laufzeitprüfung der maximalen Anzahl von Qubits auf der Grundlage des verfügbaren Speichers verwendet wurde. Dies wurde korrigiert, so dass Aer-Backends nun standardmäßig die Ausführung von Schaltkreisen erlauben, die in den gesamten verfügbaren Systemspeicher passen. Behebt #1114

Keine Änderung

Ignis- 0.5.2

Keine Änderung

Aqua- 0.8.2

Keine Änderung

IBM Q Anbieter 0.12.0

Vorspiel

  • qiskit.providers.ibmq.IBMQBackend.run() methode nimmt nun eine oder mehrere QuantumCircuit oder Schedule. Verwendung von QasmQobj und PulseQobj ist jetzt veraltet. Laufzeitkonfigurationsoptionen, wie z. B. die Anzahl der Schüsse, können entweder über die Methode run() oder über die Methode qiskit.providers.ibmq.IBMQBackend.set_options() eingestellt werden. Erstere wird als einmalige Einstellung für den Auftrag verwendet, letztere für alle an das Backend gesendeten Aufträge. Wenn eine Option an beiden Stellen eingestellt ist, hat der unter run() eingestellte Wert Vorrang.
  • IBM Quantum-Anmeldeinformationen werden jetzt nur noch aus Abschnitten der Datei qiskitrc geladen, die mit "ibmq" beginnen.

Neue Funktionen

  • Python 3.9 unterstützung wurde in dieser Version hinzugefügt. Sie können jetzt den Qiskit IBMQ-Anbieter mit Python 3.9 ausführen.

  • qiskit.providers.ibmq.AccountProvider.backends() hat jetzt einen neuen Parameter min_num_qubits, mit dem Sie nach der Mindestanzahl von Qubits filtern können.

  • qiskit.providers.ibmq.IBMQBackend.run() methode nimmt nun eine oder mehrere QuantumCircuit oder Schedule. Laufzeitkonfigurationsoptionen, wie z. B. die Anzahl der Schüsse, können entweder über die Methode run() oder über die Methode qiskit.providers.ibmq.IBMQBackend.set_options() eingestellt werden. Erstere wird als einmalige Einstellung für den Auftrag verwendet, letztere für alle an das Backend gesendeten Aufträge. Wenn eine Option an beiden Stellen eingestellt ist, hat der unter run() eingestellte Wert Vorrang. Zum Beispiel:

    from qiskit import IBMQ, transpile
    from qiskit.test.reference_circuits import ReferenceCircuits
    
    provider = IBMQ.load_account()
    backend = provider.get_backend('ibmq_vigo')
    circuits = transpile(ReferenceCircuits.bell(), backend=backend)
    default_shots = backend.options.shots  # Returns the backend default of 1024 shots.
    backend.set_options(shots=2048)        # All jobs will now have use 2048 shots.
    backend.run(circuits)                  # This runs with 2048 shots.
    backend.run(circuits, shots=8192)      # This runs with 8192 shots.
    backend.run(circuits)                  # This again runs with 2048 shots.
  • qiskit.providers.ibmq.experiment.Experiment hat nun drei zusätzliche Attribute, Hub, Gruppe und Projekt, die den Anbieter identifizieren, der zur Erstellung des Experiments verwendet wurde.

  • Sie können einem Auftrag jetzt eine experiment_id zuweisen, wenn Sie ihn mit qiskit.providers.ibmq.IBMQBackend.run() einreichen. Sie können dieses neue Feld verwenden, um eine Sammlung von Aufträgen zusammenzufassen, die zum selben Experiment gehören. Die Methode qiskit.providers.ibmq.IBMQBackendService.jobs() wurde ebenfalls aktualisiert, um die Filterung nach experiment_id zu ermöglichen.

  • qiskit.providers.ibmq.experiment.Experiment hat jetzt zwei zusätzliche Attribute:

    • share_level: Die Ebene, auf der das Experiment freigegeben ist und die bestimmt, wer es bei der Auflistung der Experimente sehen kann. Dies kann aktualisiert werden.
    • owner: Die ID des Benutzers, der das Experiment hochgeladen hat. Dieser Wert wird vom Server festgelegt und kann nicht aktualisiert werden.
  • Die Methode qiskit.providers.ibmq.experimentservice.ExperimentService.experiments() akzeptiert jetzt hub, group und project als Filterschlüsselwörter.

  • Die Methoden qiskit.providers.ibmq.experiment.ExperimentService.experiments() und qiskit.providers.ibmq.experiment.ExperimentService.analysis_results() unterstützen jetzt einen Parameter limit , mit dem Sie die Anzahl der zurückgegebenen Experimente und Analyseergebnisse begrenzen können.

  • Die Methode qiskit.providers.ibmq.experimentservice.ExperimentService.experiments() akzeptiert nun exclude_mine und mine_only als Filterschlüsselwörter.

  • Die Methode qiskit.providers.ibmq.experimentservice.ExperimentService.experiments() akzeptiert nun exclude_public und public_only als Filterschlüsselwörter.

  • qiskit.providers.ibmq.managed.IBMQJobManager.run() akzeptiert jetzt ein einzelnes QuantumCircuit oder Schedule zusätzlich zu einer Liste von ihnen.

  • Die Funktion least_busy() überspringt jetzt Backends, die in Betrieb sind, aber pausieren, d. h. sie nehmen Aufträge an, bearbeiten sie aber nicht.

  • Sie können nun eine IBMQJob Instanz auswählen, solange sie keine benutzerdefinierten Daten enthält, die nicht ausgewählt werden können (z.B. im Qobj-Header).

  • Sie können jetzt die beiden neuen Methoden qiskit.providers.ibmq.AccountProvider.services() und qiskit.providers.ibmq.AccountProvider.service() verwenden, um herauszufinden, welche Dienste für Ihr Konto verfügbar sind und um eine Instanz eines bestimmten Dienstes zu erhalten.

  • Die Methode qiskit.providers.ibmq.IBMQBackend.reservations() liefert jetzt immer die Planungsmodi für Reservierungen zurück, auch für Reservierungen, die Sie nicht besitzen.

Anmerkungen zu Upgrades

  • Eine Reihe veralteter Methoden und Funktionen wurden entfernt, darunter:

    • qiskit.providers.ibmq.job.IBMQJob.to_dict()
    • qiskit.providers.ibmq.job.IBMQJob.from_dict()
    • Qconfig.py unterstützung
    • Verwendung von Proxy-URLs, die keine Protokolle enthalten
  • Ein neuer Parameter, limit , ist nun der erste Parameter für die Methoden qiskit.providers.ibmq.experiment.ExperimentService.experiments() und qiskit.providers.ibmq.experiment.ExperimentService.analysis_results() . Der Standardwert für limit ist 10, d. h., es werden nur 10 Experimente und Analyseergebnisse zurückgegeben, wenn Sie taub sind.

  • IBM Quantum-Anmeldeinformationen werden jetzt nur noch aus Abschnitten der Datei qiskitrc geladen, die mit "ibmq" beginnen. Dadurch kann die Datei qiskitrc für andere Funktionen verwendet werden.

Hinweise zu veralteten Versionen

  • Verwendung von QasmQobj und PulseQobj in der Methode qiskit.providers.ibmq.IBMQBackend.run() ist jetzt veraltet. QuantumCircuit und Schedule sollten nun stattdessen verwendet werden.

  • Das Attribut backends von qiskit.providers.ibmq.AccountProvider wurde umbenannt in backend (sigular). Aus Gründen der Abwärtskompatibilität können Sie backends weiterhin verwenden, es ist jedoch veraltet und wird in einer zukünftigen Version entfernt werden. Die Methode qiskit.providers.ibmq.AccountProvider.backends() bleibt unverändert. Zum Beispiel:

    backend = provider.backend.ibmq_vigo   # This is the new syntax.
    backend = provider.backends.ibmq_vigo  # This is deprecated.
    backends = provider.backends()         # This continues to work as before.
  • Die Verwendung des Attributs IBMQJob client_version ist veraltet. Sie können jedoch weiterhin den Wert des Attributs lesen.

  • "Das Schlüsselwort validate_qobj in qiskit.providers.ibmq.IBMQBackend.run() ist veraltet und wird in einer zukünftigen Version entfernt werden. Wenn Sie sich auf diese Schema-Validierung verlassen, sollten Sie die Schemata aus Qiskit/ibmq-schemas ziehen und Ihre Payloads direkt damit validieren.

Fehlerkorrekturen

  • Behebt das Problem, dass ein Auftrag im Status CREATING verbleiben kann, wenn die Auftragsübermittlung auf halbem Weg fehlschlägt.
  • Behebt das Problem, dass die Verwendung des Jupyter-Backend-Widgets fehlschlägt, wenn die Basis-Gates des Backends nicht die traditionellen u1, u2 und u3 enthalten. Behebt #844
  • Behebt die Endlosschleife, die bei der Übergabe einer IBMQRandomService -Instanz an einen Kindprozess auftritt.
  • Behebt das Problem, dass ein TypeError ausgelöst wird, wenn der Server einen Fehlercode zurückgibt, aber die Antwortdaten nicht im erwarteten Format vorliegen.
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.