Skip to main content
IBM Quantum Platform

Notas de la versión de Qiskit 0.24


0.24.1

Terra 0.16.4

No cambia

Aer 0.7.6

No cambia

Ignis 0.5.2

No cambia

Aqua 0.8.2

No cambia

IBM Proveedor Q 0.12.2

Notas de actualización

  • qiskit.providers.ibmq.IBMQBackend.defaults() ahora devuelve los valores predeterminados de pulso para el backend si el backend soporta pulso. Sin embargo, es posible que su proveedor no admita el pulso aunque el backend sí lo haga. La bandera open_pulse en la configuración del backend indica si el proveedor lo soporta.

0.24.0

Terra 0.16.4

No cambia

Aer 0.7.6

Nuevas funciones

  • Esta es la primera versión de qiskit-aer que publica binarios precompilados en PyPI para Linux en aarch64 ( arm64 ). A partir de esta versión, se publicarán y soportarán los paquetes Linux aarch64.

Corrección de errores

  • Se corrige un error #1153 por el que siempre se aplicaba ruido en las compuertas condicionales independientemente de si la compuerta condicional se aplicaba realmente en función del valor del registro clásico. Ahora el ruido en una puerta condicional sólo se aplicará en el caso en que se aplique la puerta condicional.
  • Solucionado el problema nº 1126 : error al informar de la medición de un único qubit. El error se producía al copiar el valor medido en la estructura de datos de salida.
  • Anteriormente existía un desajuste entre el número de qubits que los objetos Aer backend indicaban por defecto que eran compatibles y el número máximo de qubits que el simulador podía ejecutar realmente. Esto se debió a un desajuste entre el código Python utilizado para calcular el número máximo de qubits y el código C++ utilizado para una comprobación en tiempo de ejecución del número máximo de qubits basada en la memoria disponible. Esto se ha corregido, así que por defecto ahora los backends de Aer permitirán ejecutar circuitos que quepan en toda la memoria disponible del sistema. Correcciones nº 1114

No cambia

Ignis 0.5.2

No cambia

Aqua 0.8.2

No cambia

IBM Proveedor Q 0.12.0

Preludio

  • qiskit.providers.ibmq.IBMQBackend.run() toma ahora uno o más métodos QuantumCircuit o Schedule. Uso de QasmQobj y PulseQobj ha quedado obsoleto. Las opciones de configuración del tiempo de ejecución, como el número de disparos, pueden establecerse a través del método run() o del método qiskit.providers.ibmq.IBMQBackend.set_options() . El primero se utiliza como ajuste único para el trabajo, y el segundo para todos los trabajos enviados al backend. Si una opción se establece en ambos lugares, el valor establecido en run() tiene prioridad.
  • IBM Las credenciales de Quantum se cargan ahora sólo desde las secciones del archivo qiskitrc que empiezan por 'ibmq'.

