Skip to main content
IBM Quantum Platform

IBM Quantum Notas de la versión de Compute Client


0.49.0 (10 de agosto de 2026)

Notas de actualización

  • Las clases de opciones del paquete options_models se basan ahora en de Pydantic, en lugar BaseModel de en dataclass. ( 3042 )
  • Se ha cambiado la versión predeterminada del esquema de Executor a « 2.0 ». ( 3043 )
  • El servicio « Qiskit Runtime » ha pasado a denominarse « IBM Quantum Compute », y se han actualizado las referencias al mismo en la documentación. La clase QiskitRuntimeService ya está disponible como IBMQuantumComputeService. ( 3070 )

Notas sobre características en desuso

  • El uso de stdlib asdict con las clases de opciones del options_models paquete ya no se recomienda, ya que ahora son modelos de Pydantic. En su lugar, utiliza directamente options.model_dump() para serializarlas en un dict. ( 3042 )
  • Esta opción post_selection ya no NoiseLearnerV3 se recomienda y se eliminará en una versión futura. ( 3160 )

Nuevas funciones

  • Se han añadido una MidCircuitReset instrucción y una pasada del ConvertToMidCircuitResetAndMeasure transpilador. La nueva versión amplía la funcionalidad ConvertToMidCircuitMeasure existente al sustituir también las instrucciones reset no terminales por implementaciones de reinicio a mitad de circuito específicas del hardware. ( 2903 )
  • Se ha añadido el campo bit_flip_checks a NoiseLearnerV3Options, lo que permite a los usuarios solicitar comprobaciones de inversión de bits en los resultados de los circuitos de aprendizaje con ruido. ( 2907 )
  • Se ha añadido un persist parámetro opcional a FakeBackendV2.refresh(). Por defecto (persist=True), el comportamiento no cambia: la configuración y las propiedades actualizadas sobrescriben los archivos de datos incluidos en el paquete instalado, de modo que la actualización se mantiene entre sesiones. Al pasar este parámetro persist=False , los datos actualizados se guardan en un directorio temporal, lo que permite refresh() que la operación se realice con éxito incluso cuando el paquete está instalado en una ubicación de solo lectura (por ejemplo, un directorio site-packages de todo el sistema) en la que, de otro modo, sobrescribir los archivos incluidos provocaría un PermissionError. En ese modo, el backend solo se actualiza para la sesión actual y los cambios no se guardan en el disco. ( 2977 )
  • IBMBackend Ahora cuenta con un atributo physical_qubits que devuelve el número de qubits físicos del backend (suma de qubits programables, qubits de reinicio y acopladores). El atributo también está disponible en FakeBackendV2 para los backends que no están retirados. ( 3080 )
  • El IAM URL utilizado por ahora QiskitRuntimeService.instances() puede anularse mediante la variable de entorno IAM_URL , siguiendo la misma convención que las variables GLOBAL_CATALOG_URL GLOBAL_SEARCH_URL y del SDK de IBM. Esto permite redirigir el tráfico de IAM a través de un punto de conexión privado (por ejemplo, https://private.iam.cloud.ibm.com) en entornos VPE sin necesidad de realizar ningún cambio en el código. ( 3135 )

Corrección de errores

  • Mejorar el mensaje de advertencia que aparece cuando un trabajo recuperado se ha serializado con una versión de Qiskit más reciente que la instalada localmente. Antes de llamar a qiskit.qpy.load, RuntimeDecoder ahora se muestra un mensaje claro que sugiere actualizar a pip install -U qiskit cuando la versión del formato QPY integrado es más reciente que la que admite la versión instalada de Qiskit. ( 2426 )
  • FakeProviderForBackendV2.backends() Ahora también devuelve ocho backends falsos que se podían importar desde qiskit_ibm_runtime.fake_provider pero que no figuraban en la lista de backends del proveedor, además de los que ya devolvía: FakeAachen, FakeBerlin, FakeBoston, FakeBrussels, FakeKingston, FakeMiami, FakePittsburgh, y FakeStrasbourg. Anteriormente, al llamar a ( FakeProviderForBackendV2().backend(name="fake_kingston") y a las otras siete) se producía un QiskitBackendNotFoundError a pesar de que las clases de fondo existían. ( 3164 )

0.48.0 (14 de julio de 2026)

Notas de actualización

  • La versión mínima necesaria de Qiskit es ahora 2.3.0, y la de Samplomatic es 0.18.0. Los usuarios de Executor ya pueden hacer girar sus circuitos con el "local_c1" grupo «twirling», compatible con la versión 0.17.0 de Samplomatic y posteriores. ( 2925 )

Notas sobre características en desuso

  • Todas las clases que representan resultados están ahora disponibles a través del qiskit_ibm_runtime.results paquete; por consiguiente, las siguientes clases se han trasladado al paquete «results»:

    • PauliLindbladError, LayerError, NoiseLearnerResult (que antes formaba parte de qiskit_ibm_runtime.utils.noise_learner_result)
    • EstimatorPubResult (que antes formaba parte de qiskit_ibm_runtime.utils.estimator_pub_result)

    La importación desde las ubicaciones anteriores ha quedado obsoleta, y las referencias se eliminarán en una futura versión. ( 2835 )

  • La ejecución de un SamplerV2 trabajo con valores diferentes pub.shots en cada PUB ha quedado obsoleta. Del mismo modo, se desaconseja ejecutar una EstimatorV2 tarea con valores diferentes pub.precision en los distintos PUB. ( 2992 )

  • Establecer MeasureNoiseLearningOptions.shots_per_randomization el int valor en está en desuso y se eliminará en futuras versiones. Por favor, utiliza "auto" en su lugar. ( 3004 )

Nuevas funciones

  • El RuntimeJobV2.usage() método admite ahora un parámetro opcional partial ( 2884 ):

    • Si el partial indicador es False, el método devolverá 0 hasta que finalice el cálculo del uso del trabajo.
    • TrueSi el partial indicador está activado, el método devolverá el consumo parcial incremental del trabajo, independientemente de que se haya completado el cálculo.
  • Se han añadido opciones para solicitar los tiempos del programa de circuitos y para obtener las resoluciones numéricas de los tramos de cada circuito al ejecutar tareas de Executor. ( 2790 ) ( 2789 )

  • Se ha añadido compatibilidad con instance="auto" en QiskitRuntimeService y QiskitRuntimeService.save_account(). Al pasar instance="auto" este parámetro, se activa explícitamente la selección automática de instancias sin que se generen las advertencias «instancia no definida» ni «Cargando/Utilizando instancia» durante la recuperación del backend. El valor se puede guardar en el archivo de la cuenta para que se aplique en cada instanciación posterior. ( 2854 )

  • Se ha añadido un use_fractional_gates parámetro a QiskitRuntimeService.least_busy(), que se ajusta al comportamiento del mismo parámetro en QiskitRuntimeService.backend(). Cuando se establece en True, solo se tienen en cuenta los backends que incluyen puertas fraccionarias en sus puertas básicas; los backends que no las incluyen se omiten y se da prioridad al siguiente backend que cumpla los requisitos y esté menos ocupado. ( 2855 )

  • Se ha reintroducido la compatibilidad para pasar varios decodificadores de resultados a RuntimeJobV2 y RuntimeJobV2.result() . ( 2899 )

  • Se ha añadido compatibilidad con QuantumProgram.meas_level = "both", que puede utilizarse para solicitar que en los resultados del programa cuántico aparezcan tanto las mediciones clasificadas como las con núcleo. ( 2973 )

Corrección de errores

  • 3*piSe ha corregido un error en la FoldRzzAngle etapa del transpilador por el que Rzz las puertas cuyo ángulo coincidía exactamente con el +-pi límite (por ejemplo, -3*pi, 7*pi) se agrupaban en un circuito que difería del original en una fase global de pi. Ahora, la pasada deduce la paridad de enrollamiento perdida 2*pi directamente a partir del ángulo de enrollamiento, de modo que el circuito plegado conserva la unidad completa (incluida la fase global) para todos los ángulos. ( 2856 )
  • SamplerV2.run()Al utilizar backends de diferentes instancias, el servicio utilizado por los métodos de EstimatorV2.run(),, y otras primitivas .run() garantiza ahora que el cliente de la API utilizado para enviar el trabajo sea el que pertenece al backend, en lugar de utilizar siempre el cliente de la API activo. ( 2931 )
  • Se ha corregido el plegado de los ángulos fuera de límites rzz durante la transpilación. Con la configuración anterior se producía un error por el que las pasadas de traducción que se ejecutaban después de la pasada « FoldRzzAngle » podían modificar los ángulos y hacer que fueran negativos o superiores a pi/2. El error se soluciona configurando el angle_bounds en el objetivo del backend como (0, pi/2) para la rzz puerta y registrando un rzz envoltorio en la pasada del WrapAngles transpilador. Este mecanismo sustituye el uso del IBMDynamicFractionalTranslationPlugin plugin y la FoldRzzAngle etapa del transpilador. ( 2960 )

Otras notas

  • La biblioteca utiliza ahora la versión 2026-04-15 de la API REST de Qiskit Runtime. ( 2845 )
  • Se ha eliminado el complemento IBMFractionalTranslationPlugin de transpilador, que ya no se utilizaba. ( 2880 )
  • La versión predeterminada del esquema para Executor es ahora 1.1. ( 2911 )

0.47.0 (12 de mayo de 2026)

Nuevas funciones

  • Se han añadido las clases «Executor» y « QuantumProgram », que permiten aprovechar al máximo el conjunto de funciones que ofrece el paquete Samplomatic.

  • Se ha añadido la clase « NoiseLearnerV3 » para calcular el ruido de las instrucciones que contienen cuadros anotados.

  • Se ha añadido un script para recuperar la configuración y las propiedades de un backend real.

  • Se ha añadido un nuevo backend ficticio, FakeKingston. Se trata de un dispositivo Heron de 156 qubits r2. ( 2711 )

  • global_searchLas interacciones con los servicios de la plataforma « IBM Cloud » (que tienen lugar durante QiskitRuntimeService la instanciación, con los nombres de servicio, global_catalog y resource_controller) ahora se ajustan a los mecanismos de configuración del SDK de « IBM Cloud », lo que permite pasar configuraciones personalizadas a través de variables de entorno o archivos de credenciales. ( 2712 )

  • Se ha añadido draw_chunk_timings() a qiskit_ibm_runtime.visualization para representar gráficamente los tiempos de ejecución de una o varias instancias de la nueva clase contenedora de tiempos de fragmentos, ChunkTiming, en un gráfico de barras interactivo. También hay disponible un método práctico ChunkTiming.draw() para el caso de un único resultado mediante job.result().timing.draw(). ( 2727 )

  • -aPartiendo del script de instantáneas del backend ficticio presentado en la versión 2711, el script ahora también genera __init__.py archivos y fake_<backend_name>.py para cada backend, y añade un nuevo argumento /--account para seleccionar una cuenta específica al recuperar datos del backend de diferentes regiones de la nube (por ejemplo, us-east frente a eu-de).

    Con este script actualizado, se han añadido los siguientes backends ficticios que faltaban: FakeAachen, FakeBerlin, FakeBoston, FakeBrussels, FakeMiami, FakePittsburgh, y FakeStrasbourg. ( 2736 )

Notas de actualización

  • Los RuntimeJobV2.result() métodos y RuntimeJobV2.wait_for_final_state() ahora admiten un parámetro opcional poll_interval , que permite personalizar el intervalo entre las solicitudes al servicio. El valor predeterminado es ahora 0.5 segundos para los trabajos que no son de sesión, y 0.1 segundos para los trabajos de sesión. ( 2762 )

Notas sobre características en desuso

  • Se ha rediseñado el paquete extras « Python »:

    • common y documentation están obsoletos y se eliminarán en v0.48.
    • performance Se ha introducido para las dependencias opcionales que no son de desarrollo y que aportan un mayor rendimiento o funcionalidades adicionales.
    • Las dependencias de desarrollo tienen ahora una granularidad más precisa (style, style_local, test, doc), y la opción dev «extra» sigue permitiendo instalar un conjunto completo de herramientas de desarrollo. ( 2707 )

Corrección de errores

  • `GlobalSearchV2Los proxies argumentos y ssl_verification de QiskitRuntimeService ahora se transmiten a las solicitudes subyacentes de HTTP dirigidas a los servicios, GlobalCatalogV1, y IAMAuthenticator , lo que permite instanciar QiskitRuntimeService correctamente cuando se utiliza un proxy. ( 2592 )
  • Se ha añadido la posibilidad de especificar calibration_id y use_fractional_gates al iniciar una sesión desde un session_id. Esto corrige errores conocidos, concretamente el hecho de que al instanciar un Session objeto mediante from_id no se conserva el valor de calibration_id establecido durante la instanciación inicial del original Session , ni el valor de use_fractional_gates establecido durante la instanciación inicial del backend. ( 2652 )
  • filter``map``NoiseLearner.run() Ahora es compatible con generadores, expresiones de generador y otros iteradores de una sola pasada. Anteriormente, estos se agotaban tras la comprobación de tipos inicial, lo que provocaba que los trabajos se enviaran sin ningún circuito. ( 2759 )

0.46.1 (23 de marzo de 2026)

Corrección de errores

  • Se ha corregido un error por el que, en la versión setuptools_scm anterior, se había ~=8.0 asignado erróneamente a. Se ha restablecido la restricción de versión a >=6.2.

0.46.0 (23 de marzo de 2026)

Otras notas

  • La versión mínima necesaria de Qiskit es ahora 2.2.0. ( 2689 )

0.45.1 (12 de febrero de 2026)

Corrección de errores

  • Al crear objetos de backend, .QiskitRuntimeService anteriormente solo rzz comprobaba las puertas en las puertas básicas del backend para decidir si utilizar la caché o crear un nuevo objeto de backend. Ahora, .QiskitRuntimeService comprobará las rx puertas y rzz en las puertas básicas del backend para decidir si actualizar la configuración o recuperarla de la caché. ( 2524 )
  • La inicialización ya no falla si no es posible QiskitRuntimeService recuperar la información del catálogo de una instancia (por ejemplo, debido a que la instancia está archivada). ( 2603 )

0.45.0 (8 de enero de 2026)

Nuevas funciones

  • qiskit-ibm-runtime Ahora es compatible con Qiskit v2.3.
  • El delete_job() método ha sido reintroducido. ( 2541 )

Corrección de errores

  • Corrección de QiskitRuntimeService.backend() un error que se producía cuando el indicador use_fractional_gates=True comprobaba si había puertas o, o ambas Rx , Rzz en lugar de solo Rzz puertas en la base del backend. ( 2520 )

Otras notas

  • La versión mínima requerida de Qiskit es ahora 2.0.0, ya que la 1.x serie Qiskit ya no es compatible. ( 2543 )

0.44.1 (12 de febrero de 2026)

Notas sobre características en desuso

  • El envío de circuitos con campos no vacíos circuit.calibrations está en desuso y se eliminará en qiskit-ibm-runtimev0.45. ( 2574 )

Corrección de errores

  • Al crear objetos de backend, .QiskitRuntimeService anteriormente solo rzz comprobaba las puertas en las puertas básicas del backend para decidir si utilizar la caché o crear un nuevo objeto de backend. Ahora, .QiskitRuntimeService comprobará las rx puertas y rzz en las puertas básicas del backend para decidir si actualizar la configuración o recuperarla de la caché. ( 2524 )
  • La inicialización ya no falla si no es posible QiskitRuntimeService recuperar la información del catálogo de una instancia (por ejemplo, debido a que la instancia está archivada). ( 2603 )

0.44.0 (16 de diciembre de 2025)

Notas de actualización

  • Si se solicita un backend que no admite puertas fraccionarias al activar el indicador use_fractional_gates=True en QiskitRuntimeService.backend(), IBMInputValueError se generará un error. ( 2405 )

  • Se ha actualizado el resolutor URL para que tanto el canal ibm_cloud como ibm_quantum_platform el canal generen ahora el mismo punto de entrada en tiempo de ejecución: URL (https://quantum.cloud.ibm.com/api/v[x]). Anteriormente, el ibm_cloud canal generaba una URL obsoleta ( URL ) y dependía de redireccionamientos. Este cambio elimina esa dependencia y armoniza la generación de « URL » en todos los canales. No hay cambios visibles para el usuario. ( 2486 )

  • Se ha establecido un orden draw_circuit_schedule_timing() de canales en el eje y para, de acuerdo con el orden de los canales en el argumento included_channels de entrada. ( 2492 )

  • Se ha añadido un nuevo argumento merge_common_instructions de entrada draw_circuit_schedule_timing() que, si se establece en True, fusionará las instrucciones del mismo tipo basándose en la continuidad temporal.

    Ejemplo ( 2494 ):

    from qiskit_ibm_runtime.visualization import draw_circuit_schedule_timing
    
    
    job_result: SamplerPubResult = job.result()
    circuit_schedule: str = job_result[0].metadata["compilation"]["scheduler_timing"]["timing"]
    
    fig = draw_circuit_schedule_timing(
        circuit_schedule=circuit_schedule,
        merge_common_instructions=True
        )
    
    fig.show()

Nuevas funciones

  • Cuando se envía un trabajo, ahora aparecerán advertencias si la instancia utilizada ha alcanzado su límite. ( 2458 )

  • Se ha añadido un backend «Fake Nighthawk» (FakeNighthawk) al módulo fake_provider .

    Su mapa de acoplamiento y puertas básicas coinciden con los de un backend Nighthawk real, pero las propiedades no pretenden representar los valores de error típicos de Nighthawk. Puedes utilizar este backend falso para, por ejemplo, transpilear y optimizar tus circuitos en preparación para los próximos backends Nighthawk. Para un circuito Ising de red cuadrada de 100 qubits con 10 pasos de Trotter, FakeNighthawk mostró una mejora del 600 % en la profundidad del circuito en comparación con un backend Heron. ( 2476 )

  • El qiskit_ibm_runtime.transpiler.passes módulo se ha ampliado con una nueva pasada del transpilador: ConvertMidCircMeas. Esta pasada detecta instrucciones no terminales Measure en un circuito y las convierte en instrucciones de medición en tiempo real compatibles con el dispositivo de destino. El pase se compone de dos argumentos:

    • target (obligatorio): El objetivo del backend que define las instrucciones compatibles.


    • mcm_name (opcional): El nombre de la instrucción de medición a mitad de circuito que se va a utilizar.

      El valor predeterminado es measure_2. El nombre debe seguir el patrón measure_[X] (por ejemplo, measure_3, measure_reset).

    Durante la inicialización, el paso comprueba que el destino especificado admita la instrucción de medición a mitad de circuito indicada en al menos un qubit. De lo contrario, la construcción fracasa. Al ejecutarse, el comando realiza lo siguiente:

    • Funciona en un circuito ya tendido.
    • Sustituye únicamente las Measure` instrucciones no terminales por la instrucción de medición en medio del circuito especificada, siempre que el destino la admita en el qubit físico correspondiente.

    No hace lo siguiente:

    • No sustituye a las mediciones en el terminal.
    • No sustituye a las instrucciones de medición en circuito existentes (por ejemplo, measure_2 a measure_3).
    • No convierte las mediciones en el punto medio del circuito en mediciones en los terminales.

    Ejemplo de uso ( 2317 ):

     from qiskit import QuantumCircuit
     from qiskit.transpiler import PassManager
     from qiskit.providers.fake_provider import GenericBackendV2
     from qiskit_ibm_runtime.circuit import MidCircuitMeasure
     from qiskit_ibm_runtime.transpiler.passes import ConvertToMidCircuitMeasure
     from qiskit.transpiler.target import Target
    
     # Fake target construction for demo purposes
     mcm = MidCircuitMeasure()
     target = GenericBackendV2(num_qubits=2, seed=0).target
     target.add_instruction(mcm, {(i,): None for i in range(2)})
    
    # Example usage
    qc = QuantumCircuit(2, 2)
    qc.measure(0, 0)
    qc.cx(0,1)
    qc.measure(1, 1)
    
    my_pass = ConvertToMidCircuitMeasure(target)
    pm = PassManager([my_pass])
    new_qc = pm.run(qc)
    print(new_qc)

    Salida prevista:

         ┌────────────┐
    q_0:0           ├──■─────
         │            │┌─┴─┐┌─┐
    q_1: ┤  Measure_2 ├┤ X ├┤M├
         │            │└───┘└╥┘
    c_0:0           ╞══════╬═
         └────────────┘      ║
    c_1: ════════════════════╩═

Corrección de errores

  • Corrección del error de autenticación IAM al utilizar una configuración de proxy especificada en QiskitRuntimeService. El parche inyecta los proxies atributos verify y de QiskitRuntimeService en IAMTokenManager cuando se utiliza la autenticación en la nube (CloudAuth). ( 2344 )

Otras notas

  • Se han eliminado los métodos obsoletos check_pending_jobs()``delete_job() y, junto con la compatibilidad con Python 3.9. ( 2439 )
  • Añadido CircuitSchedule como entrada opcional a draw_circuit_schedule_timing(). Esto permite el preprocesamiento manual de los datos de sincronización del programa del circuito fuera de su función de dibujo. ( 2457 )

0.43.1 (23 de octubre de 2025)

Notas de actualización

  • Al iniciar el sistema QiskitRuntimeService con una cuenta guardada, los warning mensajes de registro de nivel relativos al nombre de la cuenta guardada (o a la cuenta predeterminada) se han rebajado al info nivel. ( 2445 )

0.43 (14 de octubre de 2025)

Notas sobre características en desuso

  • Se ha añadido un nuevo target argumento al inicializador tras las pasadas de análisis y relleno del transpilador: ALAPScheduleAnalysis, PadDelay, PadDynamicalDecoupling, BlockBasePadder. Este cambio armoniza estas pasadas con la arquitectura general del transpilador de Qiskit y sustituye al uso del durations argumento.

    La DynamicCircuitInstructionDurations clase, utilizada en las pasadas de programación personalizadas, ha quedado obsoleta a partir de la versión qiskit-ibm-runtimev0.43. Esta clase se optimizó para las operaciones de programación en los procesadores Eagle, pero ha quedado obsoleta con la oferta actual de procesadores Heron. Esta clase se utilizó para definir el `durations argumento en las pasadas de programación mencionadas anteriormente (ALAPScheduleAnalysis, PadDelay, PadDynamicalDecoupling, BlockBasePadder). El argumento también está en desuso y se eliminará en una futura versión. target Se recomienda a los usuarios que migren al argumento. ( 2403 )

  • La clase RuntimeOptions está obsoleta. Originalmente, esta clase sólo se utilizaba con programas personalizados y ya no es necesaria. (2435 )

Nuevas funciones

  • El qiskit_ibm_runtime paquete se ha ampliado con dos nuevos módulos: circuit y circuit.library. Estos módulos están diseñados para reflejar la estructura de los módulos correspondientes qiskit del SDK, al tiempo que proporcionan implementaciones específicas de cada proveedor de los objetos de circuito y las instrucciones.

    La primera incorporación a esta nueva biblioteca de circuitos es la clase MidCircuitMeasure . Esta clase permite la creación de instrucciones que siguen la convención de nomenclatura measure_<identifier>, que se asignan a instrucciones específicas de hardware de medición de mitad de circuito que coinciden con ese patrón. El nombre por defecto de esta instrucción es "measure_2".

    Ejemplo de uso:

    from qiskit import QuantumCircuit
    from qiskit_ibm_runtime.circuit import MidCircuitMeasure
    
    measure_2 = MidCircuitMeasure()
    measure_3 = MidCircuitMeasure("measure_3")
    qc = QuantumCircuit(1, 1)
    qc.append(measure_2, [0], [0])
    qc.append(measure_3, [0], [0])
    qc.measure([0], [0])

    Salida:

       ┌────────────┐┌────────────┐┌─┐
    q:0           ├┤0           ├┤M├
       │  Measure_2 ││  Measure_3 │└╥┘
    c:0           ╞╡0           ╞═╩═
       └────────────┘└────────────┘

    La utilidad convert_to_target() se ha actualizado para admitir un campo "instruction_signatures" adicional en los archivos de configuración del backend (configuration.json). Este campo está destinado a representar instrucciones no unitarias y no estándar notificadas por el backend y debe respetar el siguiente esquema:

    "instruction_signatures" = [
        {
            "name": "measure_2",
            "num_qubits": 1,
            "num_clbits": 1,
            "parameters": [],
            "return_type": "Bool",
            "description": "An alternative measurement. This can be used as a mid-circuit measurement in a dynamic circuit. ",
        },
        {
            "name": "reset_2",
            "num_qubits": 1,
            "num_clbits": 1,
            "parameters": [],
            "return_type": "Bool",
            "description": "An alternative reset instruction.",
        }
    ]

    Además de este cambio, la función convert_to_target() ahora acepta un argumento custom_name_mapping y expone las banderas add_delay y filter_faulty de la implementación original del núcleo. (2316 )

  • QiskitRuntimeService.backends() y QiskitRuntimeService.backend() tiene un nuevo parámetro, calibration_id. Esta calibración personalizada se utilizará para crear el objetivo y también se empleará al ejecutar tareas primitivas en el backend. ( 2432 )

  • Se ha añadido una nueva función visualization.draw_circuit_schedule_timing() para trazar los datos de temporización de la programación de circuitos devueltos en los metadatos de los resultados del trabajo. Actualmente se trata de una función beta y requiere que la opción experimental de "scheduler_timing" esté configurada en True, como se muestra a continuación. Actualmente sólo está disponible para los empleos de Sampler .

    sampler = SamplerV2(backend)
    sampler.options.experimental = {
        "execution": {
            "scheduler_timing": True,
        },
    }

    A continuación, se puede acceder a los datos de planificación del circuito desde los metadatos de resultados del trabajo de la siguiente manera:

    job_result: SamplerPubResult = job.result()
    circuit_schedule = job_result[0].metadata["compilation"]["scheduler_timing"]
    circuit_schedule_timing = circuit_schedule["timing"]

    Esta función utiliza la nueva clase CircuitSchedule para cargar, analizar, preprocesar y trazar los datos para su trazado utilizando una interfaz compatible con Plotly. (2328 )

  • Ahora se admiten puntos finales privados virtuales para IBM Quantum Platform. Obtenga más información en nuestra guía sobre puntos finales privados virtuales. (2367 )

  • Ahora es posible recuperar las etiquetas de un trabajo sin tener que recuperarlo realmente con QiskitRuntimeService.job(). ( 2420 )

  • El paso ConvertISAToClifford soporta ahora la Cliffordización de circuitos que contienen puertas fraccionarias. (2427 )


0.42.0 (15 de septiembre de 2025)

Corrección de errores

  • El comportamiento del QiskitRuntimeService.least_busy() método era inconsistente porque esperaba una respuesta fija de la API para el campo «reason», que en el esquema de la API figura como opcional. Esto se ha solucionado dejando de depender de este campo. ( 2411 )

Notas de actualización

  • Cuando QiskitRuntimeService se inicialice sin una instancia y no haya ninguna instancia de cuenta guardada, ahora aparecerá una advertencia en la que se detallarán los filtros actuales (tags, region, y plans_preference) y las instancias disponibles. Si plans_preference no se configura, se da prioridad a las instancias del plan gratuito y de prueba frente a las instancias de pago.

    También se han añadido advertencias adicionales para dejar más clara la instancia activa actual:

    • Mensajes de advertencia para indicar a los usuarios si están utilizando una cuenta guardada o si están utilizando credenciales especificadas manualmente.
    • Cuando Qiskit Runtime seleccione automáticamente una instancia para el backend solicitado, aparecerá un aviso con el nombre de la instancia y el tipo de plan.

    Ahora puedes iniciar QiskitRuntimeService sesión solo con un token de API (clave). Dado que se ha eliminado el ibm_quantum nombre del canal y que tanto el canal ibm_cloud como ibm_quantum_platform el canal apuntan a la misma API, el channel parámetro ya no es necesario. ibm_quantum_platform es el canal predeterminado. ( 2375 )

  • Dado que en 0.32.0 se eliminó el soporte para la transmisión de resultados, se han eliminado la opción de entorno obsoleta (0.38.0) callback, así como los parámetros BaseRuntimeJob client_params y user_callback.

    También se ha eliminado la clase RuntimeJob . Todas las primitivas devuelven trabajos como RuntimeJobV2. Se han actualizado las sugerencias de tipo en todo el código base para reflejar este cambio. (2298 )

  • RuntimeJobV2.properties() Ahora se recuperarán las propiedades del backend correspondientes al momento en que el trabajo comenzó a ejecutarse, en lugar de al momento en que se creó. ( 2369 )

  • Se ha corregido una incoherencia en la conversión de unidades de rep_times en QasmBackendConfiguration para mantener la coherencia entre la inicialización y la serialización. Ahora, el parámetro se convierte correctamente de microsegundos a segundos durante la inicialización y vuelve a microsegundos al serializarse mediante to_dict(), lo que coincide con el comportamiento de otros parámetros de tiempo: rep_delay_range y default_rep_delay. ( 2386 )

  • A partir de ahora, se generará un error constante durante la inicialización del servicio si se proporciona un token de API no válido a QiskitRuntimeService.

    También se producirá un error si la cuenta asociada al token especificado no tiene acceso a la instancia dada. Este era el comportamiento documentado anteriormente en las notas de la versión 0.40.0 . (2408 )

Nuevas funciones

  • Dado que los backends ahora admiten la ejecución de trabajos que contienen tanto compuertas fraccionarias como circuitos dinámicos, las instrucciones de flujo de control ya no se filtran al utilizar use_fractional_gates=True. Como resultado, existe un nuevo plugin de traducción de estados, IBMDynamicFractionalTranslationPlugin, para orientar circuitos tanto con circuitos dinámicos como con puertas fraccionarias.

    IBMFractionalTranslationPlugin está obsoleto porque ya no es necesario. (2366 )


0.41.1 (18/08/2025)

Corrección de errores

  • Se han corregido varios errores por los que, al tener una instancia guardada por defecto o al pasar el nombre de la instancia, se producía un IBMInputValueError al crear un Session / Batch

    Además, QiskitRuntimeService.least_busy() ahora devuelve correctamente el backend menos ocupado en los casos en los que se pasa el instance parámetro y no hay ninguna instancia predeterminada. ( 2359 )


0.41.0 (24 de julio de 2025)

Preludio

La versión qiskit-ibm-runtime v0.41.0 se centra en la eliminación de IBM Quantum Platform Classic y en la mejora de la experiencia de usuario para la nueva IBM Quantum Platform. Entre las nuevas funciones, mejoras y correcciones de errores menores, destacan las siguientes:

Notas de actualización

  • Debido a la desaparición de IBM Quantum Platform Classic, el canal ibm_quantum ya no es compatible con qiskit-ibm-runtime. No se podrá acceder a las cuentas y datos guardados del canal ibm_quantum . Utilice en su lugar el canal ibm_quantum_platform . Consulte nuestra guía de migración para obtener más información. (2289 )

Nuevas funciones

  • Se ha añadido un nuevo parámetro, tags, al inicializador y QiskitRuntimeService.save_account() al QiskitRuntimeService método. tags Se puede utilizar para filtrar instancias, de modo que solo se devuelvan aquellas que tengan las etiquetas indicadas.

    Además, si no se devuelven instancias válidas al utilizar los filtros tags, region, o plans_preference , ahora se producirá un error en la inicialización. Asegúrese de que los nombres de tags y region coinciden exactamente con la instancia tags o region (sin distinguir mayúsculas de minúsculas). En plans_preference, siempre que se introduzca un nombre de plan que coincida, se dará prioridad a las instancias con el nombre de plan coincidente. (2277 )

  • Con la migración a la nueva IBM Quantum Platform, había algunas incoherencias con IBM Quantum Platform Classic que debían solucionarse:

    • QiskitRuntimeService.usage() Ahora devuelve información de uso de la instancia activa actual de IBM Cloud.
    • QiskitRuntimeService.delete_job() No es compatible con la nueva plataforma, por lo que ha quedado obsoleto.
    • RuntimeJobV2.instance() devolverá ahora el CRN de la instancia IBM Cloud.
    • RuntimeJob.queue_usage() no es compatible con la nueva plataforma, por lo que ha quedado obsoleta. (2296 )
  • El soporte para ejecutar qiskit-ibm-runtime con Python 3.9 ha sido obsoleto y será eliminado en una futura versión.

    Además, qiskit-ibm-runtime ya es oficialmente compatible con Python 3.13. (2314 )

  • Al guardar una cuenta, ahora hay una comprobación de validación para asegurarse de que los parámetros region, plans_preference, y tags son válidos. (2319 )

  • Hay un nuevo método que QiskitRuntimeService.active_instance() devuelve el objeto IBM Cloud CRN de la instancia activa actual.

    El QiskitRuntimeService.jobs() método se ha actualizado para que acepte correctamente el instance parámetro, que se puede utilizar para filtrar trabajos. ( 2325 )

  • QiskitRuntimeService.usage() Se ha actualizado para incluir un usage_remaining_seconds campo. Este campo incluye la diferencia entre el valor notificado usage_limit_seconds o usage_allocation_seconds (dependiendo de cómo esté configurada la instancia) y usage_consumed_seconds. Para obtener más información sobre los límites de asignación de instancias, haz clic aquí. ( 2329 )

  • refresh() tiene un nuevo parámetro, use_fractional_gates, que se puede establecer en True para permitir que el falso backend incluya puertas fraccionarias. Tenga en cuenta que este método sólo funciona si tiene acceso al backend real. (2342 )

  • Se ha actualizado el QiskitRuntimeService para que utilice una nueva versión de la API. Con la nueva versión, el QiskitRuntimeService.least_busy() método se ha actualizado para aprovechar la versión mejorada BackendsResponseV2 , lo que lo hace considerablemente más rápido. ( 2323 )

  • La clase TwirledSliceSpan tiene un nuevo miembro data_slice_version de datos de tipo entero, con un valor por defecto de 1. Cuando se establece en 2, las tuplas de la sección de datos contienen información sobre las tomas de PUB, que se utilizan para TwirledSliceSpan.mask() dar forma a la matriz devuelta. El último eje se recortará, de modo que su longitud se reducirá a pub_shots. ( 2312 )

  • Añadida serialización para qiskit.quantum_info.PauliLindbladMap. (2297 )

  • Existe un nuevo método convert_to_rzz_valid_pub(), que puede utilizarse para transformar un PUB en un PUB equivalente que sea compatible con las restricciones Rzz. Actualmente, el método no admite circuitos dinámicos y no preserva la fase global. (2126 )

Corrección de errores

  • Se ha corregido un error por BasePrimitive el que las primitivas instanciadas dentro de un Session gestor de contexto o Batch sin el mode parámetro obtenían el backend del servicio (por nombre) en lugar de utilizar el backend pasado a o Session Batch. Esto podría provocar problemas cuando los usuarios modificaran el Session backend o Batch (por ejemplo, al eliminar una puerta), ya que las primitivas obtendrían del servicio el objeto del backend sin modificar. Tras la corrección, se utiliza directamente el Session objeto backend o Batch . ( 2282 )
  • Se ha solucionado un problema por IBMBackend el que los cambios en las propiedades, como las modificaciones en basis_gates, persistían incluso después de que se hubiera actualizado el objeto del backend. ( 2283 )
  • Se ha corregido la serialización de los intervalos de ejecución, para garantizar que las ejecuciones de versiones antiguas de qiskit-ibm-runtime no se bloqueen al intentar descodificar intervalos de ejecución recién codificados. Sin embargo, la deserialización con versiones anteriores devolverá ahora los intervalos de ejecución en formato de diccionario, y no en forma de objeto ExecutionSpans . TwirledSliceSpanV2Como parte de este trabajo, también hemos eliminado el data_slice_version campo de TwirledSliceSpan; los intervalos de segmentos «twirled» que tienen en cuenta las tomas de pub ahora se gestionan mediante una nueva clase. ( 2347 )

Otras notas

  • max_experimentsLos atributos obsoletos IBMBackend y se han eliminado, max_shots y el IBMBackend.max_circuits() método ahora devuelve None. Consulta la guía de límites de trabajos para obtener más información. ( 2235 )
  • Se han eliminado los métodos defaults() y FakeBackendV2 , que estaban obsoletos IBMBackend . Quedaron obsoletas en la versión « v0.38.0 ». También se han eliminado los valores predeterminados de Pulse de todos los backends falsos. ( 2238 )
  • Se ha mejorado el mensaje de error que se muestra cuando ExecutionSpan.mask() se invoca para un PUB que no está incluido en el span. ( 2311 )

0.40.1 (4 de junio de 2025)

Corrección de errores

  • Se ha corregido un problema por el que, si no se había guardado ninguna instancia ni se había pasado ninguna durante la inicialización, el servicio no podía realizar ninguna llamada a la API hasta QiskitRuntimeService.backend() que se llamara primero a o QiskitRuntimeService.backends() a.
  • Se ha corregido un error por el que si se establecía use_fractional_gates pero ya se había almacenado en caché la configuración del backend, podía devolverse la configuración incorrecta. (2269 )

Otras notas

  • Se han actualizado los mensajes de error relacionados con los ángulos de puerta de rzz que estaban fuera del rango permitido de 0 a π/2\pi/2 durante la validación del circuito para aclarar que el valor del ángulo solicitado en el circuito era el problema y no un valor de ángulo proporcionado por el backend. (2276 )

0.40.0 (28 de mayo de 2025)

Nuevas funciones

  • Se han introducido los siguientes cambios para apoyar la próxima migración de la plataforma IBM Quantum :

    • Se ha introducido un nuevo tipo de canal, ibm_quantum_platform, para la inicialización de servicios (QiskitRuntimeService()). Se une a los canales existentes ibm_quantum (ahora obsoleto) y ibm_cloud . Por defecto, se selecciona ibm_quantum_platform cuando no se especifica ningún canal. Este nuevo canal conecta con la nueva API de la plataforma IBM Quantum y está pensado para sustituir a ibm_cloud. Mientras tanto, el canal ibm_cloud redirigirá a la nueva API, pero se desaconseja su uso continuado.

    • Ya no es necesario introducir instance un valor para guardar (QiskitRuntimeService.save_account()) o inicializar (QiskitRuntimeService()) una cuenta en la nueva plataforma (yibm_quantum_platform, de forma temporal, ibm_cloud en los canales). Si no se pasa ninguna instancia, se comprobarán todas las instancias al recuperar un backend, (service.backend("backend_name")). Si se pasa una instancia a QiskitRuntimeService.save_account(), o se pasa durante la inicialización, se utilizará como instancia predeterminada al recuperar backends. La instancia que se pase durante la inicialización tendrá prioridad sobre la guardada en la cuenta.

    • Ten en cuenta que el token de la API de IBM Cloud (token) es necesario para guardar (QiskitRuntimeService.save_account()) o inicializar (QiskitRuntimeService()) una cuenta en la nueva plataforma. Se considera el identificador de la cuenta y desbloqueará los recursos asociados a la cuenta en la que se creó el token. Aquí puedes consultar la lista de tokens por cuenta. Solo se puede utilizar una cuenta por token de API. Si quieres utilizar varias cuentas, debes crear varios tokens de API.

    • Los QiskitRuntimeService.backend() métodos y QiskitRuntimeService.backends() se han actualizado para aceptar un instance pasado explícitamente al recuperar backends: service.backend(name="...", instance="...").

    • Se han añadido nuevos parámetros, region, y plans_preference, al inicializador y QiskitRuntimeService.save_account() al QiskitRuntimeService método. Se pueden utilizar para dar prioridad a determinadas instancias en la nueva plataforma (yibm_quantum_platform, de forma temporal, ibm_cloud a los canales) sin tener que especificar explícitamente el CRN. Más concretamente:

      • region: Establece una preferencia de región. us-east o eu-de.
      • plans_preference: Es una lista de tipos de cuenta, ordenados por preferencia. Se dará prioridad a una instancia del primer tipo de la lista.

      Por ejemplo, si region se guarda como us-east, sólo se comprobarán las instancias de us-east . Si se define plans_preference , las instancias se priorizarán en el orden indicado, por lo que ['Open', 'Premium'] priorizaría todas las instancias del Plan Abierto, después todas las del Plan Premium y después el resto. Tenga en cuenta que los nombres de los planes en plans_preference deben coincidir exactamente con los nombres de la API (sin distinguir mayúsculas de minúsculas).

    • El instance parámetro de entrada de QiskitRuntimeService se ha ampliado para admitir nuevos tipos de entrada para los ibm_quantum_platform canales y ibm_cloud . Además del nombre de recurso « IBM Cloud » ( CRN ), ahora se puede introducir el nombre de la instancia como valor de la instancia.

    • El instances() método se ha ampliado para mostrar todas las instancias disponibles asociadas a una cuenta para los ibm_quantum_platform canales y ibm_cloud , además del canal ya habilitado ibm_quantum .

      Los siguientes fragmentos de código muestran los nuevos patrones de uso habilitados por los cambios descritos anteriormente (2239 ):

      # save account
      service = QiskitRuntimeService.save_account(
        # No channel needs to be specified, ibm_quantum_platform is the default
        token=token,
        region="eu-de", # Optional
        plans_preference=['Open',...], #Optional
        set_as_default=True  #Optional
        )
      
      # initialize account
      service = QiskitRuntimeService() # defaults to ibm_quantum_platform account
      service.backend(name="...") # picks instance based on saved preferences
      service.backend(name="...", instance="...") # can also explicity pass in an instance to use
      
      # initialize account with instance
      service = QiskitRuntimeService(instance = "...") # sets instance as default instance
      service.backend(name="...") # only checks default instance, fails if the backend not in the instance
      service.backend(name="...", instance="...") # can still explicity pass in a different instance
      
      # OR
      
      # save account with instance
      service = QiskitRuntimeService.save_account(
        # No channel needs to be specified, ibm_quantum_platform is the default
        token=token,
        instance="..." # This will be the default instance
        region="us-east", # Optional
        plans_preference=['Open',...], #Optional
        set_as_default=True  #Optional
        )
      
      # initialize account
      service = QiskitRuntimeService() # defaults to ibm_quantum_platform account
      service.backend(name="...") # only checks saved default instance from save_account
      service.backend(name="...", instance="...") # can also explicity pass in an instance which takes precendence
      
      # initializing account with instance works the same way
      service = QiskitRuntimeService(instance = "...") # sets instance as default instance, overrides instance from save_account
      service.backend(name="...") # only checks default instance, fails if the backend not in the instance
      service.backend(name="...", instance="...") # can still explicity pass in a different instance
  • La opción private de EnvironmentOptions es ahora compatible con los canales ibm_cloud y ibm_quantum_platform (nueva plataforma Quantum IBM ). Cuando esta opción se establece en True, el trabajo se devolverá sin parámetros, y los resultados sólo se pueden recuperar una vez.

    También hay una nueva propiedad private() que devuelve si un trabajo es privado o no. (2263 )

Corrección de errores

  • Se ha eliminado la llamada a defaults() en target() porque ya no se utilizan los valores predeterminados de backend en la generación de objetivos. (2261 )

0.39.0 (13 de mayo de 2025)

Nuevas funciones

  • La versión máxima admitida del servicio QPY es ahora la 14. (2231 )
  • Las entradas de Pub en EstimatorV2 están ahora sujetas a un nuevo paso de validación que comprueba que los observables estén formados por operaciones de Pauli que solo contengan {I, X, Y, Z}. ( 2254 )

Corrección de errores

  • Se ha añadido un nuevo parámetro create_new a las Batch clases y Session . Este parámetro permite a los usuarios controlar si se debe llamar al punto final de la API de sesión POST al inicializar la clase. El valor por defecto es True , ya que así ocurre en la mayoría de los flujos de trabajo destinados a los usuarios. Sin embargo, métodos como Session.from_id() lo configuran en False para evitar que se genere una nueva sesión mientras la sesión original siga activa. Con esto se han solucionado los problemas por los que se generaban varias sesiones al mismo tiempo al llamar a .from_id(). ( 2195 )
  • Se ha eliminado la indicación de tipo incorrecta Optional del backend parámetro en Session y Batch. ( 2222 )
  • Session.from_id() Ahora genera un error si la sesión no tiene un backend conocido. Esto suele ocurrir cuando aún no se ha ejecutado ningún trabajo en la sesión. ( 2226 )

Otras notas

  • IBM Cloud utilizarán ahora un token de acceso para llamar a la API Qiskit Runtime en lugar del token proporcionado por el usuario. (2102 )
  • IBMInputValueError hereda ahora de ValueError, además de la clase padre existente IBMError. Algunas funciones de validación que antes generaban excepciones ValueError ahora generan excepciones IBMInputValueError . (2250 )

0.38.0 (15 de abril de 2025)

Notas sobre características en desuso

  • RuntimeJob Ahora está en desuso y se eliminará como muy pronto tres meses después de esta versión. RuntimeJob fue sustituido por RuntimeJobV2 en todas las implementaciones primitivas, por lo que su obsolescencia no debería tener ningún impacto para los usuarios. La principal diferencia entre ambas clases es que status() la primera devuelve una cadena en lugar de la enumeración de JobStatus Qiskit. ( 2170 )
  • Dado que ya no se admiten las puertas de pulso, el IBMBackend método defaults() y FakeBackendV2 ha quedado obsoleto y se eliminará como muy pronto tres meses después de esta versión. Aunque el método sigue existiendo, estos valores predeterminados de pulso ya no se utilizan para construir el objetivo del backend. ( 2186 )
  • La opción de canal ibm_quantum está obsoleta y desaparecerá el 1 de julio. Después de esta fecha, ibm_cloud, ibm_quantum_platform, y local serán los únicos canales válidos. Para obtener ayuda sobre la migración al nuevo IBM Quantum Platform en el canal ibm_cloud , lea la guía de migración. (2205 )

Nuevas funciones

  • Los atributos de la configuración de backends falsos pueden recuperarse ahora directamente con backend.<attribute_name>. (2202 )

Corrección de errores

  • Se ha corregido un error por el que DoubleSliceSpan.mask() y TwirledSliceSpan.mask() daban error cuando contenían una rebanada unidimensional. (2184 )

Notas de actualización

  • Dado que la compatibilidad con la transmisión de resultados se eliminó en 0.32.0, se ha eliminado el código de websocket restante. Como parte de este proceso, la opción de entorno callback queda obsoleta, así como los parámetros client_params y user_callback en BaseRuntimeJob. (2143 )

0.37.0 (13 de marzo de 2025)

Notas sobre características en desuso

  • Los atributos IBMBackend max_shots y max_experiments, así como la propiedad max_circuits han quedado obsoletos. Estos valores de atributo solían representar el número máximo de tomas y circuitos que se podían enviar en un trabajo, pero ya no es así. Consulte la guía de límites de trabajo para más detalles. (2166 )

Nuevas funciones

  • qiskit-ibm-runtime es ahora compatible con Qiskit 2.0. Esto significa que las clases y métodos eliminados en Qiskit 2.0 también han sido eliminados o tratados en consecuencia. A continuación se destacan los cambios relacionados con pulse y channel :

    • Channel en IBMBackend .
    • Se ha eliminado la clase de configuración de backend PulseBackendConfiguration , por lo que todos los backends se devolverán ahora como QasmBackendConfiguration.
    • PulseDefaults (valores por defecto del backend), pero ya no son necesarios al crear un backend Target.

    Consulte la guía de migración de Pulse para obtener más información. (2116 )

  • Se ha añadido una advertencia cuando se inicializa una primitiva fuera de un gestor de contexto de sesión o de lote. En este caso, el trabajo se ejecutará en modo trabajo en lugar de sesión o lote. (2152 )

Corrección de errores

  • Corregido el soporte para la programación personalizada transpiler etapas con Qiskit 2.x. (2153 )
  • ConvertConditionsToIfOps ahora se ejecuta correctamente en todos los niveles de optimización de los plugins de programación para circuitos dinámicos, cuando se utiliza Qiskit 1.x. (2154 )
  • Al recuperar trabajos con jobs(), no hay forma de distinguir entre las primitivas « v1 » y « v2 ». Dado que las primitivas de « v1 » se eliminaron por completo hace más de seis meses en 0.28.0, los trabajos devueltos desde jobs() pasarán ahora por defecto a RuntimeJobV2. ( 2156 )

0.36.1 (14 de febrero de 2025)

Corrección de errores

  • Se ha corregido un problema por el que si no se tenía instalado qiskit-aer se producía un error de importación. (2144 )

0.36.0 (14 de febrero de 2025)

Notas de actualización

  • La versión mínima requerida de qiskit es ahora 1.3. Qiskit 1.3 presenta la versión 13 de QPY. Se ha aumentado la versión mínima requerida de Qiskit para que Qiskit Runtime pueda utilizar la última versión de QPY para serializar circuitos en los envíos de trabajos. (2096 )

  • Se han eliminado las siguientes obsoletas:

    • Se ha eliminado la compatibilidad con la opción de simulador noise_model en simuladores de nube. Esta opción seguirá funcionando en modo de prueba local.
    • Se han eliminado las propiedades NoiseLearnerResult generators y rates . Todavía se puede acceder a ellos en la propiedad error .
    • Se ha eliminado la función de utilidad get_runtime_api_base_url() . (2124 )

0.35.0 (4 de febrero de 2025)

Notas de actualización

  • Python 3.8 llegó al final de su vida útil el 7 de octubre de 2024. El SDK de Qiskit ha eliminado la compatibilidad con 3.8 en qiskit 1.3. En la misma línea, qiskit-ibm-runtime ya no es compatible con Python 3.8. (2097 )
  • Se ha eliminado la compatibilidad con backend.run() . Consulte la guía de migración para obtener instrucciones para migrar cualquier código existente que utilice backend.run() a la nueva interfaz de primitivas V2. (1962 )
  • Las expresiones de parámetros con puertas RZZ se cotejarán con los valores que se les hayan asignado en PUB. Se producirá un error IBMInputValueError si los valores de parámetro especificados en PUB hacen que una expresión de parámetro se evalúe a un ángulo no válido (negativo o mayor que pi/2). (2093 )
  • Cuando se produzca una interrupción por mantenimiento, aparecerá un mensaje de error al intentar inicializar QiskitRuntimeService. (2100 )

Nuevas funciones

  • Los trabajos ejecutados en el modo de prueba local devolverán ahora una instancia de una nueva clase, LocalRuntimeJob. Esta nueva clase hereda de la clase PrimitiveJob de Qiskit a la vez que añade los métodos y propiedades que se encuentran en BaseRuntimeJob. De este modo, la ejecución de trabajos en el modo de prueba local será más similar a la ejecución de trabajos en un backend real. (2057 )
  • Se han añadido dos nuevos backends falsos, FakeFez y FakeMarrakesh. Son dispositivos Heron de 156 qubits. (2112 )

0.34.0 (5 de diciembre de 2024)

Nuevas funciones

  • Añadidas las funciones draw_zne_evs y draw_zne_extrapolators para visualizar los datos de los experimentos realizados con ZNE. Añadido EstimatorPubResult con los métodos draw_zne_evs y draw_zne_extrapolators, que invocan las funciones de visualización correspondientes. (1820 )

  • Se ha añadido compatibilidad con el modelo de ruido y los datos de nivel 1 al muestreador local

    La simulator.noise_model opción ahora se transmite al BackendSamplerV2 como una opción «noise_model» dentro de SamplerV2 «run_options» si la primitiva admite la opción «run_options» (esta compatibilidad se añadió en Qiskit v1.3 ).

    SamplerV2 Del mismo modo, la execution.meas_type opción ahora se traduce en meas_level las opciones y meas_return en run_options la BackendSamplerV2 sección del, siempre que este admita run_options. Este cambio permite el uso de datos de nivel 1 en el modo de prueba local, donde antes solo se admitían datos de nivel 2 (clasificados). ( 1990 )

  • Se ha añadido una nueva función validate_rzz_pubs . La función verifica que los parámetros rzz se encuentran en el rango entre 0 y pi/2, para parámetros numéricos (por ejemplo, rzz(np.pi/4, 0)), y para parámetros no limitados (rzz(theta, 0)) con valores a sustituir proporcionados en el pub. Las expresiones de parámetros (por ejemplo, rzz(theta + phi, 0)) siguen sin validarse. (2021 )

  • FoldRzzAngleSe ha añadido un nuevo complemento IBMFractionalTranslationPlugin de traducción para el transpilador y una pasada. Este complemento se aplica automáticamente a los backends recuperados con el use_fractional_gates opt-in, y la pasada de plegado se añade cuando el backend de destino incluye la RZZ gate.

    El nuevo paso modifica el circuito cuántico de entrada, de modo que todas las compuertas RZZ del circuito tengan un parámetro angular dentro de [0, pi/2] que es soportado por los procesadores IBM Quantum. (2043 )

Notas de actualización

  • Se han eliminado los elementos obsoletos de la versión 0.26.0 .

    • Pasar un backend como cadena a Session, Batch, Sampler, y Estimator ya no es válido. Utilice el objeto backend real en su lugar.
    • Anteriormente, al pasar un backend como modo en SamplerV2 o EstimatorV2 se ejecutaban los trabajos en modo trabajo, incluso si estaba abierto un gestor de contexto de sesión. Estos trabajos se ejecutarán ahora dentro de la sesión abierta. Además, si se pasa como modo un backend distinto del backend de sesión, se producirá un error.
    • Service ya no es un parámetro válido en Session y Batch. (2027 )

Corrección de errores

  • Se ha solucionado un problema por el que FakeBackendV2.refresh() no siempre actualizaba las propiedades, los valores predeterminados y la configuración del backend. (2020 )
  • CouplingMap se ha añadido a RuntimeEncoder para que ahora se pueda pasar al NoiseLearner programa. ( 2026 )
  • Se ha modificado el comportamiento del use_fractional_gates argumento de QiskitRuntimeService.backend() . Cuando la opción está configurada en False, ahora se filtran todas las referencias a puertas fraccionarias de los datos de configuración y propiedades de la API. Del mismo modo, cuando la opción está configurada en True, todas las instrucciones de circuitos dinámicos se filtran de los datos de configuración y propiedades. Anteriormente, esta opción solo afectaba a la creación del objetivo del backend, lo que significaba que las instrucciones del objetivo no coincidían con las de los datos de configuración y propiedades. En general, este cambio debería pasar desapercibido para los usuarios, pero si hay código que dependa de los datos de configuración y propiedades que contienen todas las instrucciones, será necesario actualizarlo (ten en cuenta que al establecer use_fractional_gates en None se cargarán todas las instrucciones sin filtrar). ( 2031 )
  • Las configuraciones de backend no válidas o inexistentes en el servidor ya no impedirán que se recuperen todos los backends con service.backends(). (2048 )
  • Conecte la versión de dependencia pydantic a <2.10 para evitar que una regresión rompa el proceso de compilación. (2049 )

Otras notas

  • Se han eliminado los archivos requirements.txt y setup.py en favor de un nuevo enfoque de gestión de dependencias mediante pyproject. Esta transición simplifica el flujo de trabajo de desarrollo. Las dependencias se gestionan ahora directamente a través del archivo pyproject.toml.

    • Utilice pip install -e . para instalar las dependencias de qiskit-ibm-runtime.
    • Utilice pip install -e ".[dev]" para instalar las dependencias de desarrollo.
    • Utilice pip install -e ".[visualization]" para instalar las dependencias de visualización. (2053 )

0.33.2 (11 de noviembre de 2024)

Corrección de errores

  • Se ha corregido un problema por el que la validación de RZZ no gestionaba correctamente las expresiones de parámetros. (2035 )

0.33.1 (8 de noviembre de 2024)

Otras notas

  • Se ha añadido un alias privado a decode_backend_configuration(). (2028 )

0.33.0 (7 de noviembre de 2024)

Nuevas funciones

  • Se ha añadido draw_layer_errors_swarm() una función que dibuja un gráfico de enjambre de uno o más LayerError objetos. También se ha añadido el método draw_swarm() de conveniencia para llamar a la función de dibujo en una instancia concreta. ( 1988 )
  • Se TwirledSliceSpan ha añadido un ExecutionSpan que se utiliza cuando la función «twirling» está activada en el Sampler. En concreto, lleva un registro de un eje de forma adicional correspondiente a las aleatorizaciones de giro, y también indica si dicho eje se encuentra al principio de la tupla de formas o justo antes del eje de tomas. ( 2011 )

Notas de actualización

  • Los demás backends falsos de V1 - FakeMelbourne, FakePoughkeepsie, FakeTenerife, FakeTokyo, y FakeRueschlikon han sido eliminados. (2012 )

Corrección de errores

  • Se ha corregido la ubicación del texto flotante en la función draw_execution_spans() . Antes de esta corrección, se dibujaban en los marcadores equivocados. (2014 )

0.32.0 (30 de octubre de 2024)

Nuevas funciones

  • Se draw_execution_spans() ha añadido una función para crear una figura de Plotly que visualice uno o más ExecutionSpans objetos. También se ha añadido el método draw() de conveniencia para llamar a la función de dibujo en una instancia concreta. ( 1923 )

    from qiskit_ibm_runtime.visualization import draw_execution_spans
    
    # use the drawing function on spans from sampler job data
    spans1 = sampler_job1.result().metadata["execution"]["execution_spans"]
    spans2 = sampler_job2.result().metadata["execution"]["execution_spans"]
    draw_execution_spans(spans1, spans2)
    
    # convenience to plot just spans1
    spans1.draw()
  • Añadido un nuevo método, backend.refresh() que refresca el objetivo actual del backend con las últimas actualizaciones del servidor. (1955 )

  • DoubleSliceSpanSe ha añadido una opción ExecutionSpan para procesar por lotes con dos segmentos. ( 1982 )

  • Cada una de SamplerV2las clases EstimatorV2,, y noise_learner.NoiseLearner cuenta ahora con un backend() método que devuelve el backend con el que está configurada la clase. ( 1995 )

Notas de actualización

  • Se han eliminado los elementos obsoletos de la versión 0.25.0 .

    • optimization_level ya no es una opción válida para EstimatorV2.
    • Se han eliminado los métodos de trabajo interim_results() y stream_results() . (1965 )
  • Se ha eliminado el parámetro channel_strategy en QiskitRuntimeService . Para seguir utilizando Q-CTRL en su flujo de trabajo, explore las siguientes opciones:


0.31.0 (15 de octubre de 2024)

Nuevas funciones

  • Se ha añadido Noisy Estimator Analyzer Tool (NEAT), una clase que ayuda a comprender el rendimiento esperado de los trabajos de Estimator. (1950 )
  • Actualizada la comprobación ISA para validar que el ángulo rzz está entre [0, pi/2]. (1953 )

Notas de actualización

  • Se han eliminado los backends falsos de V1. (1946 )

Corrección de errores

  • Se ha solucionado un problema con la validación de ISA por el que un cambio relacionado con la conectividad dentro de las operaciones de control no se aplicaba correctamente. (1954 )

0.30.0 (23 de septiembre de 2024)

Notas sobre características en desuso

  • La función get_runtime_api_base_url ha quedado obsoleta. Utilice default_runtime_url_resolver en su lugar. (1914 )

  • El parámetro channel_strategy ha quedado obsoleto. La estrategia de gestión del rendimiento Q-CTRL se suprimirá el 18 de octubre de 2024. Para seguir utilizando Q-CTRL en su flujo de trabajo, explore las siguientes opciones:

  • En una futura versión, RuntimeJob.status() se devolverá como una cadena en lugar de como una instancia de JobStatus. (1933)

Nuevas funciones

  • Añadidos nuevos métodos Session.usage(), Batch.usage(), y Job.usage() que devuelven información sobre el uso de trabajos y sesiones. Encontrará más información aquí. (1827 )

  • Añadido el paso de transpilación ConvertISAToClifford para convertir las puertas de un circuito en puertas Clifford. (1887 )

  • Se ha añadido url_resolver un parámetro opcional al QiskitRuntimeService constructor para permitir la generación personalizada de la API de Qiskit Runtime URL en función de los valores proporcionados url, instance y private_endpoint. Si no se especifica, se utilizará el resolutor predeterminado.

    # Define a custom resolver. In this case returns the concatenation of the provided `url` and the `instance`
    def custom_url_resolver(url, instance, *args, **kwargs):
      return f"{url}/{instance}"
    
    service = QiskitRuntimeService(channel="ibm_quantum", instance="ibm-q/open/main", url="https://baseurl.org" url_resolver=custom_url_resolver)
    # resulting resolved url will be: `https://baseurl.org/ibm-q/open/main`
  • Añadida la función de utilidad default_runtime_url_resolver. (1914 )

  • La bandera use_fractional_gates para QiskitRuntimeService.backend() y QiskitRuntimeService.backends() puede ser ahora None. Cuando se establece en None, no se realiza ningún filtrado de instrucciones, y el objetivo backend devuelto puede contener tanto puertas fraccionarias como operaciones de flujo de control. (1938 )

Notas de actualización

  • Se han eliminado los elementos obsoletos de la versión 0.24.0 . Se han introducido los siguientes cambios.

    • Los argumentos backend y session para Sampler y Estimator se han eliminado y sustituido por "mode"
    • La propiedad primitiva Session se ha sustituido por mode
    • Ya no es posible especificar opciones sin la estructura completa del diccionario
    • Job.program_id() se ha sustituido por Job.primitive_id()
    • Service.run() y Session.run() se han sustituido por un método privado, _run()
    • En Service.backend(), "name" es ahora un parámetro obligatorio
    • Service.get_backend() se ha eliminado y sustituido por backend() (1907 )

Corrección de errores

  • Se ha corregido un error que impedía ejecutar primitivas en el contexto de sesión con puertas fraccionarias. (1922)

0.29.1 (17 de septiembre de 2024)

Nuevas funciones

  • Se ha añadido lógica para codificar y descodificar NoiseLearnerResult. (1908 )

0.29.0 (4 de septiembre de 2024)

Notas sobre características en desuso

  • La opción de simulador noise_model ha quedado obsoleta para los trabajos que se ejecutan en dispositivos reales. noise_model seguirá siendo una opción aceptable cuando se utilice el modo de prueba local. (1892 )

Nuevas funciones

  • Hemos añadido nuevas clases: ExecutionSpan y ExecutionSpanSet. Estas clases se utilizan en los metadatos de resultados primitivos para transmitir información sobre las horas de inicio y finalización de los trabajos por lotes. ( 1833 )
  • Se ha añadido una nueva opción private en EnvironmentOptions. (1888 )
  • Añadida la opción fallback a los extrapoladores ZNE. (1902 )

Corrección de errores

  • Portado el método Noise_model.from_dict() de qiskit-aer porque fue eliminado en 0.15.0. (1890 )
  • Revertir un cambio anterior en backend.target en el que el objetivo ya no se almacenaba en caché. (1891 )
  • Se ha corregido un problema por el que Session.from_id() creaba una nueva sesión vacía. (1896 )

0.28.0 (15 de agosto de 2024)

Nuevas funciones

  • ResilienceOptionsV2 tiene un nuevo campo layer_noise_model. Cuando este campo está activado, todas las estrategias de mitigación que requieren datos de ruido se saltan la etapa de aprendizaje de ruido y, en su lugar, recopilan la información necesaria de layer_noise_model. (1858 )

Notas de actualización

  • Las primitivas de « V1 » y SamplerV1 se EstimatorV1 han eliminado por completo. Consulta la «Introducción a las primitivas» para aprender a utilizar las primitivas de « V2 ». ( 1857 )
  • El parámetro service es ahora obligatorio en Session.from_id(). (1868 )

0.27.1 (12 de agosto de 2024)

Nuevas funciones

  • Se ha añadido lógica para codificar y descodificar PauliLindbladError y LayerError. (1853 )

0.27.0 (8 de agosto de 2024)

Nuevas funciones

  • Añadidas las clases PauliLindbladError y LayerError para representar procesos de ruido de capas. (1844 )

Corrección de errores

  • Se ha solucionado un problema relacionado con el uso del simulador aéreo y el modo de servicio local con sesiones. (1838 )

0.26.0 (31 de julio de 2024)

Notas sobre características en desuso

  • Pasar un backend como cadena a Session, Batch, EstimatorV2, y SamplerV2 ha quedado obsoleto. Utilice el objeto backend real en su lugar. (1804 )
  • Pasar un backend como modo en SamplerV2 y EstimatorV2 actualmente ejecuta un trabajo en modo trabajo incluso si está dentro de un gestor de contexto Session o Batch . Este comportamiento está obsoleto y en una futura versión tendrá prioridad la Sesión/Lote. (1816 )
  • El paso de service en Session, Batch ha quedado obsoleto. El parámetro service ya no es necesario porque el servicio puede extraerse del backend. (1826 )
  • Dado que los módulos backend de qiskit.providers.models incluidos BackendProperties y BackendConfiguration están obsoletos en Qiskit 1.2, se han copiado en qiskit-ibm-runtime. Asegúrese de actualizar a la última versión, 0.26.0, para utilizar estas clases. (1803 )

Nuevas funciones

  • Los métodos properties, defaults, configuration, y check_faulty se han añadido a FakeBackendV2. (1765 )

  • Si se ejecutan trabajos en una sesión creada con QiskitRuntimeService.Session.from_id() en la que la sesión ya está cerrada, los trabajos se rechazan inmediatamente. (1780 )

  • Los parámetros de entrada de los trabajos ya no se almacenarán en caché. Estos parámetros pueden incluir circuitos de gran tamaño y no deben guardarse automáticamente en la memoria. (1783 )

  • QiskitRuntimeLocalService se creó para soportar un modo de prueba local. Para evitar tener que inicializar una clase aparte, se ha añadido "local" como canal válido QiskitRuntimeService .

    service = QiskitRuntimeService(channel="local")

    devolverá una instancia de QiskitRuntimeLocalService . (1793 )

  • Al ejecutar trabajos en el plan abierto, ahora aparecerá una advertencia si se ha alcanzado el límite del número máximo de trabajos pendientes. El servicio también intentará esperar a que los trabajos pendientes más antiguos terminen de ejecutarse antes de enviar un nuevo trabajo. (1794 )

  • Se ha añadido NoiseLearner y funciones relacionadas, como NoiseLearnerOptions y NoiseLearnerResults. (1805 )

Corrección de errores

  • Se comprueba que todos los circuitos cumplen la normativa ISA. Como parte de esta comprobación, se produce un error si se detectan instrucciones que no son compatibles con el backend. Anteriormente, un error hacía que se omitieran algunas de las instrucciones (las que residen dentro de cuerpos de operaciones de flujo de control). Hemos corregido el error en esta versión. (1784 )
  • Se ha corregido un problema por el que al llamar a IBMBackend.target_history() se almacenaba en caché el objetivo del backend y, a continuación, al llamar a IBMBackend.target() se devolvía incorrectamente ese objetivo almacenado en caché. (1791 )
  • Se ha eliminado la validación de opciones para comprobar si zne_mitigation o pec_mitigation se establecen en True al utilizar otras opciones relacionadas. (1792 )
  • Se ha solucionado un problema por el que los usuarios no podían recuperar los resultados de los trabajos si la biblioteca de python simplejson estaba instalada en su entorno. (1800 )

0.25.0 (2 de julio de 2024)

Notas sobre características en desuso

  • La opción optimization_level de EstimatorV2 está obsoleta. En su lugar, puedes realizar la optimización del circuito utilizando el transpilador Qiskit o el servicio de transpilador Qiskit. (1748 )
  • qiskit_ibm_runtime.RuntimeJobV2.interim_results() qiskit_ibm_runtime.RuntimeJobV2.stream_results(), y han quedado obsoletos. qiskit_ibm_runtime.RuntimeJob.interim_results() qiskit_ibm_runtime.RuntimeJob.stream_results() (1776 )

Nuevas funciones

  • Añadidos los métodos backend, backends y least_busy a QiskitRuntimeLocalService. (1764 )
  • Se ha añadido una propiedad instance a BaseRuntimeJob que devuelve la instancia en la que se ejecutó el trabajo. (1771 )
  • default_shots son ahora una opción compatible cuando se utiliza EstimatorV2 en modo de prueba local. (1773 )

0.24.1 (18 de junio de 2024)

Corrección de errores

  • No permitir puertas fraccionarias por defecto, para que el objetivo backend no excluya el flujo de control. (1755 )

0.24.0 (10 de junio de 2024)

Notas sobre características en desuso

  • name ahora será un parámetro obligatorio en backend(). backend() ya no devolverá el primer backend de todos los backends si no se proporciona name . (1147 )

  • Tras la eliminación de los programas personalizados, los siguientes métodos han quedado obsoletos y han cambiado de nombre. qiskit_ibm_runtime.QiskitRuntimeService.run() está obsoleto y será sustituido por un método privado qiskit_ibm_runtime.QiskitRuntimeService._run().

    qiskit_ibm_runtime.Session.run() está obsoleto y será sustituido por un método privado qiskit_ibm_runtime.Session._run().

    qiskit_ibm_runtime.RuntimeJob.program_id() está obsoleto y será sustituido por qiskit_ibm_runtime.RuntimeJob.primitive_id(). (1238 )

  • El backend argumento de «Sampler» y «Estimator» ha quedado obsoleto. Utiliza mode en su lugar. El session argumento de «Sampler» y «Estimator» también ha quedado obsoleto. Utiliza mode en su lugar. ( 1556 )

  • qiskit_ibm_runtime.QiskitRuntimeService.get_backend() está en desuso. Por favor qiskit_ibm_runtime.QiskitRuntimeService.backend() , utiliza esto en su lugar. FakeBackendLos backends ficticios « V1 », junto con FakeProvider , también están quedando obsoletos en favor de los backends ficticios « V2 » y FakeProviderForBackendV2. ( 1689 )

  • Especificar opciones sin la estructura completa del diccionario está obsoleto. En su lugar, introduzca un diccionario completamente estructurado. Por ejemplo, utilice {'environment': {'log_level': 'INFO'}} en lugar de {'log_level': 'INFO'}. (1731 )

Nuevas funciones

  • En relación con los modos de ejecución, Sampler y Estimator incluyen ahora un argumento mode . El parámetro mode puede ser Backend, Sesión, Lote o Ninguno. Como resultado, el nombre de backend ha sido obsoleto, y ya no será soportado como un modo de ejecución válido. (1556 )

  • Se ha añadido la opción ZneOptions.amplifier, que puede ser una de estas cadenas:

    • "gate_folding" (por defecto) utiliza el plegado de puertas de 2 qubits para amplificar el ruido. Si el factor de ruido requiere amplificar sólo un subconjunto de puertas, éstas se eligen aleatoriamente.
    • "gate_folding_front" utiliza el plegado de puertas de 2 qubits para amplificar el ruido. Si el factor de ruido requiere amplificar sólo un subconjunto de las puertas, entonces estas puertas se seleccionan de la parte delantera del circuito DAG topológicamente ordenado.
    • "gate_folding_back" utiliza el plegado de puertas de 2 qubits para amplificar el ruido. Si el factor de ruido requiere amplificar sólo un subconjunto de las puertas, entonces estas puertas se seleccionan de la parte posterior del circuito DAG topológicamente ordenado. (1679 )
  • Al guardar una cuenta, hay un nuevo parámetro, private_endpoint que si se establece en True, permite a los usuarios conectarse a una API privada IBM Cloud. Este parámetro también puede utilizarse al inicializar el servicio, por ejemplo: QiskitRuntimeService(private_endpoint = True). (1699 )

  • Se ha añadido una nueva función de suscripción voluntaria para admitir puertas fraccionarias a IBMBackend. IBM Actualmente, los backends admiten exclusivamente circuitos dinámicos y puertas fraccionarias, y ambas características no pueden utilizarse en el mismo trabajo primitivo. Además, es posible que algunos protocolos de mitigación de errores que se pueden utilizar con la primitiva estimadora, como PEC o PEA, no admitan el «gate twirling» con las puertas fraccionarias. Dado que el modelo Qiskit Target no refleja dicha restricción, hemos adoptado el enfoque de «opt-in», según el cual el backend de destino incluye únicamente puertas fraccionarias (instrucciones de flujo de control) cuando el backend está (o no está) activado. Esta función se configura al recuperar el backend de destino desde el QiskitRuntimeService.

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    backend = QiskitRuntimeService(channel="ibm_quantum").backends(
        "name_of_your_backend",
        use_fractional_gates=True,
    )[0]

    Cuando la característica fraccional está activada, los circuitos transpilados pueden tener una profundidad más corta en comparación con las compuertas de base IBM convencionales, por ejemplo, [sx, rz, ecr].

    Cuando se utilizan instrucciones de flujo de control, por ejemplo if_else, en su circuito, debe desactivar la función de puerta fraccionaria para obtener circuitos ISA ejecutables. La elección del conjunto de instrucciones es ahora responsabilidad de los usuarios.

    Tenga en cuenta que este patrón puede modificarse o eliminarse sin que quede obsoleto cuando se actualice el backends IBM en futuros desarrollos. (1715 )

  • Ahora puedes utilizar la opción experimental en qiskit_ibm_runtime.options.EstimatorOptions para activar el método de mitigación de errores denominado «Amplificación probabilística de errores» (PEA) en tus tareas de estimación. ( 1728 )

  • La versión 1.1 de Qiskit es ahora compatible y necesaria. (1700 )

Notas de actualización

  • QiskitRuntimeService.backends() Ahora devuelve siempre una nueva IBMBackend instancia, incluso cuando se utiliza la misma consulta. Las propiedades del backend y los datos predeterminados se recuperan del servidor cada vez que se accede a ellos por primera vez, mientras que los datos de configuración se almacenan en caché internamente en la instancia del servicio. ( 1732 )

Corrección de errores

  • Se ha solucionado un problema por el que la recuperación de trabajos con job() y jobs() sólo devolvía instancias de RuntimeJob , incluso si el trabajo se ejecutaba con una primitiva V2. Ahora, los trabajos primitivos de V2 se devolverán correctamente como instancias de RuntimeJobV2 . (1471 )
  • Para evitar interrupciones en la red durante procesos de trabajo largos, ya no se producirán errores de websocket. (1518 )
  • Se ha corregido la combinación de insert_multiple_cycles las opciones y coupling_map en PadDynamicalDecoupling. Esta combinación permite seleccionar un desacoplamiento dinámico escalonado con múltiples ciclos de secuencia en cada retardo que supere el umbral establecido por sequence_min_length_ratios. ( 1630 )
  • Se ha corregido un problema de serialización por el que la descodificación de metadatos de trabajo daba lugar a un error. (1682 )
  • Corregido el docstring de giro de medidas que indicaba incorrectamente que está activado por defecto para Sampler. (1722 )
  • Las subopciones experimentales anidadas corregidas anulan las subopciones no experimentales. (1731 )
  • El método de backend utils convert_to_target ha sido reemplazado por el método convert_to_target de Qiskit. Esto soluciona algunos problemas relacionados con la generación de objetivos y los datos de calibración. (1600 )

0.23.0 (15 de abril de 2024)

Notas sobre características en desuso

Nuevas funciones

  • La impresión de Options y OptionsV2 tendrá ahora formato de tabla. (1490 )
  • Añade block_ordering_callable el argumento a BlockBasePadder, PadDynamicalDecoupling, PadDelay, y BaseDynamicCircuitAnalysis. Esto permite al usuario construir bloques utilizando el algoritmo que elija. block_ordering_callable No se realizan suposiciones ni comprobaciones sobre la validez de los resultados que genera. El motivo de este argumento es que, para algunas familias de circuitos, la función block_order_op_nodes existente puede resultar muy lenta. ( 1531 )
  • Las primitivas Sampler y Estimator V2 se han mejorado para incorporar procedimientos de validación personalizados cuando la propiedad channel_strategy se establece como "q-ctrl" Esta lógica de validación personalizada rectifica eficazmente las opciones de entrada incorrectas y protege a los usuarios contra la desactivación involuntaria de las mejoras de rendimiento de Q-CTRL. (1550 )
  • SamplerV2 Ahora admite el giro. La operación «Twirling» solo se aplicará a aquellos registros de medición que no formen parte de una lógica condicional. ( 1557 )
  • Session details() incluye ahora un nuevo campo, usage_time. El uso se define como el tiempo que un sistema cuántico está comprometido para completar un trabajo. (1567 )

Corrección de errores

  • RuntimeJobV2 Ya no se producirá un error cuando la API devuelva un estado desconocido. En su lugar, se devolverá directamente el estado procedente de la API. ( 1476 )
  • Se ha corregido un error por el que las cabeceras personalizadas no se enviaban en la solicitud /jobs . (1508 )
  • Se ha corregido un error al codificar/decodificar ParameterExpression. (1521 )
  • Se ha solucionado un problema por el que el método RuntimeJobV2 in_final_state() no actualizaba el estado al ser invocado. ( 1547 )

0.22.0 (21 de marzo de 2024)

Notas de actualización

  • Modificar skip_reset_qubits el parámetro opcional del constructor de PadDynamicalDecoupling. FalseSi se aplica el desacoplamiento dinámico a los qubits independientemente de su estado, incluso a los retrasos que se encuentran al principio de un circuito. Esta opción ahora se ajusta al comportamiento de Qiskit. ( 1409 )

Nuevas funciones

  • Se añade un nuevo modo de prueba local. Le permite validar sus proramas cuánticos antes de enviarlos a un sistema físico. El modo de prueba local se activa si se utiliza uno de los backends falsos de qiskit_ibm_runtime.fake_provider o una instancia de backend Qiskit Aer al instanciar una primitiva o una sesión. (1495 )

Corrección de errores

  • Corrección de un error que provocaba que se ignorara la configuración de resilience_level=0 en EstimatorV2 (y se utilizara en su lugar el valor predeterminado). (1541 )

0.21.2 (18 de marzo de 2024)

Corrección de errores

  • Se ha corregido un error por el que RuntimeDecoder podía importar clases arbitrarias. (1527 )

0.21.1

Corrección de errores

  • Se ha corregido un error que impedía importar SamplerV1 y EstimatorV1 debido a un problema con la definición de los alias.

0.21.0

Notas de actualización

  • Los circuitos que no se ajustan a la definición del hardware de destino ya no son compatibles con las primitivas de « Qiskit Runtime », a menos que channel_strategy="q-ctrl" se utilice. Consulte la documentación sobre transpilación ( transpile ) para obtener instrucciones sobre cómo transformar circuitos, y los ejemplos de primitivas ( run/primitives-examples ) para ver cómo se aplica esto junto con las transformaciones de operadores.

Notas sobre características en desuso

  • En una futura versión, backend será un parámetro obligatorio para qiskit_ibm_runtime.Sampler, y qiskit_ibm_runtime.Estimator si no se especifica session , incluso cuando se utilice el canal ibm_cloud .

    También será un parámetro obligatorio para qiskit_ibm_runtime.Session y qiskit_ibm_runtime.Batch.

Corrección de errores

  • Se ha solucionado un problema con IBMBackend.target por el que se excluían incorrectamente las operaciones de flujo de control admitidas (IfElseOp, WhileLoop, etc.) si un determinado backend los admite.
  • Se ha corregido un error por el que al recuperar un backend falso a través de FakeProviderForBackendV2.backend() se producía un error de tipo.
  • Corrige la comprobación de circuitos ISA para permitir puertas de impulsos y circuitos que no tienen trazado.

0.20.0

Nuevas funciones

  • Añadir dd_barrier entrada opcional a PadDynamicalDecoupling para identificar partes del circuito en las que aplicar el desacoplamiento dinámico (dd) de forma selectiva. Si esta cadena está contenida en la etiqueta de una barrera del circuito, se aplica dd en los retardos que terminan en ella (en los mismos qubits); en caso contrario, no se aplica.

  • Python 3.12 es ahora compatible.

  • Las sesiones se iniciarán ahora con un nuevo punto final /sessions que permite distintos modos de ejecución. El modo por lotes está ahora soportado a través de Batch, y Session funcionará de la misma manera que antes. Para más información, consulte carreras/sesiones.

    Tenga en cuenta que Session y Batch creados a partir de qiskit-ibm-runtime antes de esta versión dejarán de recibir soporte después del 31 de marzo de 2024. Por favor, actualice su versión de qiskit-ibm-runtime lo antes posible antes de esta fecha.

    Ten en cuenta también que ya no se admite el uso de simuladores con sesiones. Los usuarios pueden seguir iniciando sesiones con simuladores sin ningún problema, pero no se creará realmente una sesión. No habrá ID de sesión.

  • Las sesiones iniciadas con qiskit_ibm_runtime.IBMBackend.open_session () utilizarán el nuevo /sessions punto final.

    La funcionalidad de las sesiones no cambiará, pero tenga en cuenta que las sesiones de backend.run() anteriores a esta versión dejarán de ser compatibles después del 31 de marzo de 2024. Por favor, actualice su versión de qiskit-ibm-runtime lo antes posible antes de esta fecha.

Notas sobre características en desuso

  • Los circuitos que no se ajusten a la definición del hardware de destino dejarán de ser compatibles a partir del 1 de marzo de 2024. Consulte la documentación sobre transpilación ( transpile ) para obtener instrucciones sobre cómo transformar circuitos, y los ejemplos de primitivas ( run/primitives-examples ) para ver cómo se aplica esto junto con las transformaciones de operadores.

Corrección de errores

  • Asignación fija de duraciones de instrucción al programar circuitos con flujo de control. Antes de esta corrección, los índices de las instrucciones de los bloques interiores no se asignaban a los índices físicos del dag exterior.

Otras notas

  • La entrada InstructionDurations durations ahora también es necesaria para el constructor de PadDelay.

0.19.1

Notas de actualización

  • Amplíe DynamicCircuitInstructions.from_backend() para extraer y parchear duraciones de los objetos BackendV1 y BackendV2 . Añade también DynamicCircuitInstructions.from_target() para utilizar un objeto Target en su lugar.

Corrección de errores

  • Corrige el parcheado de DynamicCircuitInstructions para instrucciones con duraciones que no están en unidades de dt.
  • Se ha solucionado un problema con la función qpy.dump() , cuando el indicador use_symengine se establecía en un objeto verdadero que se evaluaba como True pero que no era realmente el booleano True , la carga útil QPY generada se corrompía.

0.19.0

Notas de actualización

  • qiskit-ibm-provider está pendiente de eliminación y, por lo tanto, ya no será una dependencia de qiskit-ibm-runtime.
  • qiskit-ibm-runtime es ahora compatible con las versiones de Qiskit >= 0.45, incluyendo 1.0.0.

0.18.0

Nuevas funciones

  • Se ha añadido un nuevo parámetro, dynamic_circuits a backends() para permitir filtrar los backends que admiten circuitos dinámicos.
  • Añadido el parámetro max_time a IBMBackend.open_session().
  • Añadido un método RuntimeJob.queue_info() para obtener la información de la cola desde el backend. Esta función se transfirió de qiskit_ibm_provider.

Notas sobre características en desuso

  • QiskitRuntimeService.runtime() ha quedado obsoleto.

Corrección de errores


0.17.0

Nuevas funciones

  • Se ha añadido un nuevo método properties() que devuelve las propiedades del backend del trabajo en el momento en que se ejecutó el trabajo.
  • details() tiene un nuevo campo, activated_at, que es la marca de tiempo de cuando la sesión fue cambiada a activa.

Corrección de errores

  • Cuando se recupera un único backend con el parámetro instance ,

    service.backend('ibm_torino', instance='ibm-q/open/main')
    # raises error if torino is not in ibm-q/open/main but in a different instance
    # the user has access to
    service = QiskitRuntimeService(channel="ibm_quantum", instance="ibm-q/open/main")
    service.backend('ibm_torino') # raises the same error

    si el backend no está en la instancia sino en otra a la que el usuario tiene acceso, se producirá un error. Ahora se producirá el mismo error si se pasa una instancia en la inicialización y luego se recupera un backend que no está en esa instancia.

  • Se ha corregido un problema por el que la recuperación del coupling\map de algunos backends daba lugar a un NameError.


0.16.0

Preludio

Las sesiones son ahora seguras para los hilos y permiten múltiples experimentos interactivos simultáneos.

Nuevas funciones

  • Las sesiones son ahora seguras para los hilos.

Notas de actualización

  • Se eliminan los métodos relacionados con el uso de programas personalizados.

Corrección de errores

  • Si se utiliza una instancia de nube habilitada para q-ctrl y no se pasa q-ctrl como channel_strategy, se producirá un error.

0.15.1

Corrección de errores

  • Revertir 0.15.0 cambios a from_id() porque era un cambio de ruptura sin deprecación adecuada.

0.15.0

Nuevas funciones

  • Se ha añadido un nuevo módulo qiskit_ibm_runtime.fake_provider para proporcionar acceso a una serie de backends falsos derivados de instantáneas de dispositivos IBM Quantum. Esta funcionalidad fue proporcionada originalmente por el módulo qiskit.providers.fake_provider , pero pronto será obsoleto en favor de qiskit_ibm_runtime.fake_provider.

    Las instantáneas proporcionadas por los backends falsos son útiles para probar localmente el transpilador y realizar simulaciones locales ruidosas del sistema antes de ejecutarlo en dispositivos reales. He aquí un ejemplo de utilización de un backend falso para la transpilación y la simulación:

    from qiskit import QuantumCircuit
    from qiskit import transpile
    from qiskit_ibm_runtime.fake_provider import FakeManilaV2
    
    # Get a fake backend from the fake provider
    backend = FakeManilaV2()
    
    # Create a simple circuit
    circuit = QuantumCircuit(3)
    circuit.h(0)
    circuit.cx(0,1)
    circuit.cx(0,2)
    circuit.measure_all()
    
    # Transpile the ideal circuit to a circuit that can be directly executed by the backend
    transpiled_circuit = transpile(circuit, backend)
    
    # Run the transpiled circuit using the simulated fake backend
    job = backend.run(transpiled_circuit)
    counts = job.result().get_counts()
  • Se ha añadido compatibilidad con backend.run(). La funcionalidad es similar a la de qiskit-ibm-provider.

  • Se producirá un error durante la inicialización si se pasa q-ctrl como channel_strategy y la instancia de cuenta no tiene q-ctrl habilitado.

  • Eliminado almacenar resultado en RuntimeJob._results. En su lugar, recupera los resultados cada vez que se llama al método results() .

Notas sobre características en desuso

  • El uso del archivo ~/.qiskit/qiskitrc.json para la información de cuentas ha quedado obsoleto. Utilice ~/.qiskit/qiskit-ibm.json en su lugar.

Corrección de errores

  • Se ha solucionado un problema por el que los trabajos cancelados y fallidos devolvían un resultado no válido que provocaba un error de tipo, lo que impedía que se devolviera el error real al usuario.
  • Se emitirá una advertencia en la inicialización si se está utilizando el entorno DE, ya que no todas las funciones están soportadas allí.
  • El parámetro backend en from_id() está obsoleto porque las sesiones no soportan múltiples backends. Además, el parámetro service ya no es opcional.
  • Se han eliminado completamente las entradas de ejecución circuit_indices y observable_indices para Estimator y Sampler.

Otras notas

  • Añadido código de migración para ejecutar backend.run en qiskit_ibm_runtime en lugar de en qiskit_ibm_provider.

0.14.0

Nuevas funciones

  • Hay una nueva clase, qiskit_ibm_runtime.Batch que actualmente funciona de la misma manera que qiskit_ibm_runtime.Session pero que se actualizará más adelante para permitir el envío de varios trabajos a la vez.
  • Las claves y valores arbitrarios ya no están permitidos en Options.

Notas sobre características en desuso

  • Los programas personalizados están quedando obsoletos a partir de la versión qiskit-ibm-runtime 0.14.0 y se eliminarán el 27 de noviembre de 2023. En su lugar, los usuarios pueden adaptar sus programas personalizados para que utilicen las primitivas de « Qiskit Runtime » con « Qiskit Serverless ».

0.13.0

Nuevas funciones

  • Se ha añadido un nuevo método, details() que devuelve información sobre una sesión, incluyendo: el tiempo máximo de sesión, el tiempo activo restante, el estado actual y si la sesión está aceptando trabajos o no.

    También se ha añadido status(), que devuelve el estado actual de la sesión.

  • En la inicialización, si no se pasa directamente, la dirección instance seleccionada por defecto por el proveedor se registrará en el nivel "INFO". Al ejecutar un trabajo, si el backend seleccionado no se encuentra en la instancia predeterminada, sino en una instancia diferente a la que el usuario también tiene acceso, esa instancia también se registrará.

Notas de actualización

  • qiskit_ibm_runtime.Session.close () se ha actualizado para marcar un Session como que ya no acepta nuevos trabajos. La sesión no aceptará más trabajos, pero continuará ejecutando los trabajos en cola hasta que finalicen o expire el tiempo máximo. Esto también ocurrirá automáticamente cuando se salga del gestor de contexto de sesión. Cuando una sesión que no está aceptando trabajos se queda sin trabajos que ejecutar, se cierra inmediatamente, liberando el backend para ejecutar más trabajos en lugar de esperar a que se agote el tiempo de espera interactivo.

    El antiguo comportamiento del método de cierre se ha trasladado a un nuevo método, qiskit_ibm_runtime.Session.cancel (), donde todos los trabajos en cola dentro de una sesión se cancelan y finalizan.

Corrección de errores

  • Se ha corregido un error por el que shots pasado como tipo numpy no se serializaba correctamente.
  • Se ha corregido un error en target_history() por el que el parámetro datetime no se utilizaba para recuperar propiedades del backend a partir de la fecha especificada.

0.12.2

Nuevas funciones

  • Si se utiliza un channel_strategy, sólo los backends que soporten ese channel_strategy serán accesibles al usuario.
  • Añadida la opción de definir una cuenta por defecto en el archivo json de la cuenta. Para seleccionar una cuenta como predeterminada, defina set_as_default=True en QiskitRuntimeService.save_account().
  • Añadido nuevo método Session.from_id que crea una nueva sesión con un id dado.
  • Ahora habrá una advertencia si un usuario envía un trabajo que se prevé que supere su cuota mensual de tiempo de ejecución del sistema de 10 minutos. Esto sólo se aplica a los trabajos ejecutados en hardware real en la instancia ibm-q/open/main. Si el trabajo supera la cuota, se cancelará.

Notas de actualización

  • Los mensajes de error de trabajo incluyen ahora el código de error. Los códigos de error se pueden encontrar en errores.

0.12.1

Nuevas funciones

  • Los usuarios pueden utilizar una nueva variable de entorno, USAGE_DATA_OPT_OUT , para excluirse del seguimiento del uso del módulo de usuario estableciendo este valor en True. Además, sólo se realizará un seguimiento de determinados módulos qiskit en lugar de todos los módulos que empiecen por qiskit o qiskit_.
  • Los usuarios ahora pueden pasar un valor de default al parámetro channel_strategy en qiskit_ibm_runtime.QiskitRuntimeService. Ahora, si una cuenta está configurada con una determinada estrategia de canal, el usuario puede anularla pasando default.
  • Las primitivas Muestreador y Estimador se han mejorado para incorporar procedimientos de validación personalizados cuando la propiedad channel_strategy dentro de :class:qiskit_ibm_runtime.QiskitRuntimeService se configura como "q-ctrl" Esta lógica de validación personalizada rectifica eficazmente las opciones de entrada incorrectas y protege a los usuarios contra la desactivación involuntaria de las mejoras de rendimiento de Q-CTRL.

Corrección de errores

  • La recuperación de propiedades de backend con properties() ahora permite pasar un parámetro datetime para recuperar propiedades de una fecha pasada.
  • Las opciones noise_factors y extrapolator de qiskit_ibm_runtime.options.ResilienceOptions pasarán por defecto a None a menos que resilience_level se establezca en 2. Sólo se establecerán las opciones relevantes para el nivel de resiliencia, por lo que al utilizar resilience_level 2, noise_factors seguirá siendo (1, 3, 5) por defecto y extrapolator será LinearExtrapolator por defecto. Además, las opciones con un valor de None ya no se enviarán al servidor.
  • Los mensajes de error de trabajo ya no se mostrarán en mayúsculas.
  • La opción max_execution_time se basa ahora en el tiempo de ejecución del sistema en lugar de en la hora del reloj de pared. El tiempo de ejecución del sistema es la cantidad de tiempo que el sistema dedica a procesar tu trabajo. Si un trabajo supera este límite de tiempo, se cancela forzosamente. Los trabajos de simulador siguen utilizando la hora del reloj de pared.

0.12.0

Nuevas funciones

  • Añadido un global_service, de forma que si el usuario define un QiskitRuntimeService, será utilizado por las primitivas, aunque no se les pase el servicio explícitamente. Por ejemplo:

    from qiskit_ibm_runtime import QiskitRuntimeService, Sampler
    service = QiskitRuntimeService(channel="ibm_quantum")
    # Sampler._service field will be initialized to ``service``
    sampler = Sampler(backend="ibmq_qasm_simulator")
  • Añadido un nuevo método, qiskit_ibm_runtime.QiskitRuntimeService.instances() que devuelve todas las instancias (hub/grupo/proyecto) en las que se encuentra el usuario. Esto es sólo para el canal ibm_quantum ya que el canal ibm_cloud no tiene múltiples instancias.

  • Se han añadido validaciones para las opciones del segundo nivel del dict, es decir, para cada una de las opciones de resiliencia, simulador, ejecución y transpilación, comprobar que sus opciones son compatibles. En caso contrario, lanza una excepción.

  • Hay un nuevo parámetro, channel_strategy que se puede establecer en la inicialización de qiskit_ibm_runtime.QiskitRuntimeService o guardado en qiskit_ibm_runtime.QiskitRuntimeService.save_account(). Si channel_strategy se establece en q-ctrl, todos los trabajos dentro del servicio utilizarán la estrategia de mitigación de errores Q-CTRL.

Notas de actualización

  • Los circuitos y otros parámetros de entrada ya no se almacenarán automáticamente en los trabajos en tiempo de ejecución. Aún pueden recuperarse con qiskit_ibm_runtime.RuntimeJob.inputs().

Notas sobre características en desuso

  • La opción noise_amplifier resilience options está obsoleta. Tras el periodo de supresión, sólo se admitirá la amplificación de plegado local. Consulte https://github.com/qiskit-community/prototype-zne para la amplificación global del plegado.

Corrección de errores

  • Cuando se ejecuta en el canal "ibm_cloud", es posible no especificar el backend. En este caso, el sistema selecciona uno de los backends disponibles para este servicio. Problema nº 625 https://github.com/Qiskit/qiskit-ibm-runtime/issues/625 se informó de que el backend devuelto por job.backend() no siempre era el backend real en el que se ejecutaba el trabajo. Este PR corrige este error.
  • Corrige una condición de carrera en la prueba test\cancel_running_job() en test_job.py donde no se podía realizar la cancelación del trabajo. Consulte #1019 <https://github.com/Qiskit/qiskit-ibm-runtime/issues/1019> _ para más detalles.
  • Anteriormente añadimos una validación cuando se ejecutaban los trabajos para asegurarnos de que el número de circuitos no era superior al máximo para ese backend, backend.max_circuits. En realidad, este límite no es necesario para las primitivas ejecutadas desde una sesión.

0.11.3

Nuevas funciones

  • Añadido motivo de fallo al invocar el método error_message().
  • Se ha añadido una nueva propiedad, usage_estimation() que devuelve el tiempo estimado de ejecución del sistema, quantum_seconds. El tiempo de ejecución del sistema representa la cantidad de tiempo que el sistema dedica a procesar tu trabajo.
  • Lanza una excepción si el número de circuitos pasados a _run_primitive() excede el número de circuitos soportados en el backend.
  • Hay un nuevo método update_tags() que se puede utilizar para actualizar el job_tags de un trabajo.
  • Si instance se proporciona como parámetro a qiskit_ibm_runtime.QiskitRuntimeService, entonces esto se utiliza como un filtro en QiskitRuntimeService.backends(). Si instance no se reconoce como una de las instancias del proveedor, se producirá una excepción. Anteriormente, sólo emitimos una advertencia.

0.11.2

Nuevas funciones

  • Si se ha cancelado un trabajo y se solicita job.result (), lanza una excepción en lugar de devolver None.

  • Un nuevo método, qiskit_ibm_runtime.options.SimulatorOptions.set_backend(), permite a los usuarios configurar más fácilmente las opciones del simulador para un backend.

    from qiskit.providers.fake_provider import FakeManila
    from qiskit_aer.noise import NoiseModel
    
    # Make a noise model
    fake_backend = FakeManila()
    
    # Set options to include the noise model
    options = Options()
    options.simulator.set_backend(fake_backend)
    options.simulator.seed_simulator = 42

Corrección de errores

  • Corregida la recursión infinita al intentar hacer un deepcopy de un IBMBackend. Se ha añadido un método qiskit_ibm_runtime.IBMBackend.deepcopy().
  • Se ha corregido un problema por el que los metadatos del circuito no se serializaban correctamente, lo que provocaba un error de tipo.

0.11.1

Notas sobre características en desuso


0.11.0

Nuevas funciones

  • Al recuperar un trabajo con qiskit_ibm_runtime.IBMRuntimeService.job() ya no se devolverá el params desde la API. En su lugar, se cargarán cuando se necesiten en qiskit_ibm_runtime.RuntimeJob.inputs().

  • Añadida advertencia cuando el backend no está activo en QiskitRuntimeService.run.

  • Admite la entrada de tipo CouplingMap cuando se da como opción del simulador. Antes apoyábamos, por ejemplo:

    options.simulator = {"coupling_map": [[0, 1], [1, 0]]}

    Ahora también admitimos lo siguiente:

    options.simulator = {"coupling_map": CouplingMap.from_line(10)}

Notas de actualización

Notas sobre características en desuso

  • Si se pasa un nombre de backend o una instancia de backend al parámetro session al inicializar una aplicación qiskit_ibm_runtime.Sampler o qiskit_ibm_runtime.Estimator ha quedado obsoleto. Utilice en su lugar el parámetro backend . Puede seguir pasando una sesión utilizando el parámetro session .

0.10.0

Nuevas funciones

  • Python 3.11 es ahora compatible.

Notas de actualización

  • Añadidos mensajes de error en caso de que el usuario defina valores no admitidos para 'max_execution_time'. Anteriormente, esta validación se realizaba en el servidor.

Corrección de errores

  • Añadida la deserialización de los params de RuntimeJob.inputs. Anteriormente, los circuitos se devolvían en formato serializado. Soluciona el problema nº 829.
  • Permitir a los usuarios recuperar todos los backends incluso si falta la configuración de uno de ellos. No se devolverá el backend sin configuración.

0.9.4

Nuevas funciones

  • Añadidos métodos para validar las opciones de entrada a transpilation y environment opciones.

Notas de actualización

  • Al construir un backend qiskit.transpiler.Target, se filtrarán los qubits y puertas defectuosos de la configuración del backend.

Notas sobre características en desuso

  • Los argumentos obsoletos circuits, parameters, service, y skip_transpilation han sido eliminados de Sampler.

    Del mismo modo, los argumentos obsoletos circuits, observables, parameters, service, y skip_transpilation han sido eliminados de Estimator.

    En QiskitRuntimeService, se ha eliminado el parámetro auth . Además, se han eliminado los parámetros instance, job_tags y max_execution_time de qiskit_ibm_runtime.QiskitRuntimeService.run(). En su lugar, pueden pasarse a través de RuntimeOptions .

    Dentro de RuntimeOptions backend_name ya no es compatible. Por favor, utilice backend en su lugar.

Corrección de errores

  • Se ha corregido un error por el que al recuperar un trabajo de un backend sin las opciones noise_model o seed_simulator se producía un error de clave.

0.9.3

Notas de actualización

  • Se han añadido mensajes de error en caso de que el usuario defina valores no admitidos para "optimization_level" o para "resilience\level". Se ha añadido la comprobación de la validación de las opciones introducidas en resilience. Anteriormente, esta validación se realizaba en el servidor. Añadiéndolos en el lado del cliente, la respuesta será mucho más rápida en caso de fallo. La variable de entorno QISKIT_RUNTIME_SKIP_OPTIONS_VALIDATION se utiliza para controlar la validación. Si se establece, se omitirá la validación.
  • Las configuraciones del backend ya no se cargan cuando QiskitRuntimeService se inicializa. En su lugar, la configuración sólo se carga y almacena en caché durante get_backend() y backends().

Corrección de errores

  • Al crear un objeto Opción y pasar una opción de entrada a resilience_options, esta opción se incluía en resilience_options, pero se eliminaban las demás opciones por defecto. Esto se ha corregido, por lo que ahora las entradas se gestionan correctamente, como otros tipos de opciones.

0.9.2

Nuevas funciones

  • Añadido un nuevo argumento llamado session_time al método program_run y qiskit_ibm_runtime.RuntimeOptions. Ahora los valores introducidos por el usuario para la sesión max_time se enviarán al servidor como session_time. Esto permite a los usuarios especificar diferentes valores para la sesión max_time y max_execution_time.
  • Añadido el método target_history(). Este método es similar a target(). La diferencia es que el nuevo método permite al usuario pasar un parámetro datetime, para recuperar datos históricos del backend.

Notas de actualización

  • Acepte todas las opciones dadas en el nivel 1 y asígnelas al tipo de opción jerárquica adecuada. Por ejemplo, si el usuario proporciona options = {"shots": 10} como entrada al Muestreador/Estimador, se interpretará como options = {"execution: {"shots": 10}}.
  • Si se devuelve un trabajo sin un backend, la recuperación del backend a través de qiskit_ibm_runtime.RuntimeJob.backend() volverá a recuperar los datos del servidor e intentará actualizar el backend. Además, job_id y backend, que eran atributos obsoletos de qiskit_ibm_runtime.RuntimeJob han sido eliminados.
  • Se ha añadido una advertencia cuando el usuario pasa una opción que no está soportada en Opciones.

Corrección de errores

  • Se ha corregido un error por el que los valores por defecto de optimization_level y resilience_level no se establecían correctamente.
  • Se ha corregido un problema por el que, si no se seleccionaba ningún backend, optimization_level y resilience_level pasaban por defecto a None, lo que provocaba el fallo de la tarea.
  • Si se pasa una instancia a qiskit_ibm_runtime.QiskitRuntimeService.get_backend() y luego se utiliza el backend en una sesión, todos los trabajos dentro de la sesión se ejecutarán desde la instancia original pasada.
  • Eliminada la descomposición adicional de BlueprintCircuits en el codificador JSON. Se introdujo como corrección de errores, pero ya se ha solucionado. Sin embargo, la descomposición podía dar lugar a problemas si el circuito descompuesto ya no se encontraba en el conjunto de bases correcto del backend.

0.9.1

Notas de actualización

  • qiskit_ibm_runtime.QiskitRuntimeService.jobs() tiene ahora un parámetro backend_name que puede utilizarse para devolver sólo los trabajos ejecutados con el backend especificado.

  • Permitir al usuario almacenar los detalles de la cuenta en un archivo especificado por el usuario en el parámetro. filename. El valor por defecto sigue siendo ~/.qiskit/qiskit-ibm.json. Ejemplo de uso: Ej:

    QiskitRuntimeService.save_account(channel="ibm_quantum",
                                      filename="~/my_account_file.json",
                                      name = "my_account",
                                      token="my_token")
    service = QiskitRuntimeService(channel="ibm_quantum",
                                   filename="~/my_account_file.json",
                                   name = "my_account",)

Notas sobre características en desuso

  • backend Ya no es una opción compatible al usar qiskit_ibm_runtime.Session.run (). Las sesiones no admiten múltiples backends cruzados. Además, se lanzará una excepción si un backend pasado a través de opciones no coincide con el backend de sesión original en una sesión activa.

Corrección de errores

  • ECRGate y CZGate se han añadido al constructor Target para corregir un error de transpilación.

Otras notas

  • Dado que los mensajes de error de un trabajo que falla pueden ser largos, los acortamos para que comiencen a partir de la última Traceback del mensaje.

0.9.0

Notas de actualización

  • Cambiados los valores por defecto de optimization_level y de resilience_level en qiskit_ibm_runtime.Options. Si sus valores son definidos por el usuario, no se modifican. Si no se establece, si el backend es un simulador sin ruido, entonces optimization_level se establece en 1 y resilience_level en 0; de lo contrario, se establecen en 3 y 1 respectivamente.
  • se han añadido session_id() y tags() para facilitar la obtención de session_id y job_tags de un trabajo.

Corrección de errores

  • Se ha corregido un error por el que los trabajos que no se ejecutaban antes de que se cerrara una sesión no se ejecutaban realmente como parte de esa sesión. Los trabajos deben ejecutarse como parte de una sesión incluso si esa sesión se cierra por la salida del gestor de contexto.
  • Se soluciona el problema por el que el envío de un trabajo grande fallaba debido al tiempo de espera de la operación de escritura.

0.8.0

Nuevas funciones

  • Python 3.10 es ahora compatible.
  • Ahora se pueden configurar opciones avanzadas de resiliencia en options.resilience. Consulte qiskit_ibm_runtime.options.ResilienceOptions para conocer todas las opciones disponibles.
  • Ahora puede especificar un par de descodificadores de resultados para el parámetro result_decoder del método qiskit_ibm_runtime.QiskitRuntimeService.run(). Si se especifica un par, el primero se utiliza para descodificar los resultados provisionales y el segundo los resultados finales.

Notas de actualización

  • La opción por defecto resilience_level para se ha cambiado de 0 a 1. Además, la opción por defecto optimization_level se ha cambiado de 1 a 3.

Notas sobre características en desuso

  • Las opciones de transpilación translation_method y timing_constraints han quedado obsoletas.

Corrección de errores


0.7.0

Nuevas funciones

  • qiskit_ibm_runtime.Options acepta ahora argumentos de palabra clave arbitrarios. Esto permite a los usuarios especificar nuevas opciones a los programas primitivos sin necesidad de actualizar qiskit_ibm_runtime. Sin embargo, estos argumentos arbitrarios de palabras clave no se validan.
  • La clase qiskit_ibm_runtime.options.EnvironmentOptions acepta ahora un parámetro callback . Este parámetro puede utilizarse para transmitir los resultados intermedios y finales de las primitivas.
  • La clase qiskit_ibm_runtime.Options acepta ahora max_execution_time como opción de primer nivel y job_tags como opción bajo environment. qiskit_ibm_runtime.RuntimeOptions también se ha actualizado para incluir estos dos parámetros.

Notas de actualización

  • Esta versión de qiskit-ibm-runtime requiere qiskit-terra versión 0.22 o superior. El archivo requirements.txt se ha actualizado en consecuencia.

Notas sobre características en desuso

  • Qiskit Runtime los programas torch-train, torch-infer, sample-expval, sample-program, y quantum_kernal_alignment han quedado obsoletos debido a su escaso uso.
  • Pasar el parámetro instance a qiskit_ibm_runtime.QiskitRuntimeService.run() ha quedado obsoleto. En su lugar, puede pasar el parámetro instance dentro del parámetro options .
  • Pasar job_tags y max_execution_time como parámetros a qiskit_ibm_runtime.QiskitRuntimeService ha quedado obsoleto. Por favor, páselos dentro de options.

Corrección de errores

  • Corrige la sección que faltaba sobre la recuperación de trabajos en la guía práctica.

0.7.0rc2

Notas de actualización

  • Se ha añadido una comprobación de validación a Sampler.run(). Genera un error si no hay bit clásico.
  • El muestreador se actualiza para devolver SamplerResult con SamplerResult.quasi_dists como lista de QuasiDistrbution. Solía establecer una lista de dict como SamplerResult.quasi_dists, pero no seguía el diseño de SamplerResult.
  • La clase RuntimeJob es ahora una subclase de qiskit.providers.Job.

Notas sobre características en desuso


0.7.0rc1

Preludio

Hay cambios significativos en cómo se invocan las primitivas dentro de una sesión, y en las opciones disponibles para las primitivas. Consulte el resto de las notas de la versión y los tutoriales para obtener más información.

Nuevas funciones

  • Ahora puede invocar el mismo programa primitivo o programas primitivos diferentes varias veces dentro de una misma sesión. Por ejemplo:

    from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Estimator, Options
    from qiskit.test.reference_circuits import ReferenceCircuits
    from qiskit.circuit.library import RealAmplitudes
    from qiskit.quantum_info import SparsePauliOp
    
    # Initialize account.
    service = QiskitRuntimeService()
    
    # Set options, which can be overwritten at job level.
    options = Options(optimization_level=1)
    
    # Prepare inputs.
    bell = ReferenceCircuits.bell()
    psi = RealAmplitudes(num_qubits=2, reps=2)
    H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)])
    theta = [0, 1, 1, 2, 3, 5]
    
    with Session(service=service, backend="ibmq_qasm_simulator") as session:
        # Submit a request to the Sampler primitive within the session.
        sampler = Sampler(session=session, options=options)
        job = sampler.run(circuits=bell)
        print(f"Sampler results: {job.result()}")
    
        # Submit a request to the Estimator primitive within the session.
        estimator = Estimator(session=session, options=options)
        job = estimator.run(
            circuits=[psi], observables=[H1], parameter_values=[theta]
        )
        print(f"Estimator results: {job.result()}")
  • Se introduce una nueva clase qiskit_ibm_runtime.Options . Esta clase permite autocompletar opciones relacionadas con programas primitivos. Por ejemplo:

    from qiskit_ibm_runtime import Session, Sampler, Options
    from qiskit.test.reference_circuits import ReferenceCircuits
    
    options = Options()
    options.optimization_level = 3  # This can be done using auto-complete.
    
    with Session(backend="ibmq_qasm_simulator") as session:
      # Pass the options to Sampler.
      sampler = Sampler(session=session, options=options)
    
      # Or at job level.
      job = sampler.run(circuits=ReferenceCircuits.bell(), shots=4000)
  • qiskit_ibm_runtime.RuntimeJob tiene un nuevo método metrics(). Este método devuelve las métricas de un trabajo, que incluye información de fecha y hora.

  • El qiskit_ibm_runtime.QiskitRuntimeService channel puede almacenarse ahora como una variable de entorno, QISKIT_IBM_CHANNEL. De este modo, cuando se utilizan primitivas de tiempo de ejecución, el servicio no tiene que instanciarse manualmente y, en su lugar, puede crearse directamente a partir de variables de entorno.

