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 computadoras cuánticas. Entre estas herramientas destaca el SDK de Qiskit de código abierto, y el entorno de ejecución (al que se accede mediante Qiskit Runtime) a través del cual puedes ejecutar cargas de trabajo en las unidades de procesamiento cuántico (QPUs) de IBM®. A medida que la tecnología cuántica evoluciona, Qiskit también lo hace, con nuevas capacidades lanzadas cada año que amplían esta colección central 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 son parte de Qiskit en sí, sino que se integran con él y pueden aportar funcionalidades adicionales de gran valor.
IBM está comprometida con el desarrollo responsable de la computación cuántica. Conoce más y revisa nuestros principios de computación cuántica responsable en el tema Computación cuántica responsable.
El SDK de Qiskit
El SDK de Qiskit (nombre del paquete qiskit) es un SDK de código abierto para trabajar con computadoras cuánticas 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 de herramientas más amplio para la computación cuántica, y muchos otros componentes se integran con él.
Algunas de las características más útiles del SDK de Qiskit incluyen:
-
Herramientas de construcció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 variedad de circuitos, instrucciones y puertas: bloques de construcción clave para los cómputos 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, usando cálculos exactos (sin ruido de muestreo). Usa este módulo para especificar observables de entrada y analizar la fidelidad de los resultados de las consultas a primitivas. -
Transpilador (
qiskit.transpiler) - Para transformar y adaptar circuitos cuánticos a la topología específica de un dispositivo, y optimizarlos para su ejecución en unidades de procesamiento cuántico (QPUs) reales. -
Primitivas (
qiskit.primitives) - El módulo que contiene las definiciones base e implementaciones de referencia de las primitivas Sampler y Estimator, a partir de las cuales distintos proveedores de hardware cuántico pueden derivar sus propias implementaciones. Consulta más información sobre las primitivas de Qiskit Runtime en la documentación.
Instalación
Para una introducción más detallada sobre cómo instalar el SDK de Qiskit, consulta la página de instalación. Si ya estás listo para instalarlo, simplemente ejecuta:
pip install qiskit
Benchmarking y el paquete Benchpress
El benchmarking es importante para comparar el rendimiento relativo del software cuántico en las distintas etapas de un flujo de desarrollo. Las pruebas de benchmarking para software cuántico pueden, por ejemplo, analizar la velocidad y calidad al construir, manipular y transpilar circuitos. IBM Quantum está comprometida a ofrecer el SDK con el mayor rendimiento posible; con ese fin, el SDK de Qiskit se evalúa con más de 1.000 pruebas desarrolladas por universidades líderes, laboratorios nacionales e investigadores de IBM. El conjunto de benchmarking utilizado para estas pruebas, llamado Benchpress, está ahora disponible como un paquete de código abierto. Ahora puedes usar el paquete Benchpress para realizar tu propio análisis del rendimiento del SDK cuántico.
Qiskit Runtime
Qiskit Runtime es un servicio en la nube para ejecutar cómputos cuánticos en el hardware de IBM Quantum®. El paquete qiskit-ibm-runtime es un cliente para ese servicio y es el sucesor del Qiskit IBM Provider. El servicio Qiskit Runtime simplifica los cómputos cuánticos y proporciona implementaciones óptimas de las primitivas de Qiskit para el hardware de IBM Quantum. Para comenzar con las primitivas de Qiskit Runtime, visita la documentación.
Qiskit Runtime está diseñado para utilizar recursos de cómputo clásico y cuántico adicionales, incluyendo técnicas como la supresión de errores y la mitigación de errores, con el fin de obtener resultados de mayor calidad al ejecutar circuitos cuánticos en procesadores cuánticos. Entre los ejemplos se incluyen el desacoplamiento dinámico para la supresión de errores, y la mitigación de lectura y la extrapolación de ruido cero (ZNE) para la mitigación de errores. Aprende 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 correr tu programa cuántico en el hardware de IBM: Job, Session y Batch,, cada uno con diferentes casos de uso e implicaciones para la cola de trabajos cuánticos. Un Job es una consulta individual a una primitiva que puede ejecutarse durante un número específico de shots. Las Sessions te permiten ejecutar eficientemente múltiples trabajos en cargas de trabajo iterativas en computadoras cuánticas. El modo Batch te permite enviar todos tus trabajos a la vez para su procesamiento en paralelo. Ten en cuenta que los usuarios del Plan Abierto no pueden enviar trabajos de sesión.
Para instalar Qiskit Runtime rápidamente, ejecuta el siguiente comando:
pip install qiskit-ibm-runtime
Puedes encontrar más detalles sobre cómo configurar un entorno de desarrollo para construir programas cuánticos en la página de instalación.
¿Es Qiskit Runtime de código abierto?
La respuesta breve es: no en su totalidad. El software del servicio Qiskit Runtime que gestiona los tecnicismos de ejecutar tu programa cuántico en un dispositivo de IBM Quantum (incluida cualquier mitigación y supresión de errores) no es de código abierto. Sin embargo, el cliente de 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 la mitigación de errores sí son de código abierto. Para participar en los esfuerzos de código abierto de Qiskit, visita nuestra organización en GitHub en github.com/Qiskit y github.com/Qiskit-Extensions.
Qiskit Serverless
Crear aplicaciones cuánticas a escala de utilidad generalmente requiere una variedad de requisitos de recursos de cómputo. Qiskit Serverless (qiskit-ibm-catalog.QiskitServerless) proporciona una interfaz sencilla para ejecutar cargas de trabajo en recursos cuánticos y clásicos. Esto incluye desplegar programas en IBM Quantum Platform y ejecutar cargas de trabajo de forma remota, así como una gestión sencilla de recursos para casos de uso de computación multi-nube y supercomputación centrada en lo cuántico. Consulta más información en la documentación de Qiskit Serverless sobre cómo usar esta colección de herramientas para:
- Paralelizar tareas clásicas, como el preprocesamiento y el posprocesamiento
- Mantener cargas de trabajo de larga duración en la nube, incluso si tu portátil está apagado
- Desplegar programas reutilizables en la nube
Para comenzar a usar Qiskit Serverless de inmediato, instálalo con pip:
pip install qiskit_serverless
Qiskit Functions
Qiskit Functions (qiskit-ibm-catalog.QiskitFunctionsCatalog) son servicios abstraídos diseñados para acelerar el descubrimiento de algoritmos y la creación de prototipos de aplicaciones. Explora el Catálogo de Qiskit Functions, que incluye:
- Circuit functions: Servicios que incluyen transpilación, supresión de errores, mitigación de errores y técnicas de posprocesamiento que toman circuitos abstractos y los observables de medición deseados como entrada. Con Circuit functions, los usuarios pueden descubrir nuevos algoritmos y aplicaciones sin necesidad de gestionar la transpilación ni el rendimiento del hardware cuántico.
- Application functions: Servicios que incluyen flujos de trabajo cuánticos completos, desde el mapeo de clásico a cuántico, la optimización para el hardware, la ejecución en hardware y el posprocesamiento. Los usuarios pueden crear prototipos de aplicaciones industriales con entradas y salidas familiares para su dominio.
Los miembros del Plan Premium, el Plan Flex y el Plan On-Prem (a través de la API de IBM Quantum Platform) pueden acceder de inmediato a las funciones proporcionadas por IBM, o adquirir licencias para las funciones de socios directamente de dichos socios.
El catálogo se puede instalar con pip:
pip install qiskit-ibm-catalog
Qiskit Transpiler Service
El Qiskit Transpiler Service (nombre del paquete qiskit-ibm-transpiler) es un nuevo servicio experimental que proporciona capacidades de transpilación remota en la nube para los usuarios del Plan Premium, el Plan Flex y el Plan On-Prem (a través de la API de IBM Quantum Platform) de IBM Quantum. Además de las capacidades de transpilación locales del SDK de Qiskit, tus tareas de transpilación pueden beneficiarse tanto de los recursos en la nube de IBM Quantum como de los pases del transpilador con inteligencia artificial mediante 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 de transpilación se puede instalar con pip:
pip install qiskit-ibm-transpiler
Complementos de Qiskit
Los complementos de Qiskit son una colección de capacidades de investigación para el descubrimiento de algoritmos a escala de utilidad. Estas capacidades se construyen sobre la base de alto rendimiento de herramientas de Qiskit para crear y ejecutar algoritmos cuánticos. Los complementos son componentes de software modulares que se integran en un flujo de trabajo para escalar o diseñar nuevos algoritmos cuánticos. Para obtener más información sobre el conjunto de complementos de Qiskit disponibles y cómo comenzar a usarlos, visita la documentación.
Hay varios complementos disponibles según la capacidad de investigación que te interese. Cada uno de ellos se puede instalar con pip.
Diagonalización cuántica basada en muestras (SQD):
pip install qiskit-addon-sqd
Compilación cuántica aproximada (AQC):
pip install qiskit-addon-aqc-tensor[quimb-jax]
Retropropagación de operadores (OBP):
pip install qiskit-addon-obp
pip install qiskit-addon-mpf
El ecosistema de Qiskit
Más allá de Qiskit, existen muchos proyectos de código abierto que usan el nombre "Qiskit" pero no forman parte de Qiskit en sí; más bien, se integran con Qiskit y pueden aportar una funcionalidad adicional valiosa que complementa el flujo de trabajo central de Qiskit. Algunos de estos proyectos son mantenidos por los equipos de IBM Quantum, mientras que otros son respaldados por la comunidad de código abierto en general. El SDK de Qiskit está diseñado de forma modular y extensible para que sea fácil para los desarrolladores crear proyectos como estos que amplíen sus capacidades.
Algunos proyectos populares en el ecosistema de Qiskit incluyen:
- 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 usando múltiples métodos de simulación diferentes. Mantenido por IBM Quantum. - qBraid SDK (
qbraid) - un marco de ejecución cuántica independiente de la plataforma para proveedores de software y hardware cuántico, diseñado para simplificar 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 y 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 medición que resuelve probabilidades de medición corregidas mediante un paso de reducción de dimensionalidad seguido de factorización LU directa o un método iterativo precondicionado que converge nominalmente en O(1) pasos, y puede calcularse en paralelo. Mantenido por IBM Quantum.
Puedes encontrar un catálogo de proyectos en la página del ecosistema de Qiskit, así como información sobre cómo nominar tu propio proyecto.
Próximos pasos
- Aprende sobre la biblioteca de circuitos e instrucciones disponible en la biblioteca de circuitos de Qiskit.
- Lee sobre el transpilador de Qiskit y las muchas opciones de transpilación en la sección Transpilador.
- Descubre cómo usar las primitivas de Qiskit para agilizar la programación cuántica.