Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Algunos problemas computacionales son poco prácticos o intractables para resolver en equipos clásicos, incluso en grandes superequipos. Para algunos de estos problemas, un algoritmo cuántico puede llegar a una solución con mucho menos recursos que el enfoque clásico más conocido. Un equipo cuántico usa efectos cuánticos mecánicos, como superposición y entrelazamiento, para representar y procesar información de maneras que un equipo clásico no puede.
Los programas cuánticos se ejecutan en proveedores cuánticos a los que se llega mediante el envío de trabajos. Los objetivos cuánticos exponen diferentes perfiles de destino. Algunos perfiles solo permiten operaciones cuánticas y la lógica clásica que se puede ejecutar en ellos es limitada. Otros perfiles permiten que las operaciones cuánticas y clásicas se ejecuten juntas en el proveedor.
Independientemente del perfil de destino, los componentes de proceso clásico controlan la integración de la aplicación circundante. Incluso cuando un objetivo cuántico acepta operaciones clásicas, se accede a él enviando un trabajo y esperando los resultados. En este artículo se describen y comparan dos modelos de orquestación para integrar el trabajo cuántico con aplicaciones clásicas.
En la práctica, ejecutar un programa cuántico es una llamada de servicio. La aplicación clásica o el código de cliente envía un trabajo a un destino, espera a que se ejecute y recupere los resultados. Uno o varios componentes de proceso clásico orquestan cada trabajo cuántico realizando las actividades siguientes:
- Preparación de los datos de entrada
- Envío de trabajos de computación cuántica a un entorno cuántico de destino
- Supervisión de la ejecución del trabajo
- Resultados del trabajo de posprocesamiento
Modelos de integración cuántica
Puede integrar el trabajo cuántico con una aplicación clásica mediante uno de los dos patrones de orquestación:
Integración cuántica directa. Una aplicación cliente o un arnés clásico ligero interactúan directamente con el área de trabajo de Azure Quantum. El cliente se encarga de la preparación de los datos de entrada, el envío de trabajos, la supervisión, la gestión de resultados y la lógica clásica que rodea la ejecución cuántica.
Integración cuántica orquestada por flujo de trabajo. Un orquestador de flujo de trabajo gestiona el estado global y las transiciones. La ejecución cuántica tiene lugar en pasos del flujo de trabajo que se ejecutan junto con otros pasos que se ejecutan en recursos de computación de alto rendimiento (HPC) o en unidades de procesamiento gráfico (GPU).
Para un límite de integración de aplicaciones determinado, estos patrones son alternativas. Ya sea que el cliente se integre directamente con el espacio de trabajo, o que un flujo de trabajo más amplio gestione el paso cuántico. En este artículo se describe la implementación de cada patrón.
Note
Las arquitecturas descritas en este artículo ejecutan parte de una tarea de cálculo en un objetivo cuántico. Para algunos desafíos de proceso, los servicios existentes creados para realizar la informática de alto rendimiento o proporcionar funcionalidad de inteligencia artificial podrían ser alternativas.
La opción de integración es independiente de dónde se ejecuta el cálculo clásico. Según el perfil de destino y la carga de trabajo, la lógica clásica puede ejecutarse dentro del programa cuántico, en el entorno cliente entre ejecuciones cuánticas, en el orquestador del flujo de trabajo o en un paso clásico del flujo de trabajo sobre recursos de computación HPC o GPU.
Matriz de decisión
Use la siguiente matriz de decisiones para guiar su elección de patrones de integración:
| Si la carga de trabajo tiene estas características | Uso de este enfoque |
|---|---|
| Una sola aplicación o aplicación auxiliar ligera controla todo el ciclo de vida del trabajo cuántico, y la preparación de la entrada y el procesamiento de los resultados se realizan dentro de ese cliente. | Integración cuántica directa |
| Explorará las propiedades del hardware cuántico con código cuántico manuscrito y una aplicación o un pequeño conjunto de aplicaciones relacionadas consume los resultados. | Integración cuántica directa |
| La parte clásica requiere una gran capacidad de proceso y consume la computación cuántica como un paso entre muchos, dentro de una canalización de varias fases cuyas etapas se ejecutan en el back-end más adecuado para cada una, como HPC, GPU o un destino cuántico. | Integración cuántica orquestada por flujo de trabajo |
| Las ejecuciones cuánticas se repiten y el resultado de una ejecución genera el siguiente programa cuántico o determina sus parámetros. | Integración cuántica orquestada por flujo de trabajo |
Detalles del escenario
Ambos flujos de trabajo implementan el patrón de Request-Reply asincrónico y los pasos definidos para el ciclo de vida del trabajo de Azure Quantum.
Los sistemas cuánticos, especialmente el hardware cuántico, constituyen recursos limitados. Azure Quantum asigna estos recursos mediante una cola de trabajos. Cuando envíe un trabajo, este entrará en la cola del destino que seleccione y se ejecutará una vez que dicho destino haya terminado de procesar las entradas anteriores. Para ver el tiempo de espera esperado, enumere los destinos disponibles. Calcule el tiempo de respuesta completo como la espera en cola más el tiempo de ejecución del trabajo.
Las capacidades de un objetivo cuántico también varían. Algunos destinos solo aceptan operaciones cuánticas, mientras que otras ejecutan lógica clásica con operaciones cuánticas en un solo trabajo. Este modelo admite algoritmos que se adaptan durante la ejecución. Antes de decidirse por un destino, confirme que admite las operaciones que su algoritmo necesita. Para obtener más información sobre cómo se ejecutan juntas las instrucciones clásicas y cuánticas, consulte Introducción a la computación cuántica híbrida.
Note
Estos patrones describen cómo integrar el trabajo cuántico en la arquitectura de la aplicación. Son distintos de Azure Quantum modelos de computación híbrida, que describen cómo interactúan los cálculos clásicos y cuánticos dentro de los trabajos cuánticos. Los perfiles de destino restringen lo que se puede ejecutar dentro de estos trabajos. Para más información, consulte Introducción a la computación cuántica híbrida. Los patrones de integración de aplicaciones son independientes del comportamiento dentro del trabajo y controlan si un cliente o un flujo de trabajo ejecutan los trabajos cuánticos.
Integración cuántica directa
En las secciones siguientes se describe el modelo de integración directa para integrar el trabajo cuántico con una aplicación clásica.
Arquitectura
Descargar un archivo PowerPoint de esta arquitectura.
Flujo de datos
El siguiente flujo de datos corresponde al diagrama anterior:
Un usuario que ha iniciado sesión desencadena la ejecución de trabajos cuánticos a través de una aplicación cliente clásica.
La aplicación cliente introduce datos en Azure Storage.
La aplicación cliente envía el trabajo a un área de trabajo de Azure Quantum, especificando el destino o los destinos de ejecución.
El cliente identifica el área de trabajo de su configuración y se autentica en el área de trabajo mediante una identidad de Microsoft Entra. Un cliente que se ejecuta en un recurso hospedado Azure puede usar una identidad administrada. Una aplicación cliente local se autentica con otra identidad de Microsoft Entra, como una entidad de servicio o un inicio de sesión interactivo de usuario.
Un proveedor cuántico ejecuta el trabajo en un entorno de destino.
La aplicación cliente supervisa la ejecución del trabajo mediante la comprobación periódica del estado del trabajo.
Tan pronto como finalice el trabajo cuántico, la aplicación cliente obtiene el resultado del cálculo del almacenamiento.
Componentes
- Azure Quantum proporciona un workspace accesible desde el portal de Azure, para los recursos asociados a la ejecución de trabajos cuánticos en varios destinos. Los trabajos se ejecutan en simuladores cuánticos o hardware cuántico, según el proveedor que elija.
- Microsoft Entra ID coordina la autenticación del usuario y ayuda a proteger el acceso al área de trabajo de Azure Quantum.
- Storage proporciona almacenamiento para los datos de entrada y los resultados del proveedor cuántico.
Casos de uso potenciales de integración directa
El patrón de integración cuántica directa se ajusta a los siguientes casos de uso:
- Una aplicación cliente o un arnés clásico ligero posee el ciclo de vida completo del trabajo cuántico sin un flujo de trabajo más amplio.
- El cliente puede ejecutar el trabajo clásico circundante, como la preparación de entrada y el procesamiento de resultados.
- Exploras las propiedades del hardware cuántico, por lo que normalmente escribes a mano el código cuántico en lugar de generarlo de forma dinámica.
- El uso de los componentes cuánticos se limita a una sola aplicación o a un pequeño conjunto de aplicaciones relacionadas.
- El trabajo cuántico representa una solución especializada, como una simulación molecular, que solo usa una aplicación clásica especializada.
Integración cuántica orquestada por flujo de trabajo
En las secciones siguientes se describe el modelo orquestado por flujo de trabajo para integrar el trabajo cuántico con una aplicación clásica.
Arquitectura
La lógica de flujo de trabajo no depende de ningún host o proveedor específico. El siguiente diagrama de flujo muestra la máquina de estados: una sola entrada, un bucle que recorre los pasos y las fases de cada paso. La rama cuántica puede incluir una fase opcional de generación y optimización de programas que no usan los pasos clásicos.
El selector de back-end del diagrama de flujo anterior es una fase lógica en lugar de un componente necesario y puede ser una búsqueda de configuración que enruta cada paso a un tipo de back-end fijo.
Puede hospedar este flujo de trabajo en Azure con un conjunto de servicios clásicos que envían y supervisan el trabajo cuántico. En el diagrama siguiente se muestra una topología de ejemplo:
Descargar un archivo PowerPoint de esta arquitectura.
Flujo de datos
El siguiente flujo de datos corresponde a la topología de implementación:
- Una aplicación cliente envía una solicitud a través de API Management, que autentica al autor de la llamada con Microsoft Entra ID y aplica la limitación antes de que la solicitud alcance el nivel de proceso.
- API Management reenvía la solicitud a input API, una función desencadenada por HTTP que la valida e inicia el orquestador de flujo de trabajo.
- Para un paso que se ejecuta de forma clásica, el orquestador enruta la ejecución a un back-end clásico, como un clúster de HPC o un proceso de GPU.
- El backend clásico escribe sus resultados y el estado actualizado de la canalización en Storage.
- Para un paso que se ejecuta mediante computación cuántica, el orquestador enruta la ejecución a través de la ruta cuántica. La ruta cuántica prepara el programa del paso, generándolo y optimizándolo a partir de los datos de entrada del paso o usando una implementación fija, y envía el trabajo al espacio de trabajo de Azure Quantum. El envío se autentica a través de la identidad administrada.
- El espacio de trabajo ejecuta la tarea en el destino cuántico seleccionado.
- El destino cuántico escribe sus resultados en Almacenamiento.
- El orquestador lee el estado actualizado del Almacenamiento y evalúa la lógica de transición de la canalización. Si una condición de convergencia o iteración requiere otra ejecución cuántica, el orquestador usa el resultado para determinar los parámetros del siguiente programa cuántico o para proporcionar entradas que generen el siguiente programa. A continuación, la canalización vuelve al paso correspondiente.
- El cliente sondea la API de estado a través de API Management para realizar un seguimiento del progreso y recuperar los resultados finales cuando la canalización alcanza un estado de terminal.
Componentes
- Durable Functions actúa como orquestador del flujo de trabajo para ejecutar la canalización como una máquina de estados, coordinar los pasos y seleccionar el back-end cuántico o de otro tipo de proceso para la ejecución de cada paso. Puede implementar el orquestador con Durable Functions u otro motor de flujo de trabajo.
- Los back ends de proceso clásico de HPC y GPU de Azure ejecutan los pasos no cuánticos.
- Azure Functions hospeda las API HTTP que inician y supervisan el flujo de trabajo, junto con el orquestador que lo ejecuta.
- API Management es el punto de entrada para las solicitudes de cliente. Autentica a los llamantes y aplica la limitación de velocidad. Para evitar que se llame directamente a la aplicación de funciones, use las opciones de red de Azure Functions, como restricciones de acceso de entrada o un punto de conexión privado, de modo que solo acepte tráfico de API Management.
- Azure Quantum proporciona un área de trabajo para los recursos asociados a la ejecución de trabajos cuánticos. Los trabajos se ejecutan en simuladores cuánticos o hardware cuántico, en función del destino que elija.
- Microsoft Entra ID coordina la autenticación y ayuda a proteger el acceso al área de trabajo de Azure Quantum.
- El almacenamiento almacena los datos de entrada, el estado intermedio de la canalización y los resultados.
Alternativas
Las arquitecturas descritas en este artículo ejecutan parte de una tarea de cálculo en un objetivo cuántico. Para algunos desafíos de proceso, los servicios existentes creados para realizar la informática de alto rendimiento o proporcionar funcionalidad de inteligencia artificial podrían ser alternativas.
Para las cargas de trabajo de I+D científica, Microsoft Discovery usa IA para orquestar tareas complejas entre modelos, herramientas y recursos computacionales. Microsoft Discovery puede coordinar distintas herramientas a lo largo de canalizaciones de varios pasos y es extensible, por lo que puede conectar sus propias herramientas y agentes en lugar de crear y operar usted mismo la orquestación. La integración con capacidades cuánticas, incluida la ejecución de pasos cuánticos, podría usar IA para encargarse de la orquestación que este patrón construye manualmente.
Detalles del escenario orquestado por flujo de trabajo
En este patrón, un orquestador de flujo de trabajo ejecuta la carga de trabajo como una canalización de pasos. El orquestador se comporta como una máquina de estado en la que los pasos se repiten y repiten hasta que se cumple una condición de terminación o convergencia. Cada paso sigue la misma forma: prepara su entrada, ejecuta y procesa la salida.
El orquestador selecciona el backend que ejecuta cada paso. Esta selección forma parte de la lógica de orquestación, no de un servicio independiente, y puede ser tan simple como leer el back-end de destino para cada paso de la configuración. Un paso se ejecuta en un back-end cuántico o en un proceso clásico, como un clúster de HPC o un proceso de GPU. Un paso clásico ligero puede ejecutarse en el propio orquestador. Cuando se repiten los pasos cuánticos, el flujo de trabajo procesa el resultado de una ejecución cuántica para determinar los parámetros del siguiente programa cuántico o para proporcionar entradas que generan el siguiente programa.
Un paso que se ejecuta en un back-end cuántico puede agregar una fase que no tengan los pasos clásicos. Esa fase genera y optimiza el programa cuántico antes de la ejecución. Esta fase es opcional. El programa puede generarse dinámicamente a partir de la entrada del paso o puede proceder de una implementación fija que omita esta fase. Un paso apto para la computación cuántica aún podría ejecutarse en un entorno de ejecución clásico si se adapta mejor a los datos de entrada.
La química cuántica es un ejemplo representativo. Una canalización típica usa pasos clásicos para preparar un sistema molecular: optimización de geometría, un cálculo de campo autoconsgruente y selección de espacio activo. A continuación, la canalización calcula una propiedad de destino, como la energía de estado terrestre de una molécula. El paso de computación energética mantiene la misma intención si se ejecuta en una aproximación clásica o en un algoritmo cuántico. Eliges el backend en función de la precisión que necesitas y del tamaño del problema.
La biblioteca QDK/Química admite canalizaciones como estas. La biblioteca proporciona componentes modulares para las etapas clásicas de preparación y para generar un circuito de preparación de estados a partir de la función de onda calculada por métodos clásicos, que un backend cuántico utiliza después para estimar la energía con un algoritmo como la estimación cuántica de fases. Esta funcionalidad de generación de circuitos es un ejemplo concreto de cómo producir dinámicamente el programa cuántico a partir de la entrada de un paso.
Casos de uso potenciales
El patrón de integración cuántica orquestado por flujo de trabajo se ajusta a estos casos de uso:
- La parte clásica requiere una gran capacidad de proceso y se orienta a la lógica del estado del problema; consume la funcionalidad cuántica como uno o varios pasos entre muchos.
- La carga de trabajo es una canalización de varias fases que suele ser iterativa, como una máquina de estados. Cada fase se ejecuta en el backend de cómputo que mejor se ajusta a ella: HPC, GPU o un objetivo cuántico. La computación cuántica es una opción para una o varias fases.
- Un paso cuántico representa un bloque de creación bien definido, como un cálculo científico que calcula una propiedad molecular. El código cuántico preciso puede incluso generarse y optimizarse dinámicamente para ajustarse a las entradas reales.
- El orquestador de flujo de trabajo posee varias ejecuciones cuánticas independientes y el procesamiento clásico entre ellas. El resultado de una ejecución determina los parámetros del siguiente programa cuántico o proporciona entradas que generan el siguiente programa. La estimación iterativa de fase encaja en esta estructura, al igual que los algoritmos variacionales, como el Solucionador Cuántico Variacional del Problema de Valores Propios (VQE) y el Algoritmo Cuántico Aproximado de Optimización (QAOA).
Consideraciones
Estas consideraciones implementan los pilares del Azure Well-Architected Framework, que es un conjunto de principios rectores que puede utilizar para mejorar la calidad de una carga de trabajo. Para obtener más información, consulte Well-Architected Framework.
Fiabilidad
La confiabilidad ayuda a garantizar que la aplicación pueda cumplir los compromisos que realice para sus clientes. Para obtener más información, consulte Lista de comprobación de revisión de diseño para confiabilidad.
Los trabajos Quantum se ejecutan en destinos remotos y compartidos, por lo que la ejecución puede producir errores transitorios, como el agotamiento del tiempo de espera de un destino. Independientemente del patrón de integración que elija, supervise la ejecución del trabajo para que pueda exponer el estado del trabajo al usuario. Cuando una tarea falle por un error transitorio, aplique el patrón de reintento. Envíe tareas mediante llamadas asíncronas y consulte periódicamente el resultado para no bloquear al cliente que realiza la llamada.
La disponibilidad de la funcionalidad de proceso cuántico depende en gran medida de las características de disponibilidad y capacidad del proveedor de computación cuántica. En función del destino de proceso, la aplicación cliente clásica puede experimentar retrasos prolongados o falta de disponibilidad del destino.
Para los servicios de Azure circundantes, se aplican las consideraciones de disponibilidad habituales. Si es necesario, considere la posibilidad de usar las opciones de replicación en Azure Storage redundancia.
Confiabilidad de la integración orquestada por flujos de trabajo
Para lograr una alta disponibilidad en la integración orquestada por flujos de trabajo, implemente API Management en zonas de disponibilidad o en varias regiones. La redundancia de zona requiere el nivel Premium o Premium v2 y la implementación de varias regiones requiere el nivel Premium.
Si implementa el orquestador con Durable Functions, planifique su recuperación ante desastres como una unidad en lugar de tratar la aplicación de funciones y su estado como servicios independientes. Durable Functions conserva todo el estado de orquestación en un centro de tareas en un back-end de almacenamiento, que es Azure Storage de forma predeterminada. Dado que el estado del entorno de ejecución y el cómputo están acoplados a través de ese task hub, aprovisionar la aplicación de funciones en una segunda región y replicar el almacenamiento por separado no constituye una conmutación por error segura. Según la topología, las orquestaciones pueden pausarse, perder transacciones recientes o leer un centro de tareas de otra región.
Para una conmutación por error segura, use una configuración activo-pasivo que conmuta por error a una región secundaria y que esté precedida por un servicio global de equilibrio de carga como Azure Front Door o Azure Traffic Manager. Confirme que los sondeos de estado del servicio pueden alcanzar la aplicación de funciones con las restricciones de red que haya configurado, ya que los mismos controles que limitan la aplicación al tráfico de API Management también pueden bloquear esos sondeos. Elija la topología que coincida con la tolerancia a la pérdida de datos y la latencia entre regiones. Para conocer las opciones coordinadas y sus desventajas, consulte Recuperación ante desastres y distribución geográfica en Durable Functions.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el uso indebido de sus valiosos datos y sistemas. Para obtener más información, vea Lista de comprobación para la revisión de diseño de seguridad.
Aplique las siguientes prácticas de protección a los servicios clásicos que rodean el trabajo cuántico, independientemente del patrón de integración que elija:
Autentíquese en Azure Quantum y los servicios circundantes mediante Microsoft Entra identidades y desactive la autenticación local donde el servicio lo admita. Use identidades administradas dondequiera que el entorno de hospedaje los admita. Para un cliente que no pueda usar una identidad administrada, autentíquese con otra identidad de Microsoft Entra, como una entidad de servicio o un inicio de sesión interactivo de usuario.
Conceda a cada componente que acceda a Almacenamiento el acceso al plano de datos que necesite mediante el control de acceso basado en roles de Azure (Azure RBAC) con Microsoft Entra ID, con un ámbito limitado a ese componente. No inserte claves de cuenta de almacenamiento en el código de la aplicación.
En general, aplique las recomendaciones de seguridad deWell-Architected Framework cuando corresponda.
Seguridad para la integración cuántica directa
A diferencia de la integración cuántica orquestada por flujo de trabajo, este patrón supone que un solo cliente accede al área de trabajo de Azure Quantum. El cliente suele ser una aplicación auxiliar clásica ligera centrada en el envío y la operación de trabajos, en lugar de en un estado más amplio del flujo de trabajo. Este escenario conduce a las siguientes configuraciones:
Dado que el cliente es conocido, puede darle una identidad fija. Cuando el cliente se ejecuta en un recurso hospedado Azure, asocie una identidad administrada a él. Cuando el cliente se ejecute fuera de Azure, use una entidad de servicio o un inicio de sesión interactivo de usuario.
Puede implementar la limitación de solicitudes y el almacenamiento en caché de resultados en el propio cliente.
Seguridad para la integración orquestada por flujo de trabajo
A diferencia de la integración cuántica directa, este patrón coloca un nivel de servicio clásico delante del trabajo cuántico. API Management es la puerta principal de ese nivel, por lo que las configuraciones de seguridad enfatizan la protección del punto de entrada y la ruta de acceso al área de trabajo cuántica.
Los clientes deben autenticarse en la API. Implemente esta autenticación mediante directivas de autenticación.
Puede implementar la autenticación de las funciones de Azure a través de identidades administradas asociadas a las funciones. Estas identidades se usan para autenticar las llamadas salientes al área de trabajo de Azure Quantum.
API Management puede aplicar la limitación de solicitudes para proteger el back-end cuántico y limitar el uso de recursos cuánticos. Para más información, consulte Limitación de solicitudes de API Management.
En función del patrón de solicitud, es posible que pueda implementar el almacenamiento en caché de los resultados de la computación cuántica mediante directivas de almacenamiento en caché de API Management.
Optimización de costos
La optimización de costos se centra en formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la optimización de costes.
El costo total de esta solución depende del destino de computación cuántica que seleccione para ejecutar el trabajo cuántico. Los componentes clásicos son sencillos de calcular. Para obtener una implementación representativa del patrón orquestado por flujo de trabajo, consulte esta estimación de costos de ejemplo, que cubre los componentes clásicos, como API Management, Azure Functions y Storage. El patrón de integración directa es más ligero, pero sus costos clásicos todavía incluyen Almacenamiento y cualquier hospedaje, red y supervisión que use la aplicación cliente.
Puede usar proveedores de computación cuántica de Azure Quantum mediante una oferta de Microsoft Marketplace. Los precios dependen del tipo de recurso (simulador o hardware), la SKU y el uso. Para obtener más información, acceda a la página de referencia del proveedor del escenario desde proveedores de computación cuántica en Azure Quantum.
Colaboradores
Microsoft mantiene este artículo. El siguiente colaborador escribió este artículo.
Autor principal:
- Zander Chocron | Ingeniero de software principal, Microsoft Quantum
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.
Pasos siguientes
- Para obtener información general sobre el ecosistema de computación cuántica de Microsoft, consulte el sitio web de Microsoft Quantum y complete la ruta de aprendizaje fundamentos de la computación cuántica.
- Para obtener más información sobre el servicio Azure Quantum, consulte ¿Qué es Azure Quantum?.
- Para obtener información general sobre la administración de trabajos de Azure Quantum, consulte Trabajar con trabajos de Azure Quantum.
- Para obtener información sobre cómo combinar instrucciones clásicas y cuánticas en un trabajo, consulte Introducción a la computación cuántica híbrida.