When the first true quantum computer is one day realised, it will be completely useless. For it to prove its worth as a potentially world-changing problem solver, the more than likely shed-sized, super-cooled and multi-million dollar piece of kit will need to run software.
While the majority of current research (including that at the CQC2T at UNSW) is focused on the within-reach reality of a fully functional universal gate quantum computer, a small group of researchers at University of Technology Sydney are exploring exactly how we'll tap into this future machine's incredible computational power.
In coming months they will reveal their latest breakthrough: a programming environment for the quantum era.
"So when the day comes the hardware is ready," says Professor Runyao Duan — director of the newly formed UTS Centre for Quantum Software and Information (UTS:QSI) — "we'll be ready".
Programs designed for so-called classical computers – the kind that use binary bits, like the one you're reading this article on – are not well suited to quantum computers.
The superposition of quantum states – which in qubit (quantum bit) form manifests as a 0, 1 or both – means a quantum computer can run two computations simultaneously, rather than sequentially. Not designed for this radically different underlying hardware, a classical program would simply fail to exploit this quantum capability.
So quantum programs are needed. But building them is hard.
"Due to the weird nature of quantum systems, many technologies that have been very successful in traditional programming will be broken," explains Professor Minsheng Ying, research director at UTS: QSI.
"Essential differences means we need new technologies,” he says. “It's like starting afresh,"
Speaking another language
Although quantum programming languages have been in development since the late '90s, these were often 'quantum extensions' to existing languages; C++ for example. Only more recently have quantum languages with compilers – which translate the high-level language into the machine language for a program to be executed – been designed.
The soon-to-be-launched UTS:QSI environment brings together a quantum programming language and quantum compilers with a crucial missing element: The verification and analysis tools to prove the quantum program correct.
"How you can guarantee the software is correct? For classical programming we already have a lot of tools for that. But for quantum we don’t," Ying says.
These tools are especially important, Ying explains, because people find it really hard to get their head around quantum.
"Human intuition is quite far from the quantum world," Ying says. "It is better adapted and more effective in the classical world than the quantum world. So in the future when people program a quantum computer they'll have more errors and bugs in there."
D-Wave, the maker of the ‘first commercially available quantum computer’, open sourced its software tool Qbsolv last month. However, D-Wave’s is a specific type of quantum computer, known as a quantum annealer, which is built to solve only certain kinds of problems.
IBM made its own quantum processor, composed of five superconducting qubits, available to the scientific community to run algorithms and experiments via the cloud early last year. These experiments are created with a musical-score like interface called Composer, on which users drag and drop a selection of quantum logic gates to run an algorithm on IBM’s chip in its New York research lab.
The user-friendly programming languages and tools used in these cases, however, are designed specifically for the hardware available.
UTS:QSI is looking further ahead, building interfaces that are “independent of the architecture and more flexible” for far more complex machines with hundreds or thousands of qubits that haven’t yet been built, explains Duan.
“We cannot wait until they have the hardware,” adds Ying. “Designing and implementing a quantum programming language and environment is huge. It takes years. If we wait until the machine is there, other people will definitely be there.”
The UTS:QSI centre, based within the university's cheesegrater building in Ultimo, was launched in December. Born out of a lab within the Centre for Quantum Computation and Intelligent Systems, which began in 2008, its areas of focus include quantum programming and verification, quantum algorithms, quantum's applications for artificial intelligence, cryptography and security as well as identifying other tasks that demonstrate ‘quantum supremacy’ over conventional computers.
The hardware focused efforts of the CQC2T and UTS's software-based research is together forming an ecosystem for a future quantum computing industry in Australia.
Many of its 12 strong team 'superposition' (one of the centre's in-jokes) between research areas, and are leaders in their fields. Last month nine talks by UTS:QSI were given at the Quantum Information Processing conference in Seattle, Washington.
UTS:QSI has attracted the attention of Google, IBM and Microsoft — all three have representatives on its advisory board. Alibaba called last week, scouting for quantum software engineers. In the next couple of week researchers will be sharing recent developments with the Commonwealth Bank of Australia at the CQC2T.
A practical universal gate quantum computer has not even been proved possible yet, and already the centre’s staff are discussing how to train a new kind of software engineer (“It’s going to be hard; we need to educate them now,” says Ying) and imagining how quantum computers will talk to each other over a quantum internet.
“People say if you are doing this science, you must foresee the next 20 years,” says Ying.