#QuantumDevKit – #Qubit operations in Q#

Clipboard02

Hi!

I’m still at the Microsoft Tech Summit Toronto, so it’s time to share another interesting learned lesson from the Microsoft Quantum Development Kit.

In today’s post, I will talk about the possible operations that we can perform on a Qubit. Well, the post is short:

We can only perform test for identity on Qubits (equality).

That’s the only operation we can do with a Qubit in Q#. Not really, we can use and pass Qubits as parameters between operations (reference model), and if we want to modify the state of them we have to use Q# Qubits .

In example, if we want to measure the status of a Qubit, we can use the M() operation

let measure = M(qubit[0]);

If, we want to change the value of Zero to One, or vice versa in a Qubit, we can use the X() operation

X(qubit[0]);

If, we want to apply a Hadamard transformation to a Qubit, we need to use the H() operation, the syntax would be

H(qubit[0]);

Almost all operations can be found under the namespace [Microsoft Quantum. Primitive]. I strongly advise to spend some time reading and understanding how quantum mechanics works before you start working with this type of gates (Pauli Gates). Hey, but this is material for other post!

Happy QCoding!

Greetings @ Microsoft Tech Summit

El Bruno

References

Images

Advertisements

#QuantumDevKit – Tipos de operaciones posibles a realizar con #Qubit en Q#

Clipboard02

Buenas!

Sigo en el Microsoft Tech Summit, asi que es momento de soltar otra píldora sobre algo interesantes aprendido de Microsoft Quantum Development Kit. En el post de hoy, hablare sobre las posibles operaciones que podemos realizar sobre un Qubit.

Pues bien, el post es corto:

La única operación permitida que podemos realizar con Qubits es la comparación (equality).

Esa es la única operación que podemos realizar sobre un Qubit con Q#. En realidad, esto no es tan así, podemos pasar Qubits como parámetros entre operaciones (siempre punteros fijos al mismo objeto), y si queremos modificar el estado de los mismos tenemos que utilizar operaciones propias de Q#.

Por ejemplo si queremos medir el estado de un Qubit, podemos utilizar la operación M()

let measure = M(qubit[0]);

Si, queremos cambiar el valor de zero a uno o viceversa en un Qubit, podemos utilizar la operación X()

X(qubit[0]);

Si, en cambio, queremos aplicar una transformación Hadamard a un Qubit, la operación es H() y la sintaxis seria

H(qubit[0]);

Casi todas las operaciones se pueden encontrar en [Microsoft.Quantum.Primitive]. Personalmente aconsejo leer y comprender un poco sobre cómo funcionan los conceptos de mecánica cuántica antes de comenzar a trabajar con este tipo de compuertas (Pauli Gates)

Happy QCoding!

Saludos @ Microsoft Tech Summit

El Bruno

References

Images

#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

#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