El Blog de QPath


Q_PySDK_B

Desarrollar en QuantumPath® con Python: selección del entorno de desarrollo

Para poder explotar las ventajas de la computación cuántica se necesitan herramientas. Herramientas que doten a los especialistas de canales de comunicación con la tecnología, de alto nivel, que encapsulen los detalles más profundos del sistema y permitan centrarse en el problema a resolver. QuantumPath® es una plataforma que proporciona múltiples herramientas para hacer esto posible. Su motor de ejecución ofrece desde un sistema visual que asiste al especialista en el diseño de aplicativos cuánticos hasta su automatización más extrema mediante SDK de programación.  Y siempre con una premisa núcleo clara: ser agnóstico del fabricante[1]. Y se aplican tanto a la tecnología cuántica, como al lenguaje de programación que se quiera utilizar para ello.

qSOA®[2] es la tecnología interfaz que permite hablar con QuantumPath® empleando interfaces abiertos. Un set de llamadas que, apoyadas en tecnologías de adopción masiva como el API REST, hacen posible la creación de tantos SDK como múltiples lenguajes de programación con capacidad de acceso a API de comunicaciones.  

En este artículo, nos centraremos en el lenguaje Python. De las muchas ventajas que aporta este lenguaje de programación, nos quedaremos con su accesibilidad, su altísimo nivel y su gran versatilidad, dado que puede ejecutarse en gran cantidad de entornos bajo diferentes configuraciones adaptadas a las necesidades del usuario.

En QuantumPath® se ofrece el QPath® PySDK. Este SDK, en forma de paquete Python, hace posible el diálogo con el CORE de QuantumPath® empleando el lenguaje de programación Python. Haciendo posible tanto la ejecución de casos de uso prediseñados con la plataforma, como crear otros nuevos dinámicamente o por qué no, analizar su evolución en el tiempo.  Esto abre la posibilidad de crear todo tipo de aplicaciones cliente que consumen servicios cuánticos (Desde consola hasta aplicaciones web).

Como parte de la ventaja del agnosticismo de QuantumPath®, para trabajar con cualquier proveedor cuántico soportado, solamente necesitaremos el paquete de Python del QPath® PySDK. Nada más. No será necesario disponer de Qiskit, Leap o cualquier otro proveedor cuántico disponible en el mismo equipo. Solamente el SDK de QPath®. Lo que reduce la complejidad de la preparación del entorno de desarrollo y acaba con los potenciales conflictos de mantener todo ese ecosistema de proveedores en un mismo lugar.

Aunque en el mercado existen múltiples alternativas para trabajar con Python de forma profesional, en el presente artículo nos centraremos en dos entornos diferentes con los que poder trabajar con QuantumPath® a nivel de desarrollo y gestión del ciclo de vida de software clásico mediante Python. Por su libre disponibilidad y uso masivo. Para el caso que nos concierne, el entorno de desarrollo es un mero intermediario entre el código escrito por el desarrollador y las funciones que ofrece QuantumPath® a través de qSOA®. Dicho esto, se van a mostrar las configuraciones de dos entornos distintos, de los tantos que hay para trabajar, desde 0 con QuantumPath® y su PySDK. Estos son Conda y Visual Studio Code. Si bien se da por hecho que ya se cuenta una versión de Python en el sistema, los mismos entornos de desarrollo ofrecen funcionalidades para obtener lo necesario una vez instalado. En caso contrario, Python se puede descargar desde su web oficial y siempre recomendaremos la versión más avanzada.

Configuración del primer entorno: Conda

 

Conda es una herramienta muy útil y versátil para la gestión de entornos y paquetes Python. Permite crear y gestionar entornos virtuales de manera independiente a la instalación global de Python. A continuación, se describen los 5 pasos necesarios para crear y configurar desde cero un entorno Conda, y comenzar a utilizar el Python SDK de QuantumPath®.

 

Paso 1: Descargar e instalar Anaconda

Para crear un entorno de Conda es necesario instalar una distribución de Python que la incluya. En este caso vamos a utilizar una de las más populares: Anaconda.

Los pasos a seguir son los siguientes:

1.     Descargar Anaconda desde su página oficial para el sistema operativo que estemos utilizando: Windows, macOS o Linux.

Ejecutar el instalador descargado y seguir sus instrucciones.

 

Imagen 1

Figura 1. Instalación de Anaconda

 

Paso 2: Crear y activar un entorno Conda (opcional)

En el caso de que se quiera trabajar con un entorno nuevo de Python para asegurarse de que no haya incompatibilidades entre paquetes, se puede crear un nuevo entorno Conda. Esto es completamente opcional, si no se hace se trabajará sobre el entorno predefinido de Python.

Los pasos para crear un entorno Conda y activarlo son:

1.     Abrir la aplicación Anaconda Prompt que se instaló automáticamente en el anterior paso junto con el entorno Anaconda.

2.     Crear un nuevo entorno escribiendo: conda create –name nombre_entorno python=x.x

Sustituyendo “nombre_entorno” por el nombre que se le quiera dar a nuestro entorno, y “x.x” por la versión de Python que se quiera utilizar. En este caso, quedaría de la siguiente forma:

Imagen 2

Figura 2. Creación de entorno Conda

 

1.    Tras prepararse el despliegue del entorno, activar el entorno creado utilizando: conda activate nombre_entorno

Siguiendo el ejemplo quedaría:

Imagen 3

Figura 3. Activación de entorno Conda

 

1.     Se puede visualizar el entorno activado usando: conda env list y el entorno activado está marcado con un asterisco (*) tras su nombre. Así como existen múltiples comandos para gestionarlos. Por supuesto, estas mismas operaciones, se pueden realizar con el entorno visual de Conda.

 

Paso 3: Instalar QuantumPath® Python SDK

Una vez ya creado y activado el entorno Conda sobre el que se trabajará, se pueden instalar los paquetes que se quieran utilizar mediante el repositorio de paquetes PyPI.

Para instalar el SDK de Python de QuantumPath®, se deberá escribir: pip install QuantumPathQSOAPySDK

Imagen 4

Figura 4. Instalación QuantumPath qSOA PySDK

 

Solo con la instalación de este paquete ya se podrá hacer uso de todas las características de QuantumPath® sin la necesidad de instalar el resto de SDKs de los diferentes fabricantes. Todo esto lo gestiona QuantumPath® de manera interna.

 

Paso 4: Crear Jupyter Notebook

Una vez ya configurado todo el entorno Conda, e instalado el SDK de QuantumPath®, para abrir la interfaz de Jupyter hay que dirigirse a la aplicación Anaconda Navigator. Al disponerse de varios entornos de Python, puede ser necesario instalar los paquetes de jupyter. Para no exceder el procedimiento, todo esto es posible realizarlo tanto desde la consola, como desde el UI de Anaconda.

Figura 5. Anaconda Navigator

 

Una vez seleccionado el entorno y pulsado sobre la aplicación de Jupyter Notebook, Se abrirá el navegador web que utilicemos. Aprovechamos para crear un directorio personalizado y nos dirigimos a la ruta donde queramos crear nuestro Jupyter Notebook para trabajar, y clicaremos sobre “New” y “Python 3” para crear uno nuevo.

Imagen 6

Figura 6. Creación de Jupyter Notebook

 

Paso 5: Trabajar con QuantumPath® PySDK

Tras realizar esos pasos, se desplegará la interfaz web para trabajar con los Jupyter Notebooks creados. Como ya es conocido, sigue un sistema de celdas donde ejecutar líneas de código individualmente.

Para trabajar con el SDK de QuantumPath®, simplemente se debe de importar la librería en cuestión, y ya se puede hacer uso de sus funcionalidades añadiendo celdas con el botón “+”, y pulsando sobre una de ellas y dándole al botón “Run” para ejecutar su código.

Imagen 7

Figura 7. Uso del SDK en el Jupyter Notebook

 

Una vez tenemos el entorno ya preparado, recomendamos descargar desde el portal de qSOA®, los notebooks de inicio rápido de QuantumPath® para empezar a trabajar sobre ellos así como experimentar con los tutoriales para ser productivo lo antes posible.

Figura 8. Portal de qSOA®

 

Configuración del segundo entorno: Visual Studio Code 

Visual Studio Code es un entorno de desarrollo ampliamente utilizado que ofrece una excelente integración con Python y su uso mediante Jupyter Notebooks. A continuación, se describen los pasos necesarios para comenzar a trabajar desde cero con Visual Studio Code y utilizar el Python SDK de QuantumPath® para el desarrollo de soluciones cuánticas.

 

Paso 1: Descargar e instalar Visual Studio Code

El primer paso es contar con una versión del IDE (Entorno de Desarrollo Integrado) Visual Studio Code. Esto nos permitirá desarrollar nuestro código Python y hacer unos de las funciones de QuantumPath® mediante Jupyter Notebooks. 

Los pasos a seguir son los siguientes:

1.     Descargar Visual Studio Code desde su página oficial para el sistema operativo que estemos utilizando: Windows, macOS o
Linux.

2.     Ejecutar el instalador descargado y seguir sus instrucciones.

Imagen 9

Figura 9. Instalación de Visual Studio Code

 

Paso 2: Instalar extensiones de Python y Jupyter Notebook

Para trabajar con Python y Jupyter Notebooks en Visual Studio Code, es necesario instalar una serie de extensiones.

Para ello los pasos a seguir son:

1.     Dirigirse a la sección de extensiones de Visual Studio Code.

Imagen 10

Figura 10. Marketplace de extensiones 


1.     Escribir en el buscador de extensiones “Python” e instalar el primer resultado verificado por Microsoft.

Imagen 11

Figura 11. Instalación de la extensión Python

 

1.     Escribir en el buscador de extensiones “Jupyter” e instalar el primer resultado verificado por Microsoft.

Imagen 12

Figura 12. Instalación de la extensión Jupyter

 

Paso 3: Crear Jupyter Notebook

Una vez configurado Visual Studio Code, el entorno de Python, e instalado el SDK de QuantumPath®, se procede a crear un Jupyter Notebook mediante los siguientes pasos:

1.     Pulsar en la pestaña “Archivo”, “Open Folder”, y seleccionar la carpeta donde vamos a trabajar.

Imagen 13

Figura 13. Selección de carpeta de trabajo 

 

1.     Pulsar sobre el icono marcado para crear un nuevo archivo, al que se le debe poner el nombre que se quiera para el Jupyter Notebook, y la terminación .ipynb

Imagen 14

Figura 14. Creación de Jupyter Notebook

 

Paso 4: Crear y activar un entorno virtual (opcional)

En el caso de que se quiera trabajar con un entorno nuevo de Python para asegurarse de que no haya incompatibilidades entre paquetes, se puede crear un nuevo entorno virtual. Esto es completamente opcional, si no se hace se trabajará sobre el entorno predefinido de Python.

Los pasos para crear un entorno virtual y activarlo son:

1.     Pulsar sobre “Select Kernel” para seleccionar el entorno sobre el que se trabajará.

Imagen 15

Figura 15. Seleccionar Kernel

 

1.     Pulsar sobre “Python Environments”.

Imagen 16

Figura 15. Seleccionar Kernel

 

1.     Pulsar sobre “Python Environments”.

Imagen 17

Figura 16. Entornos de Python

 

1.     Se muestran los entornos disponibles entre el que podemos escoger el predefinido de Python o crear uno nuevo pulsando sobre “Create Python Environment”.

Imagen 17

Figura 17. Seleccionar otro Kernel

 

1.     Pulsar sobre “Venv”.

Imagen 18

Figura 18. Crear entorno virtual 

 

1.     Pulsar sobre la versión de Python que se quiera utilizar.

Imagen 19

Figura 19. Selección de versión de Python 

 

1.     Se creará el entorno virtual en la carpeta y aparecerá seleccionado como Kernel.

Imagen 20

Figura 20. Entorno virtual creado y activado

 

Paso 5: Instalar QuantumPath® Python SDK

Una vez ya creado y activado el entorno virtual sobre el que se trabajará, se pueden instalar los paquetes que se quieran utilizar mediante el repositorio de paquetes PyPI.

Para instalar el SDK de Python de QuantumPath®, se deberá escribir en la primera celda: pip install QuantumPathQSOAPySDK y ejecutarlo pulsando sobre el botón a su izquierda. Finalmente, se debe pulsar sobre “Restart” para reiniciar el Kernel y actualizar así sus librerías.

Imagen 21

Figura 21. Instalación QuantumPath qSOA PySDK

 

Solo con la instalación de este paquete ya se podrá hacer uso de todas las características de QuantumPath® sin la necesidad de instalar el resto de SDKs de los diferentes fabricantes. Todo esto lo gestiona QuantumPath® de manera interna.

 

Paso 6: Trabajar con QuantumPath® PySDK

Tras realizar esos pasos, ya solo queda trabajar con el Jupyter Notebook creado. Como ya es conocido, sigue un sistema de celdas donde ejecutar líneas de código individualmente.

Para trabajar con el SDK de QuantumPath®, simplemente se debe de importar la librería en cuestión, y ya se puede hacer uso de sus funcionalidades añadiendo celdas con el botón “+ Code”, y pulsando sobre una de ellas y dándole al botón a la izquierda de cada celda para ejecutar su código.

Imagen 22

Figura 22. Uso del SDK en Visual Studio Code

 

Comenzar a producir…

En este artículo se ha podido ver la configuración desde cero de dos entornos donde poder utilizar el SDK de Python de QuantumPath®. Gracias a la enorme versatilidad que da Python, se puede hacer uso de las funciones de QuantumPath® siempre que se cuente con acceso al lenguaje y la capacidad de descargar el SDK. Estos solo han sido dos ejemplos de lugares donde crear algoritmos clásico-cuánticos de tantos que hay.

Es importante remarcar que QuantumPath® no trabaja solamente con Python. Lenguajes como C# o Java -por poner algunos ejemplos- son lenguajes muy extendidos en la industria y hacen posible el desarrollo de soluciones profesionales con sus herramientas de fabricante correspondientes.  Y QuantumPath® los soporta con SDK prediseñados. Pero si el lector utiliza cualquier otro lenguaje del que no se proporciona un SDK preconfigurado, siempre puede desarrollar el suyo propio mediante la documentación del API REST parte de la plataforma. Sin limitación.

En el portal de QuantumPath® de qSOA, se ofrecen tanto jupyter notebooks de inicio rápido como hasta 11 tutoriales completos de cómo trabajar con el PySDK. Animamos al lector a acceder al portal y navegar por sus contenidos.

https://qsoa.quantumpath.app:8443/

Asimismo, si el lector quiere probar la tecnología, puede hacerlo gratuitamente con la licencia de Free Developer, pudiendo ejecutar los experimentos contra los simuladores proporcionados por el backend, de múltiples proveedores.

https://core.quantumpath.app/OnlineRegistry/UserOnlineRegistry