Software Diagnostics and Conformance Testing Division home page

Quantum Compiling and Simulation

Home | Screenshots | QCSim | genadder | Qhdl2Jaq/Jaq2Qhdl | Generate | Download
 

Overview

The quantum compiling project seeks to develop methods to compile high-level descriptions of quantum algorithms into practical, low-level commands for quantum processors being developed.

Even though classical compilers and processors have been around for decades, new forms of optimization and new architectures of classical transistors are being developed. De Raedt et al. (2000) show that different orders of operations dramatically increase the chance of correct result in an NMR implementation, even when operations are ideally commutative. Even when physicists have a prototype, there are still trade-offs in allocation of qubit values to physical states, assignment of qubits to entities, order, selection, and optimization of operations, and scheduling of error correction versus computation.

qubits can be assigned to different atoms The first task is to determine the geography of and relation between search spaces. Can qubit values be allocated to physical states independently of entity assignment? Are greedy algorithms sufficient to yield near-optimal results, or must we use heuristic search techniques such as simulated annealing or genetic algorithms? How sensitive are different orders of operations to different error models? To help explore these questions, we are developing a low-level quantum simulator, QCSim, that incorporates various error models.

The second task is to write effective optimizing compilers to

  • compile high-level algorithms into low-level gates,
  • elaborate gates with schemes to avoid, detect, and correct errors,
  • optimize the result.


Software

We find the following programs to be especially useful. Those developed at NIST are freely available to download. Most include self-tests and examples.

QCSim is a discrete-time simulator for 2-level quantum entities (qubits) written in C++. It reads a file with qubit declarations, the initial state, and quantum gates and commands. The file format is a subset of QHDL. QCSim uses a density matrix to represent the current state. Examples include BB84, teleportation, quantum error correcting codes, and Grover's algorithm.

jaQuzzi is a graphical quantum editor and simulator written in Java by Felix Schuermann at SUNY. The user can interactively add or delete qubits and gates. The user can also step through the circuit gate by gate and see the current state in "ket" or "Dirac" notation. jaQuzzi saves and loads circuits in a special format, whose extension is .jaq.

Qhdl2Jaq and Jaq2Qhdl convert from QHDL to jaQuzzi format and back. They are written in C++. Special gates are converted into NO-OP's, and initializations and comments may be lost.

Genadder synthesizes boolean adder quantum circuits for any number of bits. It is written in C. Circuits are produced in QHDL format.

Generate is a boolean circuit synthesizer written in Java. Functions to be synthesized are specified in Java. The user sets the number of inputs, maximum number of ancilla, maximum number of gates, and other options. Generate very efficiently searches possible circuits for those that generate the specified functions. Solutions are produced in a network format, as a jaQuzzi format file, or a QHDL format file.


Links

Other quantum information and quantum computing links at NIST.

Following are links outside NIST. We provided these because they may have information of interest. No inferences should be drawn because some sites are referenced, or not, from this page. There may be other web sites that are more appropriate for your purpose. NIST does not necessarily endorse the views expressed, or concur with the assertions presented on these sites. Further, NIST does not endorse any commercial products that may be mentioned on these sites.


Sponsors

This work is sponsored by the DARPA Quantum Information Science and Technology (QuIST) program. Additional funding is provided by the Software Quality Group of the Software Diagnostics and Conformance Testing Division in the Information Technology Laboratory.
NIST is an agency of the U.S. Commerce Department's Technology Administration.


Viewable With Any Browser

Send comments to: webmaster-sdct
Privacy Policy

Created Fri Jul 11 2003
by Andrew Lane

Updated Tue Mar 16 11:25:16 2004
by Paul E. Black

This page's URL is: http://hissa.nist.gov/~black/Quantum/