qat.qpus.CNoisy

This QPU is written as a thin python wrapper around qat.qpus.CLinalg. Please see CLinalg’s documentation for more information on the internal methods of this simulator.

High-level Quantum Processing Unit

class qat.qpus.CNoisy(mode: str = 'deterministic', hardware_model: HardwareModel | None = None, tol_spam_reconstruction=1e-10, use_gpu: bool = False, use_nbthreads_heuristic: bool = True, precision: int = 2, sparse: bool = False, tqdm: bool = False, fusion: bool = True, seed: int | None = None)

CNoisy simulator

Parameters:
  • mode (str) – Simulation mode Default: “deterministic”

  • hardware_model (HardwareModel) – Hardware model describing the noisy model

  • use_gpu (bool) – use the GPU backend (may not be available on your version of NewLinAlg) Default: False

  • use_nbthreads_heuristic (bool) – use heuristic for choosing the number of threads setting this parameter to False will result in using OMP_NUM_THREADS Default: True

  • precision (int) – precision used for the simulation, either 1(single) or 2(double) Default: 2

  • sparse (bool) – whether or not to return a sparse result Default: False

  • tqdm (bool) – use tqdm to display progress in simulating the circuit Default: False

  • fusion (bool) – use the FusionPlugin as a pre-processing step, merging gates together (only for at least 23 qubits) Default: True

  • seed (int) – seed of the random number generator Default: None (will use a random seed)

submit(batch: Batch, meta_data: dict = None) BatchResult

Executes a batch of jobs and returns the corresponding list of Results.

Parameters:

batch (Batch) – a batch of jobs. If a single job is provided, the job is embedded into a Batch, executed, and the first result is returned.

Returns:

a batch result

Return type:

(BatchResult)

This high-level class wrapping the simulator follows the convention of the qat.qpus.QPUHandler structure.