Notas de actualización

  • RuntimeJobMaxTimeoutError cuando un trabajo se ejecuta durante demasiado tiempo para que los programas puedan gestionarlo adecuadamente.

  • Los parámetros experimentales transpilation_settings, resilience_settings, y max_time de los constructores :class:` qiskit_ibm_runtime.Sampler y qiskit_ibm_runtime.Estimator han sido eliminados. En su lugar, puede utilizar la clase qiskit_ibm_runtime.Options para especificar la configuración, y max_time se puede especificar al iniciar una nueva sesión. Por ejemplo:

    from qiskit_ibm_runtime import Session, Sampler, Options
    
    options = Options()
    # This can be done using auto-complete.
    option.optimization_level = 3
    options.resilience_level = 1
    
    with Session(max_time="2h") as session:
      # Pass the options to Sampler.
      sampler = Sampler(session=session, options=options)
  • Dado que algunas cuentas tienen muchos programas en tiempo de ejecución, se ha eliminado el almacenamiento en caché de una lista de todos los programas en la primera llamada a programs() . En su lugar, los programas sólo se almacenarán en caché hasta la dirección limit indicada, cuyo valor por defecto es 20.

Notas sobre características en desuso

  • Invocando qiskit_ibm_runtime.Sampler y qiskit_ibm_runtime.Estimator como gestores de contexto ha quedado obsoleta. En su lugar, puede utilizar la clase qiskit_ibm_runtime.Session para crear una nueva sesión e invocar una o más primitivas dentro de la sesión.

    Como resultado, el paso de parámetros de entrada, como circuits, observables, y parameter_values, así como service a los constructores de Sampler y Estimator también ha quedado obsoleto. Las entradas pueden pasarse ahora al método run() de las clases primitivas, y service puede pasarse a qiskit_ibm_runtime.Session al iniciar una nueva sesión.

  • Pasar skip_transpilation a los constructores :class:` qiskit_ibm_runtime.Sampler y qiskit_ibm_runtime.Estimator ha quedado obsoleto. En su lugar, puede utilizar la clase qiskit_ibm_runtime.Options para especificar esta opción. Por ejemplo:

    from qiskit_ibm_runtime import Options
    
    options = Options()
    # This can be done using auto-complete.
    options.transpilation.skip_transpilation = True

