Class MpsAccelerator

Inheritance Relationships

Base Type

  • public xacc::Accelerator

Class Documentation

class MpsAccelerator : public xacc::Accelerator

MPS Accelerator backend.

Public Functions

inline virtual const std::string name() const override

Get the name of the backend accelerator.

Returns:

Backend name

inline virtual const std::string description() const override

Get the short description of the backend accelerator.

Returns:

Description string

virtual void initialize(const xacc::HeterogeneousMap &params) override

Initialize the backend accelerator.

Parameters:

params – Configuration parameters

virtual void updateConfiguration(const xacc::HeterogeneousMap &config) override

Update the backend accelerator’s configurations.

Parameters:

config – Parameters to update

virtual const std::vector<std::string> configurationKeys() override

Get the list of configuration options.

Returns:

Names of configuration options

inline virtual BitOrder getBitOrder() override

Get the Bit Order convention that the backend follows.

Returns:

Bit order scheme

virtual xacc::HeterogeneousMap getProperties() override

Get the backend’s properties.

Returns:

Properties as a list of (key, value) pairs

virtual void execute(std::shared_ptr<xacc::AcceleratorBuffer> buffer, const std::shared_ptr<xacc::CompositeInstruction> compositeInstruction) override

Execute a single quantum circuit and store results in the result buffer.

Parameters:
  • buffer – Accelerator backend to store execution results and info

  • compositeInstruction – Input circuit to execute

virtual void execute(std::shared_ptr<xacc::AcceleratorBuffer> buffer, const std::vector<std::shared_ptr<xacc::CompositeInstruction>> compositeInstructions) override

Execute list of quantum circuits and store results in the result buffer.

Parameters:
  • buffer – Accelerator backend to store execution results and info

  • compositeInstructions – List of input circuits to execute

Private Functions

void apply_noise(std::shared_ptr<xacc::Instruction> inst, MPSStateSpace &state, const qb::internal::nv_noise_model &noise_model)

Apply noise channels on a qubit’s state.

Parameters:
  • inst – List of instruction, i.e. quantum circuit, to execute

  • state – Qubit state

  • noise_model – List of noise channels

Private Members

int m_shots
NoiseModel *m_noise_model
int m_num_gpus
int m_initial_bond_dim
int m_max_bond_dim
double m_abs_truncation_threshold
double m_rel_truncation_threshold