Introducción a Qiskit
El nombre "Qiskit" es un término general que hace referencia a una colección de software para ejecutar programas en ordenadores cuánticos. Entre estas herramientas de software destaca el SDK Qiskit de código abierto y el entorno de ejecución (al que se accede mediante Qiskit Runtime ), a través del cual se pueden ejecutar cargas de trabajo en las unidades de procesamiento cuántico (QPU) de IBM®. A medida que evoluciona la tecnología cuántica, también lo hace Qiskit, con nuevas funciones lanzadas cada año que amplían esta colección básica de software cuántico.
Además, muchos proyectos de código abierto forman parte del ecosistema más amplio de Qiskit. Estas herramientas de software no forman parte de Qiskit en sí, sino que interactúan con Qiskit y pueden proporcionar una valiosa funcionalidad adicional.
IBM está comprometida con el desarrollo responsable de la computación cuántica. Obtenga más información y revise nuestros principios cuánticos responsables en el tema Informática cuántica responsable.
El SDK de Qiskit
El SDK Qiskit (nombre del paquete qiskit
) es un SDK de código abierto para trabajar con ordenadores cuánticos a nivel de circuitos cuánticos extendidos (estáticos, dinámicos y programados), operadores y primitivas. Esta biblioteca es el componente central de Qiskit; es el paquete más grande bajo el nombre Qiskit con el conjunto más amplio de herramientas para la computación cuántica, y muchos otros componentes interactúan con él.
Algunas de las funciones más útiles del SDK de Qiskit son:
-
Herramientas de creación de circuitos (
qiskit.circuit
) - Para inicializar y manipular registros, circuitos, instrucciones, puertas, parámetros y objetos de flujo de control. -
Biblioteca de circuitos (
qiskit.circuit.library
) - Una amplia gama de circuitos, instrucciones y compuertas, elementos clave para los cálculos cuánticos basados en circuitos. -
Biblioteca de información cuántica (
qiskit.quantum_info
) - Un conjunto de herramientas para trabajar con estados cuánticos, operadores y canales, utilizando cálculos exactos (sin ruido de muestreo). Utilice este módulo para especificar observables de entrada y analizar la fidelidad de las salidas de las consultas de primitivas. -
Transpilador (
qiskit.transpiler
) - Para transformar y adaptar circuitos cuánticos a la topología de dispositivos específicos y optimizar su ejecución en unidades de procesamiento cuántico (QPU) reales. -
Primitivas (
qiskit.primitives
) - El módulo que contiene las definiciones base y las implementaciones de referencia de las primitivas Sampler y Estimator, a partir de las cuales los diferentes proveedores de hardware cuántico pueden derivar sus propias implementaciones. Consulte más información sobre las primitivas Qiskit Runtime en la documentación.
Instalación
Para una introducción más detallada a la instalación del SDK de Qiskit, consulta la página de instalación. Si estás listo para instalarlo ahora, simplemente ejecútalo:
pip install qiskit
Benchmarking y el paquete Benchpress
La evaluación comparativa es importante para comparar el rendimiento relativo del software cuántico en las distintas fases de un flujo de trabajo de desarrollo. Las pruebas comparativas del software cuántico podrían, por ejemplo, analizar la velocidad y calidad de la construcción, manipulación y transpilación de circuitos. IBM Quantum se compromete a ofrecer el SDK con el mayor rendimiento posible y, para ello, el SDK de Qiskit se somete a más de 1.000 pruebas desarrolladas por las principales universidades, laboratorios nacionales e investigadores en IBM. El paquete de evaluación comparativa utilizado para estas pruebas, denominado Benchpress, ya está disponible como paquete de código abierto. Ahora puede utilizar el paquete Benchpress para realizar su propio análisis del rendimiento del SDK cuántico.
Qiskit Runtime
Qiskit Runtime es un servicio basado en la nube para ejecutar cálculos cuánticos en el hardware IBM Quantum®. El paquete qiskit-ibm-runtime
es un cliente para ese servicio, y es el sucesor del proveedor Qiskit IBM. El servicio Qiskit Runtime agiliza los cálculos cuánticos y proporciona implementaciones óptimas de las primitivas Qiskit para el hardware IBM Quantum. Para empezar a utilizar las primitivas Qiskit Runtime, visite la documentación.
Qiskit Runtime está diseñado para utilizar recursos de cálculo clásicos y cuánticos adicionales, incluidas técnicas como la supresión y mitigación de errores, para obtener un resultado de mayor calidad al ejecutar circuitos cuánticos en procesadores cuánticos. Algunos ejemplos son el desacoplamiento dinámico para la supresión de errores, y la mitigación de la lectura y la extrapolación de ruido cero (ZNE) para la mitigación de errores. Aprenda a configurar estas opciones en la página Configurar la mitigación de errores.
Qiskit Runtime también incluye tres tipos de modos de ejecución para ejecutar tu programa cuántico en el hardware IBM : Trabajo, Sesión y Lote, cada uno de los cuales tiene diferentes casos de uso e implicaciones para la cola de trabajos cuánticos. Un trabajo es una consulta única a una primitiva que puede ejecutarse durante un número determinado de disparos. Las sesiones permiten ejecutar eficientemente múltiples trabajos en cargas de trabajo iterativas en ordenadores cuánticos. El modo por lotes le permite enviar todos sus trabajos a la vez para procesarlos en paralelo. Tenga en cuenta que los usuarios de Open Plan no pueden enviar trabajos de sesión.
Para instalar rápidamente Qiskit Runtime, ejecute el siguiente comando:
pip install qiskit-ibm-runtime
Encontrará más información sobre cómo configurar un entorno de desarrollo para crear programas cuánticos en la página de instalación.
¿Es Qiskit Runtime de código abierto?
La respuesta corta es que no todo. El software de servicio Qiskit Runtime que se encarga de los aspectos técnicos de la ejecución de su programa cuántico en un dispositivo IBM Quantum (incluida la mitigación y supresión de errores) no es de código abierto. Sin embargo, el cliente Qiskit Runtime (la interfaz para que los usuarios accedan al servicio Qiskit Runtime ), el SDK de Qiskit que se ejecuta en el lado del servidor y parte del software utilizado para mitigar errores, son de código abierto. Para participar en los esfuerzos de código abierto de Qiskit, visite nuestra organización GitHub en github.com/Qiskit y github.com/Qiskit-Extensions.
Qiskit Sin Servidor
La creación de aplicaciones cuánticas a escala comercial suele requerir diversos recursos informáticos. Qiskit Serverless (qiskit-ibm-catalog.QiskitServerless
) proporciona una interfaz sencilla para ejecutar cargas de trabajo a través de recursos cuánticos clásicos. Esto incluye el despliegue de programas en IBM Quantum Platform y la ejecución de cargas de trabajo de forma remota, así como la gestión sencilla de recursos para casos de uso de supercomputación multicloud y cuántico-céntrica. Consulte más información en la documentación de Qiskit Serverless sobre cómo utilizar esta colección de herramientas para:
- Paralelizar tareas clásicas, como el preprocesamiento y el postprocesamiento
- Persistencia de cargas de trabajo de larga duración en la nube, incluso si el portátil está apagado
- Implantar programas reutilizables en la nube
Para empezar a utilizar Qiskit Serverless de inmediato, instálalo con pip:
pip install qiskit_serverless
Funciones Qiskit
Qiskit Functions (qiskit-ibm-catalog.QiskitFunctionsCatalog
) son servicios abstractos diseñados para acelerar el descubrimiento de algoritmos y la creación de prototipos de aplicaciones. Explore el catálogo de funciones de Qiskit, que incluye:
- Funciones de circuito : Servicios que incluyen técnicas de transpilación, supresión de errores, mitigación de errores y posprocesamiento que toman como entrada circuitos abstractos y observables de medición deseados. Con las funciones Circuit, los usuarios pueden descubrir nuevos algoritmos y aplicaciones sin necesidad de gestionar la transpilación o el rendimiento cuántico del hardware.
- Funciones de aplicación : Servicios que incluyen flujos de trabajo cuánticos completos, desde el mapeo clásico a cuántico, la optimización para hardware, la ejecución en hardware y el posprocesamiento. Los usuarios pueden crear prototipos de aplicaciones industriales con entradas y salidas conocidas.
Los miembros de los planes Premium, Flex y On-Prem (a través de IBM Quantum Platform API) pueden acceder inmediatamente a las funciones proporcionadas por IBM, o adquirir licencias para las funciones proporcionadas por los socios directamente a dichos socios.
El catálogo se puede instalar con pip:
pip install qiskit-ibm-catalog
Qiskit Transpiler como servicio
El servicio Qiskit Transpiler (nombre del paquete qiskit-ibm-transpiler
) es un nuevo servicio experimental que proporciona capacidades de transpilación remota en la nube a los usuarios de los planes IBM Quantum Premium Plan, Flex Plan y On-Prem (a través de IBM Quantum Platform API). Además de las capacidades locales del transpilador del SDK de Qiskit, sus tareas de transpilación pueden beneficiarse tanto de los recursos en la nube de IBM Quantum como de los pases de transpilador impulsados por IA utilizando este servicio. Para obtener más información sobre cómo integrar la transpilación basada en la nube en tu flujo de trabajo de Qiskit, puedes consultar la documentación.
El servicio transpiler puede instalarse con pip:
pip install qiskit-ibm-transpiler
Qiskit addons
Los complementos de Qiskit son una colección de capacidades de investigación para el descubrimiento de algoritmos a gran escala. Estas funciones se basan en la potente base de herramientas de Qiskit para crear y ejecutar algoritmos cuánticos. Los addons son componentes de software modulares que se conectan a un flujo de trabajo para escalar o diseñar nuevos algoritmos cuánticos. Para obtener más información sobre el conjunto de complementos Qiskit disponibles y cómo empezar a utilizarlos, visita la documentación.
Existen varios complementos en función de la capacidad de investigación que le interese. Cada uno de ellos puede instalarse con pip.
Diagonalización cuántica basada en muestras (SQD) :
pip install qiskit-addon-sqd
Recopilación cuántica aproximada (AQC) :
pip install qiskit-addon-aqc-tensor[quimb-jax]
Operador de retropropagación (OBP) :
pip install qiskit-addon-obp
Fórmulas multiproducto (FMP) :
pip install qiskit-addon-mpf
El ecosistema Qiskit
Además de Qiskit, existen muchos proyectos de código abierto que utilizan el nombre "Qiskit", pero que no forman parte de Qiskit en sí, sino que interactúan con Qiskit y pueden proporcionar una valiosa funcionalidad adicional para complementar el flujo de trabajo central de Qiskit. Algunos de estos proyectos son mantenidos por equipos de IBM Quantum, mientras que otros cuentan con el apoyo de la comunidad de código abierto en general. El SDK de Qiskit está diseñado de forma modular y extensible para facilitar a los desarrolladores la creación de proyectos como éstos que amplíen sus capacidades.
Algunos de los proyectos más populares del ecosistema Qiskit son:
- Qiskit Aer (
qiskit-aer
) - un paquete para simuladores de computación cuántica con modelos de ruido realistas. Proporciona interfaces para ejecutar circuitos cuánticos con o sin ruido utilizando múltiples métodos de simulación diferentes. Mantenido por IBM Quantum. - qBraid SDK (
qbraid
): un marco de tiempo de ejecución cuántico independiente de la plataforma para proveedores de software y hardware cuánticos, diseñado para agilizar la gestión del ciclo de vida completo de los trabajos cuánticos, desde la definición de las especificaciones del programa hasta el envío del trabajo, pasando por el posprocesamiento y la visualización de los resultados. Mantenido por qBraid. - mthree
mthree
- un paquete para implementar M3 (Matrix-free Measurement Mitigation), una técnica de mitigación de la medición que resuelve las probabilidades de medición corregidas utilizando un paso de reducción de la dimensionalidad seguido de una factorización LU directa o de un método iterativo precondicionado que nominalmente converge en O(1) pasos, y que puede calcularse en paralelo. Mantenido por IBM Quantum.
Puede encontrar un catálogo de proyectos en la página del ecosistema Qiskit, así como información sobre cómo nominar su propio proyecto.