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. Dasopen_pulseFlag 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 mehrereQuantumCircuitoderSchedule. Verwendung vonQasmQobjundPulseQobjist jetzt veraltet. Laufzeitkonfigurationsoptionen, wie z. B. die Anzahl der Schüsse, können entweder über die Methoderun()oder über die Methodeqiskit.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 unterrun()eingestellte Wert Vorrang.- IBM Quantum-Anmeldeinformationen werden jetzt nur noch aus Abschnitten der Datei
qiskitrcgeladen, 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 mehrereQuantumCircuitoderSchedule. Laufzeitkonfigurationsoptionen, wie z. B. die Anzahl der Schüsse, können entweder über die Methoderun()oder über die Methodeqiskit.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 unterrun()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.Experimenthat 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_idzuweisen, wenn Sie ihn mitqiskit.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 Methodeqiskit.providers.ibmq.IBMQBackendService.jobs()wurde ebenfalls aktualisiert, um die Filterung nachexperiment_idzu ermöglichen. -
qiskit.providers.ibmq.experiment.Experimenthat 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 jetzthub,groupundprojectals Filterschlüsselwörter. -
Die Methoden
qiskit.providers.ibmq.experiment.ExperimentService.experiments()undqiskit.providers.ibmq.experiment.ExperimentService.analysis_results()unterstützen jetzt einen Parameterlimit, mit dem Sie die Anzahl der zurückgegebenen Experimente und Analyseergebnisse begrenzen können. -
Die Methode
qiskit.providers.ibmq.experimentservice.ExperimentService.experiments()akzeptiert nunexclude_mineundmine_onlyals Filterschlüsselwörter. -
Die Methode
qiskit.providers.ibmq.experimentservice.ExperimentService.experiments()akzeptiert nunexclude_publicundpublic_onlyals Filterschlüsselwörter. -
qiskit.providers.ibmq.managed.IBMQJobManager.run()akzeptiert jetzt ein einzelnesQuantumCircuitoderSchedulezusä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
IBMQJobInstanz 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()undqiskit.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 Methodenqiskit.providers.ibmq.experiment.ExperimentService.experiments()undqiskit.providers.ibmq.experiment.ExperimentService.analysis_results(). Der Standardwert fürlimitist 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
qiskitrcgeladen, die mit "ibmq" beginnen. Dadurch kann die Dateiqiskitrcfür andere Funktionen verwendet werden.
Hinweise zu veralteten Versionen
-
Verwendung von
QasmQobjundPulseQobjin der Methodeqiskit.providers.ibmq.IBMQBackend.run()ist jetzt veraltet.QuantumCircuitundSchedulesollten nun stattdessen verwendet werden. -
Das Attribut
backendsvonqiskit.providers.ibmq.AccountProviderwurde umbenannt inbackend(sigular). Aus Gründen der Abwärtskompatibilität können Siebackendsweiterhin verwenden, es ist jedoch veraltet und wird in einer zukünftigen Version entfernt werden. Die Methodeqiskit.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
IBMQJobclient_versionist veraltet. Sie können jedoch weiterhin den Wert des Attributs lesen. -
"Das Schlüsselwort
validate_qobjinqiskit.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
CREATINGverbleiben 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
TypeErrorausgelöst wird, wenn der Server einen Fehlercode zurückgibt, aber die Antwortdaten nicht im erwarteten Format vorliegen.