June 12, 2010

Best Heavy Duty Quantum Computer Simulators

Simulating the behavior of a quantum computer on a classical computer complements QC theory in several important ways:

Theoretical analyses of physical systems often contain approximations for which error bounds are unknown or hard to calculate accurately. A numerical simulation can avoid such approximations.

Computer programs help us to spot mistakes/omissions in theoretical proofs, algorithms and subtly incorrect preconceptions.

Computer programs help us to visualize the implications of theory and to generate specific examples of it.

In addition, QC simulators are useful for developing and debugging QC algorithms of all types including: QC programming languages, quantum error correction algorithms, etc. In addition, QC simulators can be used to study how QC algorithms degrade with noise.

Numerous QC simulators that can simulate a small number (<=16 qubits) have been written, and you can find links to them at quantiki. Few of those take advantage of parallel computing though. This blog post is about those that do.

Two recent efforts to simulate QCs using parallel computers are

D-wave’s AQUA@home The goal of AQUA (Adiabatic QUantum Algorithms) is to simulate the performance of superconducting adiabatic quantum computers. D-wave has a very nice webpage here explaining their setup. Their software was written by Peter Young (UCSC), Neil Dickson (D-Wave), Firas Hamze (D-Wave), and Kamran Karimi (D-Wave), et al.

JUGENE QC simulator JUGENE is a supercomputer located in the town of Jülich, Germany. This excellent paper describes JUGENE’s 42 qubit QC simulator written by Hans de Raedt, his son Koen, Kristel Michielsen, et al. You may have already heard about it from this recent press release.

There are two main paths to massively parallel (a.k.a. high performance) computing (i.e., computing that achieves ~ e15 FLOPS). The poor man’s way and the rich man’s way.

Poor people like D-wave :) set up a central server that uses the Internet to send parcels of work to, and receive results from the PCs of volunteers who allow their PCs to be used during idle times. The central server also compiles all the results. To choreograph this intricate dance of information exchange, the central server and volunteer PCs use open-source software from Berkeley Univ., called BOINC. BOINC is used by many famous research projects besides aqua@home; for instance, SETTI@home, Folding@home, etc.

Rich people like the Julich group use a “big iron” supercomputer such as JUGENE. Here are some stats for that puppy:

The Programmer’s Perspective: to write software that runs on a parallel computer, one uses special software libraries for “message passing”. A task may either share all its memory with other tasks, or none of it, or just part of it (a hybrid). In situations where memory is shared, one can use libraries such as CUDA (as in barracuda) and OpenMP. These are nicely described here and here by a very hungry game-coder named Mark Pope. In situations where memory is not shared, one can use a library called MPI. (For a quick introduction to MPI, see, for example, this) The code of aqua@home uses mainly CUDA, whereas the code of JUGENE’s QC simulator uses mainly MPI.

Like this:

Related

Many thanks for this insightful post. In the same line of thoughts, you might be interested to read about Cove, A Practical Quantum Computer Programming Framework (https://cove.purkeypile.com/trac/) recently presented by Matt Purkeyvile as his PhD thesis.

I’m actually currently conducting a web based survey on Quantum Information Technology aiming at assessing the general public and field experts knowledge and perception of the technology. I would like to invite readers of this blog to participate in this study. The questionnaire is available at http://www.surveymonkey.com/s/qitsurvey and takes about 15 minutes to complete. The data collection will be running from March to September 2010 and you can participate at any time. Final results will become available in the spring of 2011.

This effort is being conducted in the context of a Master thesis aiming at better understanding the challenges facing Quantum Information Technology (QIT) in order to successfully integrate into the existing “classic” Information Technology (IT) framework. For further information or if you have any question, visit http://pascalheus.name/research/thesis or contact qitissues@gmail.com.