Corrección de errores

  • Corrige el problema nº 428 aumentando la versión mínima requerida de qiskit-terra a 0.21.0, ya que la última versión de qiskit-ibm-runtime no es compatible con 0.20.0 ni con las anteriores de qiskit-terra.

0.6.0

Notas de actualización

  • Al migrar desde qiskit-ibmq-provider , las credenciales del canal ibm_quantum se copiarán automáticamente desde el archivo qiskitrc y se creará un archivo qiskit-ibm.json si no existe. Sólo tiene que inicializar la clase QiskitRuntimeService sin pasar ningún parámetro para utilizar esta cuenta copiada sobre la cuenta por defecto ibm_quantum .

    ex:

    from qiskit_ibm_runtime import QiskitRuntimeService
    service = QiskitRuntimeService()
  • IBMEstimator que ya había quedado obsoleta. Utilice la clase Estimator en adelante.

  • IBMRuntimeService que ya había quedado obsoleta. Utilice QiskitRuntimeService en adelante.


0.5.0

Preludio

Esta versión aprovecha las mejoras introducidas en la API y en las colas para ser más consciente de las sesiones en tiempo de ejecución. Como resultado, al utilizar las primitivas (muestreador y estimador), los trabajos en tiempo de ejecución de la misma sesión saltarán al principio de la cola, acelerando así la sesión en tiempo de ejecución, una vez iniciada.

