#Quantum – Information about Simulators on Microsoft Quantum Development Kit (Do you have 16 TB RAM?)

36626328074_f9372acb8f_b

Hi!

Today is Microsoft Tech Summit Day in Toronto, so I will write a quick post about simulators on Microsoft Quantum Development Kit.

I’m sure you already downloaded and installed he tools to work with Q#. So you see that when we created a Q# project, we can see that we have a Q# file and another file in a standard programming language, for example, C#. The approach Microsoft has taken in this case is based on a coprocessor scheme. It is very similar to how a GPU or a FPGA works. Once a GPU is programmed, we can call that code from external environments, like a CPU.

We still don’t have access to Quantum Computers (sad emoticon here), however Microsoft Quantum Development Kit allows us to have a 1st approach, by using simulators to work with Q#. There are two classes in [Microsoft.Quantum. Simulation.Simulators] which allow us to run simulators.

In this scenarios we can work with a finite number of Qubits. The main restriction we have on the amount of Qubits is given by the Hardware characteristics of our development machine.

Clipboard02

Let’s do some numbers. To simulate 30 Qubits, we need 16 GB of RAM. However, if we want to add a new single Qubit, I mean work with 31 Qubits, we have to duplicate the RAM: 32 GB of RAM. If we move to the order of 40 Qubits, we have to think about 16 of RAM. That’s why, One of the simulator’s options is to use Azure’s ability for simulations that require 40 Qubits or more.

Finally, I have to comment that, Q# allows us to have a high level of abstraction to work with Quantum Computing models. And, while at this time we use simulators for the execution of the Q# algorithms, in the near future we will be able to execute these algorithms directly in a Quantum Computer.

Happy QCoding!

Greetings @ Microsoft Tech Summit

El Bruno

References

Images

Advertisements

#Quantum – Capacidades e información de los emuladores en Microsoft Quantum Development Kit (tienes 16TB de RAM?)

36626328074_f9372acb8f_b

Buenas!

Hoy es día de Microsoft Tech Summit en Toronto, así que aprovechare para dejar un par de datos sobre los emuladores de Microsoft Quantum Development Kit.

Cuando creamos un proyecto de Q#, podemos ver que en el mismo tenemos un archivo en el Q # y el otro en un lenguaje de programación estándar, por ejemplo, C#. El enfoque que ha tomado Microsoft en este caso está basado en un esquema de coprocesador. Es muy parecido a cómo se programa una GPU o FPGA. Una vez programadas, podemos llamar ese código desde entornos externos, como una CPU.

Como todavía no tenemos acceso a Quantum Computers físicos, Microsoft Quantum Development Kit nos permite utilizar emuladores para trabajar con Q#. Hay dos clases en [Microsoft.Quantum.Simulation.Simulators] que nos permiten ejecutar emuladores, donde podemos trabajar con un numero finito de Qubits. La principal restricción que tenemos sobre la cantidad de Qubits esta dada por las características de Hardware del equipo de desarrollo.

Clipboard02

Así para simular 30 Qubits, necesitamos 16 GB de RAM. Sin embargo, si queremos agregar un nuevo Qubit, es decir trabajar con 31 Qubits tenemos que duplicar la RAM: 32 GB de RAM. Si hablamos de 40 Qubits, tenemos que pensar en 16TB de RAM. Es por esto que, una de las opciones del simulador es utilizar la capacidad de Azure para las simulaciones que requieran 40 Qubits o más.

Por último, tengo que comentar que, Q# nos permite tener un nivel abstracción alto para trabajar con modelos de Quantum Computing. Y, si bien, en este momento utilizamos emuladores para la ejecución de los algoritmos que creamos en Q#, en un futuro cercano podremos ejecutar estos algoritmos directamente en una Quantum Computer.

Happy QCoding!

Saludos @ Microsoft Tech Summit

El Bruno

References

Images

#VS2017 – Hello QWorld using Microsoft #Quantum Development Kit (fix to build the project) [Updated]

Hi!

Today is a special day, from this moment on, 98% of what I learned at the university is no longer useful for me. I will no longer use binary states in my computing devices, now is time to work with Quantum States.

In fact, there is still a long way to make this a reality. However, now we can start to learn some of the basis of Quantum Computing using Visual Studio 2017. The name of the language also gives honor to the elements that we already know: Q# (Q Sharp).

Note: I know, surely some freak will say that the IDE is very heavy, slow, etc. The answer is always: your opinion is important I am very interested, please tell me more!

So, now we can download Microsoft Quantum Development Kit and create our first [Hello QWorld] to understand the new logic gates model, how to work with Qubits, and much more of the exciting world of quantum Computing.

The Microsoft Quantum DevKit we have an excellent step by step to build a Console App which allows us to work with 2 Qubits and also show the entaglement between them. Well, the 1st steps are very encouraging.

We start installing a package to have the Q# DevKit in Visual Studio 2017

I1

Then we will be able to create Q # applications, as well as libraries and test projects.

I2

And that’s it, this is the end of the fun, it’s fixing configuration error time! We have a very good looking error when trying to build the project:

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 have already published the packages in Nuget.org, so the build will work fine the 1st time. https://www.nuget.org/packages?q=Microsoft.Quantum]

I first thought that this was related to the NuGet packages, maybe these two were not the right ones. The project template of Q # adds these 2 packages

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

I3

I ended up spending a lot of time thinking that the error was that these packages were not available in NuGet. (When I write this both packages are still not available)

So, I took some smart time and I read the error. The problem is that the project can not process any of the Q# compilation targets. If you wonder what imaginary beat are related to the Q# compilation targets? Let me tell you that the Q# source code files uses an .qs extension. and are processed with a special compiler. (A Quantum compiler!)

I5

Let me get back to my story, in every step I lose the thread. The problem is that the project that is created can not find any of the libraries or targets of Microsoft.Quantun. And since they are not yet published in nuget.org, it’s time to fix this in the old fashion way.

If we edit the project file of the Q# App, we will see that the location where the Microsoft.Quantum.* elements are located. is  [..\packages\Microsoft.Quantum…]

I6

However, the project template adds the [packages\Microsoft.Quantum…] folder inside the project folder.

I7

You can imagine the solution, copy/move the folder [packages] to the top folder of the project. Now you can compile your project and go ahead with the tutorial!

I8

In next posts I will write a little bit about the capabilities of the Microsoft Quantum Development Kit. Although the first thing was to have the ability to finish the Hello Q World tutorial.

Happy QCoding!

Greetings @ Burlington

El Bruno

References

#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