There is not any full-scale, working quantum computer yet but the potential is so great that computer scientists at Microsoft are already building systems that will allow quantum computer scientists to hit the ground running as soon as one becomes available.
Next week, at the SuperComputing 2015 conference in Austin, Texas, Dave Wecker, a lead architect on Microsoft's Quantum Architectures and Computation Group (QuArC) team, will discuss the recent public release on GitHub of a suite of tools that allows computer scientists to simulate a quantum computer’s capabilities. That’s a crucial step in building the tools needed to run actual quantum computers.
"This is the closest we can get to running a quantum computer without having one," said Wecker, who has helped develop the software.

The software is called Language-Integrated Quantum Operations, or LIQUi|>. The funky characters at the end refer to how a quantum operation is written in mathematical terms.

LIQUi|> is a software architecture and toolsuite for quantum computing. It will include programming languages, optimization and scheduling algorithms, and quantum simulators. Ultimately, LIQUi|> will be used to translate a quantum algorithm written in the form of a high-level program into the low-level machine instructions for a quantum device.

To aid in the development and understanding of quantum protocols, quantum algorithms, quantum error correction, and quantum devices, QuArC has developed the LIQUi|> software platform. LIQUi|> allows the simulation of Hamiltonians, quantum circuits, quantum stabilizer circuits, and quantum noise models, and supports Client, Service, and Cloud operation. It allows the user to express circuits in a high-level functional language (F#), and supports the extraction of circuit data structures that can be passed to other components for circuit optimization, quantum error correction, gate replacement, export or rendering. The system is architected to be fully modular to permit easy extension as desired.

LIQUi|> includes circuit simulation of up to 30 qubits on a single machine with 32 GB RAM, limited only by memory and computing threads. The largest number factored to date on the simulator is a 13-bit number, which required 27 qubits, half a million gates, and 5 days runtime. The circuit was based on Beauregard’s circuit for Shor’s algorithm.

Ultimately, LIQUi|> will be used to translate a quantum algorithm written in the form of a high-level program into low-level machine instructions for a quantum device. It will include compilers, optimizers, translators, and various simulators.

The researchers are hoping that, using LIQUi|>, computer scientists at Microsoft and other academic and research institutions will be able to perfect the algorithms they need to efficiently use a quantum computer even as the computers themselves are simultaneously being developed.

"We can actually debut algorithms in advance of running them on the computer," said Krysta Svore, a senior researcher who manages QuArC.

In addition to the QuArC research group, Microsoft’s Station Q research lab, led by renowned mathematician Michael Freedman, is pursuing an approach called topological quantum computing that they believe will be more stable than other quantum computing methods.

The idea is to design software, hardware and other elements of quantum computing all at the same time.

"This isn’t just, 'Make the qubits.' This is, "Make the system,'" Wecker said.

A qubit is a unit of quantum information, and it’s the key building block to a quantum computer. Using qubits, researchers believe that quantum computers could very quickly evaluate multiple solutions to a problem at the same time, rather than sequentially. That would give scientists the ability to do high-speed, complex calculations, allowing biologists, physicists and chemists to get information they never thought possible before.

Using the principles of quantum physics, quantum computers could solve compale problems that it would take a regular computer the lifetime of the universe to solve them.

Take fertilizer, for example. Fertilizers are crucial to feeding the world’s growing population because they allow plants to develop better and faster. But synthetic fertilizer relies on natural gas, and lots of it: That’s expensive, depletes an important natural resource and adds to pollution.

Using a quantum computer, Wecker said scientists think they could map the chemical used by bacteria that naturally creates fertilizers, making it easier to create an alternative to the current, natural-gas based synthetic fertilizer.

Although quantum computers can process data much faster, it’s much more difficult to get the results of their calculations because of how qubits are structured. A person using a quantum system needs to know the right question to ask in order to efficiently get the answer they want.

For now at least, quantum computer scientists also are struggling to create systems that can run lots of qubits. Because qubits are essentially a scarce resource, Svore said another big research focus is on how to minimize the number of qubits needed to do any algorithm or calculation. That’s also one of the main focuses of Station Q, which is using an area of math called topology to find ways to use fewer qubits.