Nuevas funciones

  • El objeto service que es una instancia de la clase QiskitRuntimeService ahora se puede acceder desde la clase IBMBackend utilizando la propiedad service .

    ex:

    backend = service.get_backend("ibmq_qasm_simulator")
    backend.service  # QiskitRuntimeService instance used to instantiate the backend

Notas de actualización

  • jobs() tiene dos nuevos parámetros, created_after y created_before. Se pueden utilizar para filtrar los trabajos por fecha de creación en hora local.

  • Los parámetros circuit_indices y observable_indices al llamar a estimator están obsoletos y se eliminarán en una futura versión. Ahora puede pasar índices u objetos utilizando los parámetros circuits y observables .

    ex:

    with Estimator(
      circuits=[qc1, qc2],
      observables=[H1, H2, H3],
      service=service,
      options=options
    ) as estimator:
      # pass circuits and observables as indices
      result = estimator(circuits=[0, 1], observables=[0, 1], parameter_values=[theta1, theta2])
    
      # pass circuits and observables as objects
      result = estimator(circuits=[qc1, qc2], observables=[H1, H3], parameter_values=[theta1, theta3])
  • Los parámetros circuit_indices y observable_indices al llamar a estimator están obsoletos y se eliminarán en una futura versión. Ahora puede pasar índices u objetos utilizando los parámetros circuits y observables .

    ex:

    with Sampler(
      circuits=[qc1, qc2],
      service=service,
      options=options
    ) as sampler:
      # pass circuits as indices
      result = sampler(circuits=[0, 1], parameter_values=[theta1, theta2])
    
      # pass circuit as objects
      result = sampler(circuits=[qc1, qc2], parameter_values=[theta2, theta3])
  • El session_id, que es el ID de trabajo del primer trabajo de una sesión en tiempo de ejecución puede utilizarse ahora como filtro en jobs() con el parámetro session_id.

  • run() admite ahora un nuevo parámetro, job_tags. Estas etiquetas pueden utilizarse al filtrar trabajos con jobs().

  • run() soporta ahora un nuevo parámetro, max_execution_time, que puede utilizarse para anular el tiempo máximo de ejecución del programa por defecto. Debe ser inferior o igual al tiempo máximo de ejecución del programa.

  • jobs() tiene un nuevo parámetro, descending. Este parámetro es por defecto True, donde los trabajos serán devueltos en orden descendente basado en la fecha de creación.

  • RuntimeJobTimeoutError ahora se activa cuando el timeout establecido en result() o wait_for_final_state() expira.

  • Cuando se inicializa QiskitRuntimeService y se utiliza un token no válido, aparecerá IBMNotAuthorizedError en lugar de RequestsApiError.

  • IBMSampler que ya había quedado obsoleta. Utilizar la clase Sampler en adelante.

  • qubit_properties() devolverá ahora una subclase de QubitProperties llamada IBMQubitProperties y expondrá la anarmonicidad además de t1, t2 y la frecuencia ya expuestas por la clase QubitProperties .


