Programming goes quantum

By Eric Smalley, Technology Research News

Quantum computing is in an embryonic stage of development and the field is still firmly in the hands of those who study atoms, electrons and photons for a living.

But a few computer scientists and mathematicians who also speak the language of physics are beginning to prepare for the inevitable handover to the programmers who make today's computers useful.

A group based in Italy is among the latest researchers who are attempting to bridge the chasm between traditional programming tools and the inscrutable world of quantum mechanics. The researchers are building a programming architecture for quantum computing.

The researchers are developing a C++ class library, or vocabulary for the C++ programming language, that is designed for quantum computing. The class library will contain basic building blocks for programming quantum computers, including registers, operators and instructions for manipulating quantum bits.

Registers are slots where computer processors temporarily place numbers like values and addresses as they are working on them. Operators are instructions for specific actions like addition and multiplication.

"Our goal... is an automatic tool which reads a source code in a high-level programming language and outputs a stream of quantum machine code," said Stefano Bettelli, a graduate student at Trento University in Italy.

The researchers are not developing a new programming language specifically for quantum computers, but are building an extension to a standard classical computer programming language. The researchers' architecture is a hardware abstraction layer, which attempts to shield programmers from the details of a particular type of computer hardware so they can use the same tools to write software for different types of computers.

"A reasonable analogy would be the extensions needed to ease the effective use of parallel computer architectures, or those needed to access external devices with different semantics, such as the graphics board," said Emanuel Knill, a mathematician at Los Alamos National Laboratory.

Programming languages and their extensions are either interpreted or compiled. Software written in interpreted languages goes straight from the programmer to the computer, which uses a lot of resources converting the software to a more machine-friendly form. Software written in compiled languages is processed by another tool, a compiler, which does the conversion before the software is used on a computer.

The researchers plan to make as much as possible of their quantum computing extension compiled, said Bettelli. Interpreted languages put an added burden on programmers because there is no compiler to catch code that a computer can't handle, and this is especially true for unusual hardware like quantum computers.

On the other hand, it will be difficult to create a compiler that understands the requirements of quantum computers. "The compiler won't stop if you try to do things that make no physical sense," said Bernhard Ímer, a graduate student at the Technical University of Vienna. "All these restrictions will have to be enforced solely by the implementation of the C++ class library and the discipline of the programmer."

Ímer has developed a similar programming architecture aimed at studying new ways of programming that are particular to quantum computing rather than giving programmers familiar tools for working with quantum computers.

The goal of that effort is to develop a true quantum programming language complete with quantum semantics, Ímer said. "While having a standardized [programming language extension] to numerically simulate, or at some time actually control, a quantum computer would certainly be a good thing, I don't think that a library on top of an existing classical language is an adequate paradigm for quantum programming itself," he said.

How soon anyone will need to write software for quantum computers is an open question. While researchers are producing a steadily increasing number of quantum algorithms, which are critical for demonstrating that quantum computers are worth the vast effort and expense that will be required to create them, only a handful of minuscule prototypes exist to run the algorithms.

"Our seven-qubit experiments are, in a sense, one-shot programs, and hooking them up into a general language doesn't really make sense," said Knill.

In addition to laying the groundwork for the day when quantum computers become available to programmers, the C++ library could make it easier for researchers to work with quantum computer simulations, he said. "Beyond that, it is hard to know how technology and software semantics [will] develop, and flexibility in that respect is well advised," said Knill.

It will be at least 20 years before practical quantum computers are developed, according to many researchers.

"You can try to extrapolate the growth in number of qubits to see how many qubits we might be able to control all at once in, say, 20 years," said Knill. "You'll find that using even an optimistic extrapolation based on exponential growth... it isn't that many."

"You also have to realize that the needed advancements in improving error rates per operation are hard to predict," he said. "Currently an error rate of 1 in 10 for any of the few two-qubit devices available is considered extremely good. As far as we know, this has to come down to below 1 in 10,000."

Bettelli's research colleagues were Tommaso Calarco of the Institute of Theoretical Physics at the University of Innsbruk and Luciano Serafini of the Institute for Scientific and Technological Research at the Trentino Institute of Culture in Italy. The research was funded by Italian Ministry of Research and the Italian National Institute for Nuclear Physics.

Timeline:   >20 years
Funding:   Government
TRN Categories:   Quantum Computing; Programming Languages and Compilers
Story Type:   News
Related Elements:   Chart


March 28/April 4, 2001

Page One

Programming goes quantum

Diversity trumps fitness

Nanotubes paint clear picture

Hitting the deck cools microdevices

Magnetic fields move microbeads


Research News Roundup
Research Watch blog

View from the High Ground Q&A
How It Works

RSS Feeds:
News  | Blog  | Books 

Ad links:
Buy an ad link


Ad links: Clear History

Buy an ad link

Home     Archive     Resources    Feeds     Offline Publications     Glossary
TRN Finder     Research Dir.    Events Dir.      Researchers     Bookshelf
   Contribute      Under Development     T-shirts etc.     Classifieds
Forum    Comments    Feedback     About TRN

© Copyright Technology Research News, LLC 2000-2006. All rights reserved.