El Blog de QPath


Ventajas de QuantumPath® para el desarrollo de software cuántico

Autores

Guido Peterssen
aQuantum COO

José Luis Hevia
aQuantum CTO

Mario Piattini
aQuantum CRO

Al igual que ocurre en la informática clásica, en la computación cuántica también existe una diferencia conceptual y práctica entre programar y desarrollar software.

El alcance de la programación de software está contenido en las tareas necesarias para programar los circuitos y formulaciones cuánticas con algún lenguaje de programación (OpenQASM, Q#, QMASM, Python, etc.) que serán ejecutados en una computadora cuántica y una aplicación para realizar la codificación.

Por su parte el alcance del desarrollo de software cuántico está definido por un amplio conjunto de tareas que deben realizarse para crear una aplicación o solución software desde su concepción hasta el despliegue.

Si el desarrollo del software se realiza en un entorno profesional y, por lo tanto, para crear soluciones de alta calidad para la industria, las tareas y fases del ciclo de vida a gestionar y controlar se amplía para lograr un mayor rigor en la trazabilidad e integridad de los procesos de visión, análisis, diseño, programación o construcción, prueba e implementación, despliegue, integración con los diferentes sistemas informáticos con los que tendrá que interactuar, así como su reutilización. Y todo ello, normalmente, “envuelto” por un conjunto de capas de buenas prácticas, métodos, metodologías, etc., a aplicar durante todas las fases del desarrollo.

Para programar software cuántico es imprescindible un lenguaje de programación (el más usado actualmente es Python), una aplicación para crear y distribuir el código fuente (la más usada actualmente es Jupyter Notebook) y un compilador o intérprete para que el programa pueda ser ejecutado en las computadoras cuánticas. Con estas herramientas se puede programar software cuántico de alta calidad pero, si el fin de esa programación es desplegar un programa para su utilización en el mundo real, no será suficiente con esto. Necesariamente se requerirán otras tareas y herramientas software para lograr que el mismo sea fiable, altamente escalable, disponible y seguro para la industria. Mientras más crítico sea el uso previsto, mayor será la necesidad de que el programa sea parte de un riguroso proceso de desarrollo de software.

Para desarrollar software cuántico profesional listo para la industria, que brinde garantías de calidad, seguridad, extensibilidad, alto rendimiento y escalabilidad, además del lenguaje de programación y la aplicación para la gestión del código fuente es necesario un conjunto de herramientas y soluciones para trabajar en cada una de las fases del desarrollo. Si las herramientas y soluciones más relevantes para lograrlo no están integradas el proceso de desarrollo se hace más complejo, pero si la mayor parte están, o son integrables con facilidad a través de plugins u otros recursos, el proceso de desarrollo es más fluido y aumenta tanto la productividad como la calidad de las soluciones.

QuantumPath® es la primera plataforma para la gestión del ciclo de vida y desarrollo de software híbrido cuántico/clásico profesional. Con la misma se puede trabajar desde la creación del algoritmo cuántico a través de su desarrollo, prueba e implementación, hasta su despliegue y reutilización. Además, QPath® proporciona un ecosistema de herramientas para desarrollar software cuántico que soporta la ejecución de las unidades de proceso cuántico de forma transparente independientemente de la plataforma donde se ejecutan y en los diferentes enfoques cuánticos [1]. 

QPAgnosticoArt09_2022

Figura 1.Computadoras y simuladores cuánticos homologados en QPath® (Septiembre 2022)

 

QuantumPath® está concebido, ante todo, para facilitar el desarrollo de software cuántico listo para la industria, por lo que ofrece un conjunto de ventajas para el desarrollo profesional de software cuántico [2], que actualmente podemos agrupar de esta forma:

·       Programación de algoritmos cuánticos a través de interfaces gráficas de usuario (GUI)

·       Integración dinámica de los sistemas software híbridos cuántico/clásicos

·       Herramientas para la aplicación de las buenas prácticas de la ingeniería del software

·      Tecnologías especialmente diseñadas para la programación y el desarrollo de software cuántico profesional con QPath®.

Desarrollar software cuántico con la GUI de QPath®, en comparación con la programación de código manual, brinda la posibilidad de poder diseñar los algoritmos cuánticos de puertas y las formulaciones matemáticas para annealing [3] a través de interfaces visuales, sin necesidad de programar manualmente y que, al terminar de realizar el trabajo, al pulsar un par de botones (Compilar y Transpilar), estén listos para ser ejecutados en las computadoras o simuladores cuánticos homologados en QPath®.

Esta ventajosa forma de trabajar es posible gracias a Q Assets Compositor®, un conjunto de herramientas de QPath® para el diseño visual de algoritmos cuánticos en la arquitectura del mundo real, que hacen posible la explotación de algoritmos cuánticos y aplicaciones en la más amplia gama de tecnologías de los proveedores cuánticos. Trabajar con Q Assets Compositor® permite a los programadores centrarse en la implementación de los casos de uso, lo que contribuye a aumentar la productividad, reduciendo notoriamente los costes y tiempo de entrega al cliente respecto a la programación manual de los algoritmos cuánticos.

QAssetsCompositorArt_09_2022

Figure 2. Developing quantum software with the QPath® GUI

 

Making quantum software industry-ready today depends, among other relevant factors, on the capability and quality and “in the box” functionalities of dynamically integrating quantum software systems with classical ones.

QuantumPath® provides the advantage by simplifying these complex integration tasks with qSOA®, a technology that is positioned at the service layer of a computer system, which makes it possible to exploit the quantum services platform using an API and tools that perfectly respond to a distributed model of software components: standards, security, encryption, scalability, etc. 

qSOA® is an architecture conceived, designed, and implemented to be extremely concrete, useful, turning something as complex as the classical/quantum integration process into something extremely concrete, parameterizable and controlled. We have achieved this based on well-tested architectures, designed to be secure, under high performance and scalability principles that provide tools to development teams that allow them to prepare now to lead the way and be efficient in the evolution of the integration of classical and quantum software systems [4]. Thanks to qSOA® web services, you can both execute your flows and dynamically manage the lifecycle of your assets.

qSOAArt_09_2022

Figura 3. Integración clásico/cuántica con qSOA®

 

Para facilitar la aplicación de las buenas prácticas de la Ingeniería del Software Cuántico [5], incluso sin ser un especialista en esta disciplina, en QuantumPath® diseñamos, desarrollamos e implementamos una variedad de herramientas y servicios que lo hacen posible, entre las que destacamos las siguientes:

·       Amplios registros de telemetría generada por el sistema

·       Apps para gestionar las pruebas de software cuántico

·       Soporte de enfoques basados en puertas y annealing cuántico

·       Interfaces gráficas muy fáciles de usar

·       ALM para gestionar el ciclo de vida del desarrollo de software cuántico

·       Integración del software cuántico y la informática clásica

·      Nuestra estrategia para asegurar una fuerza de trabajo efectiva para el futuro de la ingeniería de software cuántico

·       Inclusión de otros principios del Talavera Manifesto

El resultado de la integración de todo lo antes detallado (y más), es un armonioso proceso de desarrollo de software que fluye en todas las etapas requeridas para el desarrollo, incluida su extensión a la integración de los sistemas clásicos de software con la computación cuántica.

QPSoftTechArt_09_2022_2

Figura 4. Ciclo de vida ampliado del desarrollo con QPath®

 

Las ventajas antes detalladas no serían posible si no fuéramos creadores y desarrolladores de las tecnologías de software híbrido cuántico/clásico que consideramos útiles para acelerar la adopción de la computación cuántica facilitando el desarrollo de software cuántico profesional listo para la industria.

Como resultado de la investigación y desarrollo especializados que hacemos en la Ingeniería y la Programación de Software Cuántico, hemos creado soluciones técnicas gracias a lo cual, entre otras, QuantumPath®:

·       Soporta un stack completo de ALM que acelera el diseño, construcción y despliegue de aplicaciones cuánticas

·       Es 100% agnóstica de las tecnologías cuánticas con la que trabaja

·       Un backend preparado para ejecutar los casos de uso cuánticos de forma agnóstica y obtener sus resultados para analizarlos o explotarlos

·       Simplifica la creación de arquitecturas híbridas clásico-cuánticas con qSOA®, un API REST claro y organizado, que le permite acceder a sus activos dinámicamente y ejecutarlos desde cualquier tecnología clásica

·       Tiene capacidad para consumir y extender virtualmente cualquier funcionalidad y soporta como plugins soluciones de terceros

·       Facilita el desarrollo de software a través de interfaces visuales

·       Soporta diferentes tipos de hardware cuántico: basado en puertas, annealing cuántico, simuladores, etc.

·       Permite el diseño visual de los algoritmos cuánticos: circuitos cuánticos y definiciones de modelos de Annealing

·       Sin límite en el número de puertas o variables a utilizar. Estos límites vendrán impuestos por el estado del arte de las QPU, no por la plataforma

·       Establezca los valores iniciales de las puertas o cree parámetros con los datos de carga de forma implícita en sus diseños y conviértalos en parámetros en sus activos, de manera que pueda establecer valores de entrada en tiempo de ejecución (hiper-parámetros)

·       Soporta diferentes modos de pipeline que permiten acceder a diferentes niveles del diseño de activos de QPath®

·       Su aprendizaje automático le sugiere el mejor target cuántico de los disponibles en su solución a la hora de ejecutar sus flujos.

·       Los conectores de proveedores de hardware cuántico, están siempre actualizados de acuerdo al roadmap del propio fabricante. Las evoluciones del proveedor, por lo tanto, no afectan al diseño de los activos de QuantumPath®

·       Proporciona simuladores locales cuánticos locales a la plataforma, proporcionando un entorno de simulación sin coste antes de pasar al siguiente nivel de prueba.

·       Se puede desplegar en múltiples contextos: nube (cloud), on-premise o híbrido.

Esta amplia suite de soluciones tecnológicas las desarrollamos para resolver las complejidades que afrontamos cotidianamente en nuestros proyectos de desarrollo de software cuántico, por lo que la mismas cuentan con un amplio proceso de uso práctico en una amplia gama de retos funcionales y técnicos. Estas soluciones ampliamente depuradas las ponemos a disposición de los usuarios a través de QPath® para que, como nosotros, puedan ser más productivos al reducir el tiempo medio de desarrollo e integración de los algoritmos cuánticos en aproximadamente un 70 % para los dispositivos basados en puertas cuánticas y un 85 % para los dispositivos de annealing.

QPSoftTechWorkforceArt_09_2022_En

Figura 5. Tecnologías integradas para acelerar el desarrollo de software en QPath®

 

Las grandes ventajas del desarrollo de software cuántico con QPath® antes enunciadas hacen posible que los equipos de desarrollo dispongan de un ecosistema de herramientas que maximiza la productividad desde el minuto cero, teniendo sus usuarios a disposición, entre otras, las siguientes capacidades de la plataforma [6] para realizar sus proyectos:

QPCapacidadesArt_09_2022

Figura 6. Capacidades de QPath®

 

Quienes trabajamos en el ámbito de las tecnologías de la computación somos conscientes de la elevada complejidad que enfrentamos en el día a día para seleccionar y contratar fuerza de trabajo cuántica. Esta situación, desde el inicio de nuestra actividad, nos estimuló (y seamos sinceros, también nos compulsó) a ser creativos para facilitar a los desarrolladores cuánticos de nuestro equipo no solo el aprendizaje y creación de competencias, algo que no se limita a entrenamientos formales (algo que hacemos con programas propios), sino también en proporcionarles herramientas que aceleren profesionalmente, de forma efectiva, su capacidad para participar activamente en el desarrollo de software.

Conocedores del estado del arte del desarrollo de software cuántico en la actualidad, no dudamos de que uno de los resultados más importantes de nuestra actividad para lograr ese objetivo es el diseño, desarrollo y utilización en nuestro día a día de QuantumPath®. Sabemos a consciencia cuánto nos aporta esta plataforma, por eso, ponerla a disposición de los usuarios es nuestra forma de contribuir a la aceleración de la adopción del desarrollo profesional de software híbrido cuántico/clásico listo para industria, y así aportar de forma práctica a democratizar el acceso a la computación cuántica.

[1] Peterssen, G., Hevia, J.L. Introducción al desarrollo de software cuántico con QPath. El Blog de QPath. 13/01/2021. https://www.quantumpath.es/es/2021/01/13/introduccion-al-desarrollo-de-software-cuantico-con-qpath/

[2] https://www.quantumpath.es/es/ventajas-de-qpath/

[3] Murina, E., Hevia, J.L., Peterssen, G., Piattini, M. Q Assets Compositor™: an easy path of compose quantum annealing solutions. https://www.aquantum.es/wp-content/uploads/2021/11/EQTC-2021-Q-Assets-Compositor.pdf

[4] Hevia, J.L., Piattini, M., Peterssen, G. qSOA®: tecnología para la integración dinámica de los sistemas software híbridos cuántico-clásicos.
El Blog de QPath. 04/06/2022.
https://www.quantumpath.es/es/2022/06/04/qsoa-tecnologia-para-la-integracion-dinamica-de-los-sistemas-software-hibridos-cuantico-clasicos/

[5] Dargan, J. Talking About QuantumPath® & The SEI Agenda for Software Engineering Research & Development. The Quantum Insider. November 18, 2021.

[6] https://www.quantumpath.es/es/capacidades-de-qpath/