With accelerating technological advancements, virtual and physical worlds coming closer, today we generate huge amounts of data that is orders of magnitude times more than what it was just a few years ago. And this is increasing at an exponential rate.

Advancement in the hardware front won’t be able to keep up with tomorrow’s needs. The number of transistors a processor can hold has a direct relation to how fast it can be. The size of transistors is already getting closer to the size of an atom and processors are packing as much transistors as they physically could. Soon we will hit the physical limits on how powerful today’s processors can possibly get. One of the latest personal computing processors, a 10 core i7 Broadwell-E processor holds about 3.2 billion transistors of size 14 nm within an area of 246 square millimeters! Transistor is the most fundamental element of a processor in a traditional computing which represents a bit 0 or 1. A bit can represent one of the two states, and toggling these states is the most fundamental operation responsible for the computations.

To keep up with the growing computation requirements, we need something that improves computational power exponentially, a totally new disruptive approach. Much like the disruption we saw between different generations of computers, from Vacuum Tubes to Transistors to Integrated Circuits (ICs) we use today.

## Quantum Computing

Quantum Theory is a field of physics about sub-atomic world, a realm of science where things are very different. Quantum Computing is a field of theoretical computing which studies computation based on Quantum Theory.

Quantum Bit or qubit is a basic element in quantum computing. Qubit is analogous to a bit in classical computing. A Qubit exhibits two behaviors which are central to why Quantum Theory makes Quantum Computing possible. These are Superposition and Entanglement.

### Superposition

Superposition is a property of Qubit where a Qubit can be in two different states at the same time. This is in contrast to a classical bit, which can only be in a single state at any given time.

Consider 4 classical bits and 4 qubits. These 4 classical bits can hold one of the 16 possible values, i.e., 2^4. But 4 qubits can hold all 16 possible values at the same time. This may not seem too much. Now lets consider 32 bits. A classical bit can hold one of the 4294967296 possible values, while 32 qubits can hold 4294967296 values at the same time, that’s close to 4.3 billion! And this exponentially increases with number of qubits.

### Entanglement

Entanglement is a property of Qubit (quantum particle) where a pair of Qubits have a interdependent states. By reading the value (state) of one Qubit, the value (state) of other Qubit can be derived without ever reading it. And since they have interdependent states, manipulating one qubit affects it’s counterpart.

With Superposition and Entanglement together, Quantum Computers can achieve incredible parallelism in computations that classical computers are simply not designed for. Since parallelism is the main advantage of Quantum Computing, it is going exponentially increase the speed of computations that can be parallelized. But it won’t have this advantage if the computation is inherently sequential. For instance, consider a program which has a billion operations where every operation depends on the results of previous operation. Here since the computation needs to be done sequentially, Quantum Computing won’t help in solving such problems.

When Quantum Computers become a reality, they will not replace the existing computers but can augment the capabilities of today’s computers much like a GPU (Graphical Processing Unit) does. May be a Quantum Processing Unit (QPU)!

## Possibilities

Even though we have some incredibly fast CPUs and GPUs today, they aren’t fast enough for a many problems which remain unsolved. Problems that could take thousands of years on today’s computer can be solved in minutes with Quantum Computing.

When Quantum Computing becomes real, it’ll open doors to huge possibilities. Some of the disciplines/problems that Quantum Computing will solve with ease are Healthcare (understanding DNA, Genes, Proteins), Chemistry, Drug Invention, AI, Traveling Salesman Problem (Logistics Industry), Scheduling Problems, etc. to name just a few.

One of the most significant impact of Quantum Computing will be on cryptography which is widely used today for Cryptocurrency, Digital Certificates, User Authentication, etc. These systems can be easily broken unless they evolve before Quantum Computing is real. A typical SHA256 hash can be solved in minutes on a Quantum Computer which would take billions of years if we were to solve with today’s computing power.

## Recent advancements

Research in the field of Quantum Computing is in full swing in various academic and industrial research labs. Some proof of concept machines have already been built. Find some of the latest developments in Quantum Computing by Microsoft, IBM, Google and D-Wave Systems.

## Thoughts?

Experts on the topic, please share your thoughts. I’m nowhere near an expert in theoretical computing and physics. Thoughts put in here are based on what I understood about the topic by reading and watching talks about the topic over time. I haven’t studied the topic in my formal education. Hence, please take with a grain of salt.

*reposted as a LinkedIn article here.*