0.4.0

Notas de actualización

  • IBMRuntimeService ha sido renombrada a QiskitRuntimeSerice. La clase IBMRuntimeService está ahora obsoleta y será eliminada en una futura versión.

    Ejemplo:

    Antes:

    from qiskit_ibm_runtime import IBMRuntimeService
    service = IBMRuntimeService(channel="ibm_cloud", token="...", instance="...")

    Después:

    from qiskit_ibm_runtime import QiskitRuntimeService
    service = QiskitRuntimeService(channel="ibm_cloud", token="...", instance="...")
  • IBMEstimator está obsoleta y se eliminará en una futura versión. Utilice la clase Estimator en adelante.

    Ejemplo:

    Antes:

    from qiskit_ibm_runtime import IBMRuntimeService, IBMEstimator
    service = IBMRuntimeService(channel="ibm_cloud", token="...", instance="...")
    
    estimator_factory = IBMEstimator(service=service, backend="ibmq_qasm_simulator")
    
    with estimator_factory(circuits=[qc], observables="...", parameters="...") as estimator:
        result = estimator(circuit_indices=[0], ...)

    Después:

    from qiskit_ibm_runtime import QiskitRuntimeService, Estimator
    service = QiskitRuntimeService(channel="ibm_cloud", token="...", instance="...")
    
    with Estimator(
      circuits=[qc],
      observables="...",
      parameters="...",
      service=service,
      options={ "backend": "ibmq_qasm_simulator" },  # or IBMBackend<"ibmq_qasm_simulator">
    ) as estimator:
        result = estimator(circuit_indices=[0], ...)
  • IBMSampler está obsoleta y se eliminará en una futura versión. Utilizar la clase Sampler en adelante.

    Ejemplo:

    Antes:

    from qiskit_ibm_runtime import IBMRuntimeService, IBMSampler
    service = IBMRuntimeService(channel="ibm_cloud", token="...", instance="...")
    
    sampler_factory = IBMSampler(service=service, backend="ibmq_qasm_simulator")
    
    with sampler_factory(circuits=[qc], parameters="...") as sampler:
        result = sampler(circuit_indices=[0], ...)

    Después:

    from qiskit_ibm_runtime import QiskitRuntimeService, Sampler
    service = QiskitRuntimeService(channel="ibm_cloud", token="...", instance="...")
    
    with Sampler(
      circuits=[qc],
      parameters="...",
      service=service,
      options={ "backend": "ibmq_qasm_simulator" },  # or IBMBackend<"ibmq_qasm_simulator">
    ) as sampler:
        result = sampler(circuit_indices=[0], ...)