Nuevas funciones

  • Python 3.9 en esta versión. Ya puedes ejecutar el proveedor Qiskit IBMQ utilizando Python 3.9.

  • qiskit.providers.ibmq.AccountProvider.backends() tiene ahora un nuevo parámetro min_num_qubits que permite filtrar por el número mínimo de qubits.

  • qiskit.providers.ibmq.IBMQBackend.run() toma ahora uno o más métodos QuantumCircuit o Schedule. Las opciones de configuración del tiempo de ejecución, como el número de disparos, pueden establecerse a través del método run() o del método qiskit.providers.ibmq.IBMQBackend.set_options() . El primero se utiliza como ajuste único para el trabajo, y el segundo para todos los trabajos enviados al backend. Si una opción se establece en ambos lugares, el valor establecido en run() tiene prioridad. Por ejemplo:

    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 tiene ahora tres atributos adicionales, hub, grupo y proyecto, que identifican al proveedor utilizado para crear el experimento.

  • Ahora puede asignar un experiment_id a un trabajo al enviarlo mediante qiskit.providers.ibmq.IBMQBackend.run(). Puede utilizar este nuevo campo para agrupar una colección de trabajos que pertenezcan al mismo experimento. También se ha actualizado el método qiskit.providers.ibmq.IBMQBackendService.jobs() para permitir el filtrado por experiment_id.

  • qiskit.providers.ibmq.experiment.Experiment tiene ahora dos atributos adicionales:

    • nivel_compartido: El nivel en el que se comparte el experimento que determina quién puede verlo al listar experimentos. Esto se puede actualizar.
    • owner: El ID del usuario que subió el experimento. Lo establece el servidor y no se puede actualizar.
  • El método qiskit.providers.ibmq.experimentservice.ExperimentService.experiments() acepta ahora hub, group, y project como palabras clave de filtrado.

  • Los métodos qiskit.providers.ibmq.experiment.ExperimentService.experiments() y qiskit.providers.ibmq.experiment.ExperimentService.analysis_results() admiten ahora un parámetro limit que permite limitar el número de experimentos y resultados de análisis devueltos.

  • El método qiskit.providers.ibmq.experimentservice.ExperimentService.experiments() acepta ahora exclude_mine y mine_only como palabras clave de filtrado.

  • El método qiskit.providers.ibmq.experimentservice.ExperimentService.experiments() acepta ahora exclude_public y public_only como palabras clave de filtrado.

  • qiskit.providers.ibmq.managed.IBMQJobManager.run() ahora acepta un único QuantumCircuit o Schedule además de una lista de ellos.

  • La función least_busy() omite ahora los backends que están operativos pero en pausa, es decir, que aceptan trabajos pero no los procesan.

  • Ahora se puede hacer pickle de una instancia de IBMQJob , siempre que no contenga datos personalizados que no se puedan hacer pickle (por ejemplo, en la cabecera Qobj).

  • Ahora puede utilizar los dos nuevos métodos, qiskit.providers.ibmq.AccountProvider.services() y qiskit.providers.ibmq.AccountProvider.service() para averiguar qué servicios están disponibles en su cuenta y obtener una instancia de un servicio concreto.

  • El método qiskit.providers.ibmq.IBMQBackend.reservations() ahora siempre devuelve los modos de programación de reservas, incluso para las reservas que no se poseen.

Notas de actualización

  • Se han eliminado una serie de métodos y funciones anteriormente obsoletos, entre ellos:

    • qiskit.providers.ibmq.job.IBMQJob.to_dict()
    • qiskit.providers.ibmq.job.IBMQJob.from_dict()
    • Qconfig.py soporte
    • Uso de URL proxy que no incluyen protocolos
  • Un nuevo parámetro, limit , es ahora el primer parámetro de los métodos qiskit.providers.ibmq.experiment.ExperimentService.experiments() y qiskit.providers.ibmq.experiment.ExperimentService.analysis_results() . Este limit tiene un valor por defecto de 10, lo que significa que por defecto sólo se devolverán 10 experimentos y resultados de análisis.

  • IBM Las credenciales de Quantum se cargan ahora sólo desde las secciones del archivo qiskitrc que empiezan por 'ibmq'. Esto permite utilizar el archivo qiskitrc para otras funciones.

Notas sobre características en desuso

  • Uso de QasmQobj y PulseQobj en el método qiskit.providers.ibmq.IBMQBackend.run() ha quedado obsoleto. QuantumCircuit y Schedule en su lugar.

  • El atributo backends de qiskit.providers.ibmq.AccountProvider ha pasado a denominarse backend (sigular). Por compatibilidad con versiones anteriores, puede seguir utilizando backends, pero está obsoleto y se eliminará en una versión futura. El método qiskit.providers.ibmq.AccountProvider.backends() permanece inalterado. Por ejemplo:

    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.
  • El atributo IBMQJob client_version ha quedado obsoleto. Sin embargo, puede seguir leyendo el valor del atributo.

  • "La palabra clave validate_qobj en qiskit.providers.ibmq.IBMQBackend.run() está obsoleta y se eliminará en una futura versión. Si confías en esta validación de esquemas, deberías extraer los esquemas de Qiskit/ibmq-schemas y validar directamente tus cargas útiles con ellos.

Corrección de errores

  • Soluciona el problema por el que un trabajo podía quedar en el estado CREATING si el envío del trabajo fallaba a mitad de camino.
  • Soluciona el problema por el que el uso del widget del backend de Jupyter fallaba si las puertas base del backend no incluían las tradicionales u1, u2, y u3. Correcciones #844
  • Corrige el bucle infinito que se producía al pasar una instancia de IBMQRandomService a un proceso hijo.
  • Se soluciona el problema por el que aparecía TypeError si el servidor devolvía un código de error pero los datos de respuesta no tenían el formato esperado.
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.