38 return FactoryBackends::CreateGpuImmediate(method);
41 throw std::invalid_argument(
"Unsupported immediate backend");
67 throw std::invalid_argument(
"Distributed GPU supports only statevector");
68 if (!IsDistributedGpuAvailable())
70 return FactoryBackends::CreateDistributedGpuSimulator();
73 throw std::invalid_argument(
"Distributed MPI GPU supports only statevector");
74 return FactoryBackends::CreateDistributedMpiGpuSimulator();
82 return FactoryBackends::CreateGpuSimulator(std::move(immediate));
87 throw std::invalid_argument(
"Simulation Type not supported for Quest Simulator");
97 throw std::invalid_argument(
"Simulator Type not supported");
static MAESTRO_FACTORY_EXPORT std::unique_ptr< ISimulator > CreateImmediateSimulatorUnique(SimulatorType type, SimulationType method=SimulationType::kStatevector)
static int GetGpuDeviceCount()
static MAESTRO_FACTORY_EXPORT std::shared_ptr< ISimulator > CreateSimulator(SimulatorType t=SimulatorType::kQCSim, SimulationType method=SimulationType::kMatrixProductState)
Create a quantum computing simulator.
static MAESTRO_FACTORY_EXPORT std::unique_ptr< ISimulator > CreateSimulatorUnique(SimulatorType t=SimulatorType::kQCSim, SimulationType method=SimulationType::kMatrixProductState)
Create a quantum computing simulator.
static MAESTRO_FACTORY_EXPORT bool IsQuestLibraryAvailable()
std::unique_ptr< ISimulator > CreateQCSimImmediate(SimulationType method)
std::unique_ptr< ISimulator > CreateAerSimulator(SimulationType method)
std::unique_ptr< ISimulator > CreateQCSimSimulator(std::unique_ptr< ISimulator > immediate)
std::unique_ptr< ISimulator > CreateCompositeSimulator(SimulatorType type)
std::unique_ptr< ISimulator > CreateQuestSimulator()
std::unique_ptr< ISimulator > CreateImmediateCompositeSimulator(SimulatorType type)
Bounded online routing based on current physical bond dimensions.
SimulationType
The type of simulation.
@ kStatevector
statevector simulation type
SimulatorType
The type of simulator.
@ kCompositeQCSim
composite qcsim simulator type
@ kQCSim
qcsim simulator type
@ kQiskitAer
qiskit aer simulator type
@ kQuestSim
quest simulator type
@ kDistMpiGpuSim
state distributed across MPI ranks/GPUs
@ kCompositeQiskitAer
composite qiskit aer simulator type
@ kDistGpuSim
state distributed across local GPUs
@ kGpuSim
gpu simulator type