Notas sobre características en desuso

  • IBMRuntimeServicelas clases IBMEstimator y IBMSampler han quedado obsoletas y se eliminarán en una futura versión. Utilice en su lugar las clases QiskitRuntimeService, Estimator y Sampler. Consulte la sección de notas de actualización para obtener una explicación detallada con ejemplos.

0.3.0

Notas de actualización

  • Se ha añadido un nuevo parámetro channel a la clase qiskit_ibm_runtime.IBMRuntimeService y también a métodos como save_account(), saved_accounts() y delete_account(). Puede configurarse como ibm_quantum o ibm_cloud para autenticarse en cualquiera de los dos canales diferentes a través de los cuales se ofrece actualmente el servicio Qiskit Runtime. channel sustituye al parámetro auth , que ha quedado obsoleto.

Notas sobre características en desuso

  • El parámetro auth de la clase qiskit_ibm_runtime.IBMRuntimeService y también de métodos como save_account(), saved_accounts() y delete_account() ha quedado obsoleto y se eliminará en una futura versión. Utilice en su lugar el nuevo parámetro channel .

Corrección de errores

  • Corregido #291 donde pasar un único QuantumCircuit a primitivas de muestreador o estimador lanzaba un error.

0.2.0

Nuevas funciones

  • qiskit_ibm_runtime.IBMEstimator y qiskit_ibm_runtime.IBMSampler permiten ahora interactuar fácilmente con los programas primitivos estimator y sampler . Consulte los ejemplos en las cadenas de documentos de las clases respectivas para obtener más información sobre cómo utilizarlas.

