Quantum Computing Platforms and Technologies – Q#

Quantum Computing Platforms and Technologies

Quantum computing is one new computing technology that has been in development for decades theoretically and practically has been in existence for last few decades. The theory was far developed even though the practicality of creating such a device is very narrow for many decades. As technology progresses, many cutting-edge techniques in lithography, semiconductor technology enable us to evolve the fundamental concepts of a practical quantum computer. During this evolution, we need to have a solid advancement in software-driven technologies to substantiate practical quantum architecture.

There are two main streams of quantum computing architecture based on the practicality of existing classical theories. The main problem with the prototypes of today is that those are limited by the timeframe for which a quantum bit exists for usage. As of today, we are only able to persist a physical quit for 1 microsecond of time. That is very short for any practical use. The results from such machine have a huge margin of errors which will not be of any practical use.

The two modes of quantum computing techniques are Gate Model and Quantum Annealing. The majority of research on quantum computing adopted the first method, the quantum gate model, because of the lower error rate compared to quantum annealing mode. In the Gate Model, the time evolution of quantum state using matrix multiplication is used. Q# is based on Gate Model. Quantum annealing is the technique in which the lowest energy state is found which solves a problem.

There are many quantum software approaches in the flow of software development for quantum computers. Many researchers develop their own code for simulation of a ibmqquantum bit (Qubit) and do research on them, but it will not give any practical purpose other than basic understanding. However many major technology companies are developing quantum computing languages and schemes to have an upper hand on related technologies. The major companies doing research in Quantum computing area are Microsoft, Google, IBM and other few startups with much higher expertise.

This article will be focusing on the software aspects of quantum computing. Mainly quantum specific programming languages are presented. There are many languages such as Microsoft Q#, Google
Quantum Computing Playground, IBM Q (Picture Courtesy: research.ibm.com) are in existence and some independent libraries developed for Python. This article focuses onmicrosoft_quantum Microsofts Q#. Q# is an extension of C# language from Microsoft. It is the main part of Microsoft Quantum Development Kit. This toolkit enables us to write practical quantum computing programs. This program acts as a bridge between the classical controlling machines and the actual quantum computer hardware. Q# is a simple language that allows developers to code algorithms and programs for a quantum computer in a very minimalistic way. It can be used to describe the execution of instructions in a quantum machine.
Q# language is made-up of operations and functions. The backbone of the language is written in F# and C# is used for syntax. It uses some ideas from Python also. It is a csharpscalable, multi-paradigm domain-specific programming language for quantum computing. Naturally, quantum computers are treated as a coprocessor. It will be used quantum-computer-3679893_1920similarly to that of GPUs and FPGAs. The quantum processors are controlled by a classical processor, usually termed as host and whenever appropriate, the host will make use of the coprocessor and invoke the subroutine in the coprocessor. Q# will help us to create
the subroutine which can then be executed on a quantum coprocessor. The language help us to create programs for virtually any number of qubits. An actual physical quantum computer is a far away from existence, but we can create and perfect algorithms which can be run on a physical machine when it come to existence. Q# helps developers to create, execute and debug quantum programs.

A quantum program, in general, is a set of classical instructions and function upon calling will create a quantum circuit and its effect. Which means, using a classical computer, Q# express the way and interpret how a qubit works without physically microsoft_mechanicscreating it. Q# does not create any quantum functions or state instead it enables through different subroutine the properties of a quantum operation. For example, consider the quantum state |+⟩=(|0⟩+|1⟩)/√2, to program this state in Q#, we first initialize a qubits in the |0⟩ state, and then transform it to perform |+⟩=H|0⟩, where H is the Hadamard transform:

 

using (qubit = Qubit()) {
// At this point, qubit is in the state |0〉.
H(qubit);
// We've now applied H, such that our qubit is in H|0〉 = |+〉, as we wanted.
}

(Code credit: Microsoft Quantum Development Kit Documentation)

In this particular case we initialize the qubit in |0⟩ and invoke the in built function for Hadamard transform to perform operation. Which means the entire mathematical backbone is opaque to the developer who does not want to know the intense theory rather than coding. The Quantum Development kit form Microsoft integrates with a full state quantum simulator, which can be used to develop and debug quantum based software using Q# in our own personal computers.

Similar types of platforms are available with Google, IBM, and startups like Rigetti, 1Qbit , etc. But most of them are based on online platform and some need subscription to get access or only be available for exclusive coders or partners. Mostly the usage of such platforms is limited to researchers and partners. In that perspective, Q# gives much more flexibility and capabilities to the developers.

About the Author – Aneesh K Johnny :

Aneesh K Johnny is a Ph.D. scholar in the Department of Applied Mechanics, Indian Institute of Technology, Madras. He is a part of Micro and Nanoscale Transport aneesh
Laboratory, doing research in nanofluidic transport. He did his masters from APJ Abdhul Kalam Technological University, Kerala in Thermal Power Engineering and Bachelors from Mahatma Gandhi University, Kerala in Mechanical Engineering. Aneesh is the Product Manager of Quantica Computacao. His area of interests are Molecular Dynamics, Quantum Computing, Statistical Mechanics.

Leave a Reply

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 )

Google photo

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

Twitter picture

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

Facebook photo

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

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: