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
std::string m_meas_sampling_seq