IQCS
The Improving Quantum Computer Simulations (IQCS) benchmark does not belong to a conventional class of HPC-codes like MC, MD, CFD. Instead, since the simulation of quantum operations is memory bounded (adding another qubit doubles the size of the state vector), it serves primarily as a benchmark for memory bandwidth and internode communication.
In contrast to a classical bit, which can be either 0 or 1, the state of a qubit |q> is given by a linear superposition of the basis states
|0> and |1> | |
|q> = a |0> + b |1> ; |a|^{2} + |b|^{2} = 1 |
with a and b being complex numbers. The state vector of |q> is defined by (a,b)^{t}.
A quantum operation on |q> is represented by a unitary 2x2-matrix U. For example,
the Hadamard-operation H is given b
(1 | 1) | ||
H = 1/sqrt(2) | (1 | -1) (*) |
mapping the basis states according to
|0> → 1/sqrt(2) (1,1)^{t}, | |
|1> → 1/sqrt(2) (1,-1)^{t}. |
The state |q> of a n-qubit system can be written as
|q> = a_{0...00} |0...00> + a_{0...01} + a_{0...10} + ... + a_{0...11} |0...11> + a_{1...11} |1...11> |
where (a_{0...00}, a_{0...01}, a_{0...10}, ..., a_{0...11},
a_{1...11})^{t} corresponds to the state vector. It is obvious that
the size of the state vector grows exponentially with the number of qubits. Storing
each complex component of the state vector in two doubles, each component requires
16 Byte of memory. Therefore, the state vector of a n-qubit system consumes (16
* 2^{n})/1024^{4} TByte. In case of 37 qubits, 2 TB are needed to
store the state vector of the system.
More information