#VS2017 – 1er Hola QMundo con Microsoft #Quantum Development Kit (fix para que funcione) [Updated]

Buenas!

Hoy es un día especial, a partir de este momento el 98% de lo aprendido en la Universidad deja de ser útil. La informática deja de depender de unos y ceros y pasamos a trabajar con estados quánticos. En realidad, todavía falta mucho para que esto sea una realidad, pero ya podemos ir aprendiendo un poco de computación quántica utilizando Visual Studio 2017. El nombre del lenguaje además hace honor a los elementos que ya conocemos: Q# (Q Sharp).

Nota: ya lo sé, seguramente algún frikazo dirá que el IDE es muy pesado, que tarda mucho, etc. La respuesta es la de siempre: tu opinión me interesa mucho, ¡por favor cuéntame más!

Retomo, desde hoy ya podemos descargar Microsoft Quantum Development Kit y crear nuestro primer [Hello QWorld] para comprender los nuevos modelos de compuertas logicas, la forma de trabajo con Qubits, y mucho más del apasionante mundo de Quantum Computing.

En las referencias del Quantum DevKit tenemos un excelente paso a paso para construir una app de Consola que nos permita trabajar con 2 Qubits y además mostrar el entaglement entre ellos.

Importante: he decidido no traducir los términos de Quantum Computing para no inventarme palabras que no existen.

Pues bien, los 1ros pasos son muy alentadores. Comenzamos instalando un paquete para tener el DevKit en Visual Studio 2017

I1

Luego ya podremos crear aplicaciones Q#, además de libraries y test Projects.

I2

Y hasta aquí duro la alegría con el tutorial. Llega el momento de las ostias, al momento de intentar compilar tenemos un error de los bonitos:

I4

This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is ..\packages\Microsoft.Quantum.Development.Kit.0.1.1712.901-preview\build\Microsoft.Quantum.Development.Kit.props

[Update: Microsoft Quantum ha publicado los paquetes en Nuget.org, la primera Build descargara los elementos necesarios sin el error. https://www.nuget.org/packages?q=Microsoft.Quantum]

Lo primero que pensé era que los paquetes NuGet no eran los correctos. El template de proyectos de Q# agrega estos 2 paquetes

  • Microsoft.Quantum.Canon
  • Microsoft.Quantum.Development.Kit

I3

Es más, termine dedicando mucho tiempo pensando que el error era que estos paquetes no estaban disponibles en NuGet.

Luego me tome un segundo y lei el error, el problema esta en que el proyecto no puede procesar alguno de los targets de compilación de Q#. ¿Si te preguntas que extraño ser del infierno son los Q# Compilation Targets? solo hay que ver que los archivos de código de Q#, con extension [.qs], se procesan con un compilador especial.

I5

Vuelvo a retomar el post, que en cada paso pierdo el hilo. El problema esta en que el proyecto que se crea no puede encontrar ninguna de las librerias ni targets de Microsoft.Quantun. Y como todavía no están publicados en nuget.org, toca arreglar esto a mano.

Si editamos el archivo de proyecto de la App Q#, veremos que la ubicación en la que se ubican los elementos de Microsoft.Quantum.* es [..\packages\Microsoft.Quantum…]

I6

Si embargo la plantilla de proyecto agrega la carpeta [packages\Microsoft.Quantum…] dentro del folder del proyecto.

I7

Ya te imaginas la solución, copia / mueve la carpeta [packages] al folder superior del proyecto. ¡Ahora ya puedes compilar tu proyecto y seguir adelante con el tutorial!

I8

En próximos posts hablare un poco sobre las capacidades del Microsoft Quantum Development Kit. Aunque lo primero era tener la capacidad de terminar el Hello Q.

Happy QCoding!

Saludos @ Burlington

El Bruno

References

Advertisement

2 comments

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: