## The background story:

There is a lot of discussion around the world about the “hot topic” of quantum computers, their properties, the purposes, how to use them and if eventually they will lead us into a technological utopia like Sci-Fi movies we have watched. First things first, let’s clarify that quantum computers do not have any intention whatsoever to replace the conventional computers we all know and use daily. In fact, quantum computers walk hand by hand with the regular ones on this technological “path of tomorrow”. Quantum computers are expected to be able to solve mathematical problems that cannot be solved using conventional computers. Many of these problems are of practical importance, especially in the areas of cryptography, secure communications, pharmaceutical research, logistics etc.

Quantum computers harness quantum-evident behaviors of nature like superposition, entanglement, and interference. The processing of information that is represented by special quantum states is translated into quantum bits (qubits). A qubit is made from a quantum system using electrons, atoms, ions, or light-based approaches such as photons, which are one choice for the physical basis of the qubits required to perform quantum computation.

Quandela opted for the photonic approach as it has many assets: flying qubits useful for interconnection of platforms, infinite coherence time, information processing at ambient temperature, developed semi-conductor industry. Also, Quandela owns a unique know-how in the development of highly efficient single-photon sources which is crucial to scale photonic quantum computers.

## Qubits generation:

Photons are light particles with no mass and no electric charge thus they are less sensitive to environmental perturbations meaning that they have infinite coherence time. Single photons and other quantum light states can also be generated in a variety of complex shapes (i.e. modes) and encoding information in these different shapes could be an efficient way to securely transmit data.

At first, we create a single-photon source by “building” a quantum dot, which is an artificial atom and emits photons in all directions of the space. However, we want the photons to be directed in one direction, to achieve that we construct a micropillar around it and this enables us to manipulate them accordingly. To be a bit more precise though, the quantum dot does not generate photons all by itself -like sunshine in the nature or other similar natural light phenomena-, to trigger it we use laser pulse. Imagine a rough laser pointing from above on the artificial atom, through the micropillar; once it reaches the quantum dot, its “excitement” generates a single photon at each laser pulse, which then starts its journey through a fiber and then to the chip processor.

Of course, initially we have one trail of photons, but before it reaches the chip, they must be separated in many.

How do we do that? Basically, they pass into demultiplexer (DMX) which routes the stream of photons in different outputs; roughly a multi-socket.

Then, photons are moving inside a waveguide in one direction (could be compared to plumbing pipes where you send water in). Each waveguide is called a mode, the unit of light in each mode is used to represent a qubit, two modes and one photon can encode 1 qubit. Imagine the modes as two parallel lines where the photon can be either on the upper line or the bottom line. At this point we can agree that having a photon on the upper waveguide corresponds to qubit in state |0> and the lower waveguide corresponds to qubit in state |1>, and this is the general idea that defines our qubits. We call it dual-rail encoding.

## Qubits manipulation:

That alone does not mean anything, we don’t want to have only 0s and 1s we need to manipulate these photons. So, we must do computations with them, and to do so we must move forward step-by-step, using certain patterns and milestones. On a classical computer each step is a gate, it is the same on a quantum computer, we need some basic elements and steps to do computations.

For instance, assume we have |0> how do we end up in a quantum superposition? How do we end up with 50% chance being in the upper waveguide and 50% chance being in the lower waveguide? To achieve that we use an optical device with two inputs and outputs called beam splitter. Once the single photon passes into a beam splitter it will move randomly in the upper or lower mode with a 50–50 chance. Furthermore, we might need different probabilities for example 30–70% or 40–60%, in that case we must have more sophisticated beam splitters using phase shifters (also called unbalanced beam splitters).

The above describes a basic one-qubit gate implementation that is used in quantum computing called the Hadamard gate. Playing with beam splitters and phase-shifters we can also describe other one-qubit gates that are widely known and used in quantum computations: Pauli X, Pauli Y, Pauli Z. But what if we need more than one? for instance a 2-qubit operation?

In that case we need two indistinguishable photons. Indeed, to perform a 2-qubit gate like the C-NOT, we use the HOM effect (in our set-up we cool down the quantum dot to 4K = -269.15°C to have good indistinguishability of photons, see article for more details about this effect. Then we smartly play with beam splitters and phase-shifters to implement a C-NOT using optical elements. The C-NOT gate is a notorious example as it creates entanglement between two parties thus is required to build a gate-based model of quantum computing.

## Perceval:

By now you must be wondering how all these are relevant to the more “traditional” computing part we mentioned in the title. So far, we explained the hardware part, but we need several software layers to program the hardware. One of these it is called Perceval -no we do not refer to the fiction Knights of the Round Table-. Perceval is a software that mimics the behavior of the above phenomenon, a simulator of optical devices for quantum computing.

Perceval is a quantum photonic development toolkit powered by Quandela and dedicated to a broad range of end- users. In other words, it is an open-source software integrated in a Python library enabling users to visualize and understand the inner workings of an optical Quantum Computer, and simulate it too. The tool is initially dedicated to computer scientists, programmers, physicists, and students who want to simulate quantum properties. Soon, other versions of it will be released with high level Quantum Machine Libraries, logical layers, lossy components and much more.

The trifecta for Perceval is simulating, modelling, and testing. The alpha version is available free of charge on GitHub. The idea of Perceval is to be — aside of a simulator — the first platform that offers the functions of modelling and testing, to design the very best circuit possible, very close to physical systems; exploring new properties and of course simulate linear optics. For detailed documentation, GitHub links and further information you can access the following link.

Now we know how to do quantum computation using single photons! If you want to go further, you can either test our Training Center or read Related articles.