Quantum Bayesian Networks

June 12, 2010

Best Heavy Duty Quantum Computer Simulators

Filed under: Uncategorized — rrtucci @ 6:39 am

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:

JUGENE(an IBM Blue Gene/P)
22st in the green500 (Nov2009) biannual list (another of Julich’s computers was 1st)

4th in the top500 (Nov2009) biannual list (1st in Europe)

peak speed: ~e15 FLOPS
memory: 1.44e14 bytes
storage: 6.0e15 bytes
power consumption: 2-3e6 Watts for entire installation, 0.35e9 FLOPS/Watt

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.

Recall that 1 complex number = 2 double precision reals = 16 bytes = 16*8 bits, and that n qubits are described by 2^n complex numbers. Hence

qubits number of complex numbers bytes
1 2 32
2 4 64
3 8 128
16 65536 1.05e+6
23 1.34e+8
32 6.87e+10
42 7.03e+13

This explains why the JUGENE simulator is limited to 42 qubits. The reason is not that 42 is the Answer to the Ultimate Question of Life, but that JUGENE’s memory is about e14 bytes.


  1. 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.

    Comment by Pascal — June 13, 2010 @ 12:06 pm

  2. Neil Dickson, one of the authors of D-Wave’s AQUA, has recently (June 22, 2010) published a nice blog post explaining the AQUA project

    Comment by rrtucci — July 27, 2010 @ 11:25 pm

  3. n qubits are described by 2^n complex numbers,so 1 qubits are descirbed by 2 complex numbers,in the table there are some mistakes .

    Comment by Jie Yang — August 31, 2010 @ 2:31 am

  4. Hi, Jie Yang. Thank you for pointing out the mistake. I fixed it. You have eagle eyes. I hope you continue to be interested in quantum computing.

    Comment by rrtucci — August 31, 2010 @ 3:22 am

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: