Notes de publication de Qiskit 0.41
0.41.1
Terra 0.23.2
Prélude
Le correctif Qiskit Terra 0.23.2 corrige d'autres bogues identifiés dans la série 0.23.
Corrections des erreurs
-
Ajoutez les portes de Clifford suivantes, qui existent déjà dans la bibliothèque de circuits, à la classe
Cliffordà la classeSXGate,SXdgGate,CYGate,DCXGate,iSwapGateetECRGate. -
Ajouter une décomposition d'un
ECRGateen portes de Clifford (jusqu'à une phase globale) à la bibliothèque d'équivalence standard. -
Correction d'un problème avec la classe
BackendV2Converterlors de l'encapsulation d'un simulateur basé surBackendV1-dans un simulateur à base de Une erreur se produirait si le champonline_datedans le fichierBackendConfigurationdu simulateur n'était pas présent ou si le backend du simulateur supportait des implémentations idéales de portes impliquant plus d'un qubit. Correction #9562. -
Correction d'une valeur de retour incorrecte de la méthode
BackendV2Converter.meas_map()qui renvoyait le backenddtà la place. -
Correction des valeurs de retour manquantes des méthodes
BackendV2Converter.drive_channel(),measure_channel(),acquire_channel()etcontrol_channel(). -
Les fonctions obsolètes
QubitetClbitles propriétésregisteretindexseront désormais correctement contournées par QPY (qiskit.qpy) dans toutes les utilisations valides deQuantumRegisteretClassicalRegister. Dans les versions précédentes de la série Terra 0.23, cette information était perdue. Dans les versions antérieures à 0.23.0, ces informations étaient partiellement reconstruites mais pouvaient être incorrectes ou produire des circuits non valides pour certaines configurations de registres.La manière correcte de récupérer l'index d'un bit dans un circuit, et tous les registres de ce circuit dans lesquels le bit est contenu, est d'appeler
QuantumCircuit.find_bit(). Cette méthode renverra des informations correctes dans toutes les versions de Terra depuis son ajout dans la version 0.19. -
Correction d'un problème avec la méthode
InstructionScheduleMap.has_custom_gate()qui renvoyait toujoursTruelorsque l'objetInstructionScheduleMapa été créé parTarget. Correction #9595. -
Correction d'un bug dans les eigensolvers de NumPy-based (
NumPyMinimumEigensolver/NumPyEigensolver) et dans l'outil d'évolution temporelle SciPy-based (SciPyRealEvolver/SciPyImaginaryEvolver), où les opérateurs qui supportent la conversion en matrices éparses, tels queSparsePauliOpétaient tout de même convertis en matrices denses. -
Correction d'un bug dans
generate_basic_approximations()où l'inverse de l'élémentSdgGaten'était pas correctement reconnue commeSGate. Correction #9585. -
Correction d'un bogue dans l'algorithme
VQDoù la fonction d'évaluation de l'énergie ne pouvait pas traiter des lots de paramètres, ce qui la rendait incompatible avec les optimiseurs avecmax_evals_grouped>1. Correction #9500. -
Correction d'un bug dans
QNSPSAqui soulevait une erreur de type lorsque les fidélités calculées étaient de typeintmais que la perturbation était de typefloat.
Aer 0.11.2
Pas de modification
IBM 0.20.1 du fournisseur Q
Comme qiskit-ibmq-provider est maintenant obsolète, les dépendances ont été mises à jour et corrigées vers les dernières versions fonctionnelles. Il y a eu un problème avec la dernière version du paquet requests-ntlm qui a fait échouer certains tests de bout en bout.
0.41.0
Terra 0.23.1
Prélude
Qiskit Terra 0.23.1 est un petit patch qui corrige des bugs identifiés dans Qiskit Terra 0.23.0
Corrections des erreurs
-
Un cas limite de pickle
InstructionScheduleMapavec des itérables non piquablesargumentsest maintenant corrigé. Auparavant, l'utilisation d'un itérable non piquable comme paramètreargumentsàInstructionScheduleMap.add()(commedict_keys) pouvait faire échouer les appels parallèles àtranspile()échouent. Ces arguments seront désormais correctement normalisés en interne àlist. -
Correction d'un bug de performance dans
ReverseEstimatorGradientoù le calcul effectuait un grand nombre de copies inutiles si le gradient n'était calculé que pour un sous-ensemble de paramètres, ou dans un circuit comportant de nombreuses portes non paramétrées. -
Correction d'une mauvaise dépréciation de
Register.name_formatqui rendait l'attribut class disponible uniquement pour les instances et non pour la classe. Lorsque l'on essaie d'envoyer des tâches de circuits dynamiques à des backends matériels, cela provoque souvent une erreur :AttributeError: 'property' object has no attribute 'match'Correction #9493.
Aer 0.11.2
Pas de modification
IBM 0.20.0 du fournisseur Q
Prélude
Cette version du paquet qiskit-ibmq-provider indique que le paquet est obsolète et qu'il sera retiré et archivé à l'avenir. La fonctionnalité de qiskit-ibmq-provider a été remplacée par 3 paquets qiskit-ibm-provider, qiskit-ibm-runtime, et qiskit-ibm-experiment qui offrent différents sous-ensembles de la fonctionnalité contenue dans qiskit-ibmq-provider . Vous pouvez consulter le tableau ici :
https://github.com/Qiskit/qiskit-ibmq-provider#migration-guides
pour des liens vers les guides de migration pour passer de qiskit-ibmq-provider à ses paquets remplaçants.
Remarques concernant la dépréciation
- Depuis la version 0.20.0,
qiskit-ibmq-providerest obsolète, son support est terminé et son archivage éventuel n'interviendra pas avant 3 mois à compter de cette date. La fonction fournie par qiskit-ibmq-provider n'est pas supprimée, elle est plutôt répartie dans des dépôts séparés. Voir aussi https://github.com/Qiskit/qiskit-ibmq-provider#migration-guides.
Corrections des erreurs
-
Dans la prochaine version de Terra, une version candidate sera étiquetée avant la version finale. Cependant, le changement de la chaîne de version pour le paquet est bloqué sur le qiskit-ibmq-provider en ce moment parce qu'il essaie d'analyser la version et suppose qu'il n'y aura pas de suffixe prelease sur la chaîne de version (voir #8200 pour les détails). PR #1135 corrige cette analyse de version pour utiliser le regex du projet pypa/packaging qui gère toutes les versions des paquets PEP440 en incluant les suffixes de pré-version. Cela permettra à terra de publier une étiquette 0.21.0rc1 sans casser le fournisseur qiskit-ibmq.
-
PR #1129 met à jour la méthode
least_busy()pour qu'elle ne supporte plus BaseBackend comme type d'entrée ou de sortie valide puisqu'il a été déprécié depuis longtemps dans qiskit-terra et a été récemment supprimé. -
threading.currentThreadetnotifyAllont été supprimés dans Python 3.10 (octobre 2021) et seront supprimés dans Python 3.12 (octobre 2023). Le PR #1133 les remplace parthreading.current_thread,notify_allajouté à Python 2.6 (octobre 2008). -
Les appels à l'exécution d'un circuit quantique avec
dynamic=Truegénèrent désormais une erreur qui demande à l'utilisateur d'installer le nouveauqiskit-ibm-provider.