462.libquantum
SPEC CPU2006 Benchmark Description

Benchmark Name

462.libquantum


Benchmark Author

Björn Butscher, Hendrik Weimer <libquantum [at] enyo.de>


Benchmark Program General Category

Physics / Quantum Computing


Benchmark Description

libquantum is a library for the simulation of a quantum computer. Quantum computers are based on the principles of quantum mechanics and can solve certain computationally hard tasks in polynomial time. In 1994, Peter Shor discovered a polynomial-time algorithm for the factorization of numbers, a problem of particular interest for cryptanalysis, as the widely used RSA cryptosystem depends on prime factorization being a problem only to be solvable in exponential time. An implementation of Shor's factorization algorithm is included in libquantum.

libquantum provides a structure for representing a quantum register and some elementary gates. Measurements can be used to extract information from the system. Additionally, libquantum offers the simulation of decoherence, the most important obstacle in building practical quantum computers. It is thus not only possible to simulate any quantum algorithm, but also to develop quantum error correction algorithms. As libquantum allows to add new gates, it can easily be extended to fit the ongoing research, e.g. it has been deployed to analyze quantum cryptography.


Input Description

The benchmark program expects the number to be factorized as a command-line parameter. An additional parameter can be supplied to specify a base for the modular exponentiation part of Shor's algorithm.


Output Description

The program gives a brief explanation on what it is doing and the factors of the input number if the factorization was successful.


Programming Language

ISO/IEC 9899:1999 ("C99")


Known portability issues


Portability issues fixed subsequent to the release of SPEC CPU2006 V1.0


References


Last updated: $Date: 2008-04-12 08:31:17 -0400 (Sat, 12 Apr 2008) $