Notes de publication de Qiskit 0.24
0.24.1
Terra 0.16.4
Pas de modification
Aer 0.7.6
Pas de modification
Ignis 0.5.2
Pas de modification
Aqua 0.8.2
Pas de modification
IBM 0.12.2 du fournisseur Q
Mise à niveau
qiskit.providers.ibmq.IBMQBackend.defaults()renvoie désormais les valeurs par défaut de pulse pour le backend si celui-ci supporte pulse. Cependant, il se peut que votre fournisseur d'accès ne prenne pas en charge les impulsions, même si le backend le fait. Le drapeauopen_pulsedans la configuration du backend indique si le fournisseur le prend en charge.
0.24.0
Terra 0.16.4
Pas de modification
Aer 0.7.6
Nouvelles fonctions
- Il s'agit de la première version de qiskit-aer qui publie des binaires précompilés sur PyPI pour Linux sur aarch64 ( arm64 ). À partir de cette version, les paquets Linux aarch64 seront publiés et pris en charge.
Corrections des erreurs
- Correction du bogue #1153 où le bruit sur les portes conditionnelles était toujours appliqué sans tenir compte du fait que la porte conditionnelle était effectivement appliquée sur la base de la valeur du registre classique. Désormais, le bruit d'une porte conditionnelle ne sera appliqué que dans le cas où la porte conditionnelle est appliquée.
- Correction du problème #1126 : bug dans le rapport de mesure d'un seul qubit. Le bogue s'est produit lors de la copie de la valeur mesurée dans la structure de données de sortie.
- Il y avait auparavant un décalage entre le nombre de qubits rapporté par défaut par les objets Aer backend et le nombre maximum de qubits que le simulateur pouvait réellement exécuter. Cela était dû à une incompatibilité entre le code Python utilisé pour calculer le nombre maximum de qubits et le code C++ utilisé pour vérifier le nombre maximum de qubits au moment de l'exécution en fonction de la mémoire disponible. Cette erreur a été corrigée de sorte que, par défaut, les backends Aer autorisent l'exécution de circuits pouvant tenir dans toute la mémoire disponible du système. Corrige #1114
Pas de modification
Ignis 0.5.2
Pas de modification
Aqua 0.8.2
Pas de modification
IBM 0.12.0 du fournisseur Q
Prélude
qiskit.providers.ibmq.IBMQBackend.run()prend désormais un ou plusieursQuantumCircuitouSchedule. Utilisation deQasmQobjetPulseQobjest désormais obsolète. Les options de configuration du temps d'exécution, telles que le nombre de tirs, peuvent être définies soit par la méthoderun(), soit par la méthodeqiskit.providers.ibmq.IBMQBackend.set_options(). Le premier est utilisé comme paramètre unique pour le travail, et le second pour tous les travaux envoyés au backend. Si une option est définie aux deux endroits, la valeur définie à l'adresserun()est prioritaire.- IBM Les informations d'identification Quantum ne sont désormais chargées qu'à partir des sections du fichier
qiskitrcqui commencent par "ibmq".
Nouvelles fonctions
-
Python 3.9 a été ajouté dans cette version. Vous pouvez maintenant exécuter le fournisseur Qiskit IBMQ en utilisant Python 3.9.
-
qiskit.providers.ibmq.AccountProvider.backends()dispose désormais d'un nouveau paramètre min_num_qubits qui vous permet de filtrer par le nombre minimum de qubits. -
qiskit.providers.ibmq.IBMQBackend.run()prend désormais un ou plusieursQuantumCircuitouSchedule. Les options de configuration du temps d'exécution, telles que le nombre de tirs, peuvent être définies soit par la méthoderun(), soit par la méthodeqiskit.providers.ibmq.IBMQBackend.set_options(). Le premier est utilisé comme paramètre unique pour le travail, et le second pour tous les travaux envoyés au backend. Si une option est définie aux deux endroits, la valeur définie à l'adresserun()est prioritaire. Par exemple :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.Experimentpossède désormais trois attributs supplémentaires, hub, group et project, qui identifient le fournisseur utilisé pour créer l'expérience. -
Vous pouvez désormais attribuer un
experiment_idà un travail lorsque vous le soumettez à l'aide deqiskit.providers.ibmq.IBMQBackend.run(). Vous pouvez utiliser ce nouveau champ pour regrouper un ensemble de travaux appartenant à la même expérience. La méthodeqiskit.providers.ibmq.IBMQBackendService.jobs()a également été mise à jour pour permettre le filtrage parexperiment_id. -
qiskit.providers.ibmq.experiment.Experimentdispose désormais de deux attributs supplémentaires :- share_level : Le niveau auquel l'expérience est partagée, qui détermine qui peut la voir lors de l'établissement de la liste des expériences. Il peut être mis à jour.
- owner : l'identifiant de l'utilisateur qui a téléchargé l'expérience. Cette valeur est définie par le serveur et ne peut être mise à jour.
-
La méthode
qiskit.providers.ibmq.experimentservice.ExperimentService.experiments()accepte désormaishub,group, etprojectcomme mots-clés de filtrage. -
Les méthodes
qiskit.providers.ibmq.experiment.ExperimentService.experiments()etqiskit.providers.ibmq.experiment.ExperimentService.analysis_results()prennent désormais en charge un paramètrelimitqui vous permet de limiter le nombre d'expériences et de résultats d'analyse renvoyés. -
La méthode
qiskit.providers.ibmq.experimentservice.ExperimentService.experiments()accepte désormaisexclude_mineetmine_onlycomme mots-clés de filtrage. -
La méthode
qiskit.providers.ibmq.experimentservice.ExperimentService.experiments()accepte désormaisexclude_publicetpublic_onlycomme mots-clés de filtrage. -
qiskit.providers.ibmq.managed.IBMQJobManager.run()accepte désormais un seulQuantumCircuitouScheduleen plus d'une liste. -
La fonction
least_busy()ignore désormais les backends qui sont opérationnels mais en pause, ce qui signifie qu'ils acceptent des travaux mais ne les traitent pas. -
Il est désormais possible de découper une instance de
IBMQJob, à condition qu'elle ne contienne pas de données personnalisées qui ne sont pas découplables (par exemple, dans l'en-tête Qobj). -
Vous pouvez désormais utiliser les deux nouvelles méthodes,
qiskit.providers.ibmq.AccountProvider.services()etqiskit.providers.ibmq.AccountProvider.service(), pour connaître les services disponibles pour votre compte et obtenir une instance d'un service particulier. -
La méthode
qiskit.providers.ibmq.IBMQBackend.reservations()renvoie désormais toujours les modes de planification des réservations, même pour les réservations que vous ne possédez pas.
Mise à niveau
-
Un certain nombre de méthodes et de fonctionnalités précédemment obsolètes ont été supprimées :
qiskit.providers.ibmq.job.IBMQJob.to_dict()qiskit.providers.ibmq.job.IBMQJob.from_dict()- Qconfig.py soutien
- Utilisation d'URL de proxy qui n'incluent pas les protocoles
-
Un nouveau paramètre,
limit, est désormais le premier paramètre des méthodesqiskit.providers.ibmq.experiment.ExperimentService.experiments()etqiskit.providers.ibmq.experiment.ExperimentService.analysis_results(). Cette adresselimita une valeur par défaut de 10, ce qui signifie que, par défaut, seuls 10 expériences et résultats d'analyse seront renvoyés. -
IBM Les informations d'identification Quantum ne sont désormais chargées qu'à partir des sections du fichier
qiskitrcqui commencent par "ibmq". Cela permet au fichierqiskitrcd'être utilisé pour d'autres fonctionnalités.
Remarques concernant la dépréciation
-
Utilisation de
QasmQobjetPulseQobjdans la méthodeqiskit.providers.ibmq.IBMQBackend.run()est désormais obsolète.QuantumCircuitetScheduledoivent désormais être utilisés. -
L'attribut
backendsdeqiskit.providers.ibmq.AccountProvidera été renommé enbackend(sigular). Pour des raisons de compatibilité ascendante, vous pouvez continuer à utiliserbackends, mais cette fonction est obsolète et sera supprimée dans une prochaine version. La méthodeqiskit.providers.ibmq.AccountProvider.backends()reste inchangée. Par exemple :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. -
La définition de l'attribut
IBMQJobclient_versionest obsolète. Vous pouvez cependant continuer à lire la valeur de l'attribut. -
"Le mot-clé
validate_qobjdansqiskit.providers.ibmq.IBMQBackend.run()est obsolète et sera supprimé dans une prochaine version. Si vous comptez sur cette validation de schéma, vous devriez extraire les schémas de Qiskit/ibmq-schemas et valider directement vos payloads avec cela.
Corrections des erreurs
- Corrige le problème dans lequel un travail pouvait rester dans l'état
CREATINGsi la soumission du travail échouait à mi-parcours. - Corrige le problème dans lequel l'utilisation du widget du backend Jupyter échouait si les portes de base du backend n'incluaient pas les traditionnels u1, u2, et u3. Corrige #844
- Corrige la boucle infinie soulevée lors du passage d'une instance de
IBMQRandomServiceà un processus enfant. - Corrige le problème dans lequel un
TypeErrorest levé si le serveur renvoie un code d'erreur mais que les données de la réponse ne sont pas dans le format attendu.