Skip to main content
IBM Quantum Platform

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 drapeau open_pulse dans 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 plusieurs QuantumCircuit ou Schedule. Utilisation de QasmQobj et PulseQobj est 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éthode run() , soit par la méthode qiskit.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'adresse run() est prioritaire.
  • IBM Les informations d'identification Quantum ne sont désormais chargées qu'à partir des sections du fichier qiskitrc qui 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 plusieurs QuantumCircuit ou Schedule. Les options de configuration du temps d'exécution, telles que le nombre de tirs, peuvent être définies soit par la méthode run() , soit par la méthode qiskit.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'adresse run() 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.Experiment possè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 de qiskit.providers.ibmq.IBMQBackend.run(). Vous pouvez utiliser ce nouveau champ pour regrouper un ensemble de travaux appartenant à la même expérience. La méthode qiskit.providers.ibmq.IBMQBackendService.jobs() a également été mise à jour pour permettre le filtrage par experiment_id.

  • qiskit.providers.ibmq.experiment.Experiment dispose 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ésormais hub, group, et project comme mots-clés de filtrage.

  • Les méthodes qiskit.providers.ibmq.experiment.ExperimentService.experiments() et qiskit.providers.ibmq.experiment.ExperimentService.analysis_results() prennent désormais en charge un paramètre limit qui 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ésormais exclude_mine et mine_only comme mots-clés de filtrage.

  • La méthode qiskit.providers.ibmq.experimentservice.ExperimentService.experiments() accepte désormais exclude_public et public_only comme mots-clés de filtrage.

  • qiskit.providers.ibmq.managed.IBMQJobManager.run() accepte désormais un seul QuantumCircuit ou Schedule en 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() et qiskit.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éthodes qiskit.providers.ibmq.experiment.ExperimentService.experiments() et qiskit.providers.ibmq.experiment.ExperimentService.analysis_results() . Cette adresse limit a 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 qiskitrc qui commencent par "ibmq". Cela permet au fichier qiskitrc d'être utilisé pour d'autres fonctionnalités.

Remarques concernant la dépréciation

  • Utilisation de QasmQobj et PulseQobj dans la méthode qiskit.providers.ibmq.IBMQBackend.run() est désormais obsolète. QuantumCircuit et Schedule doivent désormais être utilisés.

  • L'attribut backends de qiskit.providers.ibmq.AccountProvider a été renommé en backend (sigular). Pour des raisons de compatibilité ascendante, vous pouvez continuer à utiliser backends, mais cette fonction est obsolète et sera supprimée dans une prochaine version. La méthode qiskit.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 IBMQJob client_version est obsolète. Vous pouvez cependant continuer à lire la valeur de l'attribut.

  • "Le mot-clé validate_qobj dans qiskit.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 CREATING si 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 TypeError est 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.
Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.