Corrección de errores


0.1.0

Preludio

qiskit-ibm-runtime es un nuevo cliente API Python para acceder a los programas, sistemas y simuladores cuánticos de IBM Quantum a través del servicio Qiskit Runtime.

Este nuevo paquete se basa en el trabajo ya realizado en el módulo qiskit.providers.ibmq.runtime del paquete qiskit-ibmq-provider y lo sustituye en adelante. El módulo de ejecución del paquete qiskit-ibmq-provider ha quedado obsoleto.

qiskit-ibm-runtime no está incluido como parte del meta paquete Qiskit y por lo tanto tienes que instalarlo por separado usando pip install qiskit-ibm-runtime.

Nuevas funciones

  • qiskit_ibm_runtime.IBMRuntimeService.least_busy() le permitirá ahora encontrar el backend menos ocupado.

Notas de actualización

  • el paquete qiskit-ibm-runtime ya no utiliza el archivo $ HOME/.qiskit/qiskitrc utilizado por qiskit-ibmq-provider para guardar las credenciales. Las credenciales se almacenan ahora en formato JSON en el archivo HOME/.qiskit/qiskit-ibm.json cuando se utiliza el método qiskit_ibm_runtime.IBMRuntimeService.save_account() .

    Ahora puede guardar varias credenciales y dar un nombre opcional a cada una de ellas.

  • Qiskit Runtime se puede acceder al servicio utilizando una cuenta IBM Quantum (legacy) o una cuenta IBM Cloud (cloud). qiskit-ibm-runtime le permite conectarse a cualquiera de estas cuentas:

    # Legacy
    from qiskit_ibm_runtime import IBMRuntimeService
    service = IBMRuntimeService(auth="legacy", token="abc")
    
    # Cloud
    from qiskit_ibm_runtime import IBMRuntimeService
    service = IBMRuntimeService(auth="cloud", token="abc", instance="IBM Cloud CRN or Service instance name")
  • qiskit_ibm_runtime.IBMBackend implementa ahora la interfaz qiskit.providers.BackendV2 y proporciona un acceso más sencillo a la configuración de un backend, por ejemplo:

    # BackendV1:
    backend.configuration().n_qubits
    
    # BackendV2:
    backend.num_qubits

    El único cambio importante en comparación con BackendV1 es que backend.name es ahora un atributo en lugar de un método.

    Consulte la qiskit_ibm_runtime.IBMBackend para obtener una lista de todos los atributos disponibles.

  • Si utilizó el método qiskit.providers.ibmq.AccountProvider.get_backend (por ejemplo, provider.get_backend("ibmq_qasm_simulator")) en el paquete qiskit-ibmq-provider, su método equivalente en este nuevo paquete es qiskit_ibm_runtime.IBMRuntimeService.backend():

    service = IBMRuntimeService()
    backend = service.backend("ibmq_qasm_simulator")
  • Ahora es opcional especificar un concentrador/grupo/proyecto por adelantado al conectarse a la cuenta heredada de IBM Quantum. El centro/grupo/proyecto se selecciona en el siguiente orden.

    • hub/group/project si se pasa a través del parámetro instance al inicializar qiskit_ibm_runtime.IBMRuntimeService
    • el hub/grupo/proyecto específico requerido por el backend especificado al llamar a qiskit_ibm_runtime.IBMRuntimeService.run()
    • el valor por defecto establecido previamente mediante qiskit_ibm_runtime.IBMRuntimeService.save_account()
    • un centro/grupo/proyecto premium en su cuenta
    • centro/grupo/proyecto de acceso abierto
  • Ahora es opcional especificar backend_name en las opciones al ejecutar el método qiskit_ibm_runtime.IBMRuntimeService.run() cuando se utiliza el tiempo de ejecución en la nube ( IBM Cloud solamente). El servidor elegirá automáticamente un backend y devolverá el nombre.

  • qiskit.providers.ibmq.runtime.IBMRuntimeService se ha eliminado el método.logout en qiskit-ibmq-provider que se utilizaba para borrar la caché de autorización en el servidor.

  • Python 3.6 ha llegado al final de su vida útil y dejará de estar soportado en el nuevo paquete qiskit-ibm-runtime.

  • qiskit.providers.ibmq.runtime.IBMRuntimeService el método.run_circuits en qiskit-ibmq-provider ha sido eliminado y será reemplazado por el programa primitivo Sampler .

  • qiskit_ibm_runtime.IBMRuntimeService.run() acepta ahora opciones de ejecución en tiempo de ejecución como clase qiskit_ibm_runtime.RuntimeOptions además de la ya soportada Dict. backend_name, image y log_level son las opciones disponibles actualmente.

  • El resultado final también se transmite ahora después de los resultados intermedios cuando se especifica un callback a qiskit_ibm_runtime.IBMRuntimeService.run() o qiskit_ibm_runtime.RuntimeJob.stream_results().


0.1.0rc2

Nuevas funciones

  • Para mayor comodidad, ahora puede establecer la dirección IBM Cloud service name como valor para el parámetro de cuenta instance . Si elige establecer el nombre en lugar de CRN, el tiempo de inicialización de la clase qiskit_ibm_runtime.IBMRuntimeService es ligeramente superior porque el valor requerido CRN se resuelve internamente a través de las API IBM Cloud.

Corrección de errores


0.1.0rc1

Nuevas funciones

  • Ahora puede pasar el parámetro instance en el formato centro/grupo/proyecto a qiskit_ibm_runtime.IBMRuntimeService.jobs() para filtrar los trabajos. Actualmente sólo se admite para la autenticación heredada.
  • Ahora puede utilizar el método qiskit_ibm_runtime.RuntimeJob.interim_results() para recuperar los resultados provisionales del programa en tiempo de ejecución. Tenga en cuenta que los resultados provisionales sólo estarán disponibles durante un máximo de dos días.

Notas de actualización

  • Con el fin de ser coherente con otras propiedades en qiskit_ibm_runtime.RuntimeJob los métodos job_id y backend se han convertido en propiedades.
  • Al cargar un programa con qiskit_ibm_runtime.IBMRuntimeService.upload_program(), la descripción del programa es ahora opcional.
  • Al imprimir programas con qiskit_ibm_runtime.IBMRuntimeService.pprint_programs(), ahora aparecerá backend_requirements .

Corrección de errores

  • Se ha corregido un problema con la codificación y descodificación de JSON al utilizar ParameterExpressions junto con Qiskit Terra 0.19.1 y superiores. Antes, las instancias de Parameter reconstruidas a partir de la salida JSON tenían identificadores únicos diferentes, lo que hacía que parecieran desiguales a las de entrada. Ahora tendrán las identidades de respaldo correctas.
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.