|
Maestro 0.2.5
Unified interface for quantum circuit simulation
|
#include <ExecutionCost.h>
Collaboration diagram for Estimators::ExecutionCost:Classes | |
| struct | CircuitInfo |
| struct | ExecutionInfo |
Static Public Member Functions | |
| static void | BenchmarkAndLogExecution (Simulators::SimulatorType simType, Simulators::SimulationType method, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t nrReps, size_t maxBondDim, Utils::LogFile &log) |
| static void | BenchmarkAndLogExecution (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrReps, size_t nrMinQubits, size_t nrMaxQubits, size_t stepQubits, size_t depthMin, size_t depthMax, size_t stepDepth, double measureInsideProbability, size_t nrMeasAtEndMin, size_t nrMeasAtEndMax, size_t stepMeasAtEnd, size_t nrRandomCircuitsPerConfig, size_t maxBondDim, const std::string &logFilePath) |
| static void | BenchmarkAndLogPauliExpectation (Simulators::SimulatorType simType, Simulators::SimulationType method, const std::shared_ptr< Circuits::Circuit<> > &circuit, const std::string &pauliString, size_t nrReps, size_t maxBondDim, Utils::LogFile &log) |
| static void | BenchmarkAndLogPauliExpectation (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrReps, size_t nrMinQubits, size_t nrMaxQubits, size_t stepQubits, size_t depthMin, size_t depthMax, size_t stepDepth, size_t nrRandomCircuitsPerConfig, size_t maxBondDim, const std::string &logFilePath) |
| static void | BenchmarkAndLogSampling (Simulators::SimulatorType simType, Simulators::SimulationType method, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t nrQubitsSampled, size_t nrSamples, size_t nrReps, size_t maxBondDim, Utils::LogFile &log) |
| static void | BenchmarkAndLogSampling (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrReps, size_t nrMinQubits, size_t nrMaxQubits, size_t stepQubits, size_t depthMin, size_t depthMax, size_t stepDepth, size_t nrMeasAtEndMin, size_t nrMeasAtEndMax, size_t stepMeasAtEnd, size_t nrSamplesMin, size_t nrSamplesMax, size_t multiplierSamples, size_t nrRandomCircuitsPerConfig, size_t maxBondDim, const std::string &logFilePath) |
| static double | EstimateExecutionCost (Simulators::SimulationType method, size_t nrQubits, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t maxBondDim) |
| static double | EstimatePauliExpectationCost (const std::string &pauliString, Simulators::SimulationType method, size_t nrQubits, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t maxBondDim) |
| static double | EstimateSamplingCost (Simulators::SimulationType method, size_t nrQubits, size_t nrQubitsSampled, size_t samples, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t maxBondDim) |
| static std::string | GeneratePauliString (size_t nrQubits) |
| static std::shared_ptr< Circuits::Circuit<> > | GenerateRandomCircuit (size_t nrQubits, size_t depth, double measureInsideProbability=0., size_t nrMeasAtEnd=0, bool isClifford=false, size_t nrNonCliffordGatesLimit=0) |
| static CircuitInfo | GetCircuitInfo (const std::shared_ptr< Circuits::Circuit<> > &circuit) |
| static std::shared_ptr< Simulators::ISimulator > | GetSimulator (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrQubits, size_t maxBondDim) |
| static double | MeasureExecutionTime (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrQubits, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t nrReps, size_t maxBondDim) |
| static double | MeasurePauliExpectationTime (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrQubits, const std::shared_ptr< Circuits::Circuit<> > &circuit, const std::string &pauliString, size_t nrReps, size_t maxBondDim) |
| static double | MeasureSamplingTime (Simulators::SimulatorType simType, Simulators::SimulationType method, size_t nrQubits, const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t nrQubitsSampled, size_t nrSamples, size_t nrReps, size_t maxBondDim) |
| static std::vector< ExecutionInfo > | ReadLog (const std::string &logFilePath) |
Definition at line 43 of file ExecutionCost.h.
|
inlinestatic |
Definition at line 842 of file ExecutionCost.h.
References EstimateExecutionCost(), GetCircuitInfo(), Utils::LogFile::Log(), and MeasureExecutionTime().
|
inlinestatic |
Definition at line 672 of file ExecutionCost.h.
References BenchmarkAndLogExecution(), GenerateRandomCircuit(), Simulators::kPauliPropagator, and Simulators::kStabilizer.
Referenced by BenchmarkAndLogExecution().
|
inlinestatic |
Definition at line 892 of file ExecutionCost.h.
References EstimatePauliExpectationCost(), GetCircuitInfo(), Utils::LogFile::Log(), and MeasurePauliExpectationTime().
|
inlinestatic |
Definition at line 750 of file ExecutionCost.h.
References BenchmarkAndLogPauliExpectation(), GeneratePauliString(), GenerateRandomCircuit(), Simulators::kPauliPropagator, and Simulators::kStabilizer.
Referenced by BenchmarkAndLogPauliExpectation().
|
inlinestatic |
Definition at line 868 of file ExecutionCost.h.
References EstimateSamplingCost(), GetCircuitInfo(), Utils::LogFile::Log(), and MeasureSamplingTime().
|
inlinestatic |
Definition at line 793 of file ExecutionCost.h.
References BenchmarkAndLogSampling(), GenerateRandomCircuit(), Simulators::kPauliPropagator, and Simulators::kStabilizer.
Referenced by BenchmarkAndLogSampling().
|
inlinestatic |
Definition at line 66 of file ExecutionCost.h.
References Simulators::QcsimPauliPropagator::GetCost(), Circuits::kConditionalGate, Circuits::kConditionalMeasurement, Circuits::kGate, Simulators::kMatrixProductState, Circuits::kMeasurement, Simulators::kPauliPropagator, Circuits::kReset, Simulators::kStabilizer, and Simulators::kStatevector.
Referenced by BenchmarkAndLogExecution(), and EstimatePauliExpectationCost().
|
inlinestatic |
Definition at line 364 of file ExecutionCost.h.
References EstimateExecutionCost(), Simulators::QcsimPauliPropagator::GetCost(), Simulators::kMatrixProductState, Simulators::kPauliPropagator, Simulators::kStabilizer, and Simulators::kStatevector.
Referenced by BenchmarkAndLogPauliExpectation().
|
inlinestatic |
Definition at line 153 of file ExecutionCost.h.
References Simulators::QcsimPauliPropagator::GetSamplingCost(), Circuits::kConditionalGate, Circuits::kConditionalMeasurement, Circuits::kGate, Simulators::kMatrixProductState, Circuits::kMeasurement, Simulators::kPauliPropagator, Circuits::kReset, Simulators::kStabilizer, and Simulators::kStatevector.
Referenced by BenchmarkAndLogSampling().
|
inlinestatic |
Definition at line 722 of file ExecutionCost.h.
Referenced by BenchmarkAndLogPauliExpectation().
|
inlinestatic |
Definition at line 404 of file ExecutionCost.h.
References Circuits::CircuitFactory< Time >::CreateGate(), Circuits::kCCXGateType, and Circuits::kUGateType.
Referenced by BenchmarkAndLogExecution(), BenchmarkAndLogPauliExpectation(), and BenchmarkAndLogSampling().
|
inlinestatic |
Definition at line 575 of file ExecutionCost.h.
References Circuits::kConditionalGate, Circuits::kConditionalMeasurement, Circuits::kGate, Circuits::kMeasurement, Estimators::ExecutionCost::CircuitInfo::nrEndMeasurementOps, Estimators::ExecutionCost::CircuitInfo::nrMiddleMeasurementOps, Estimators::ExecutionCost::CircuitInfo::nrOneQubitOps, Estimators::ExecutionCost::CircuitInfo::nrOneQubitOpsExecutedOnce, Estimators::ExecutionCost::CircuitInfo::nrQubits, Estimators::ExecutionCost::CircuitInfo::nrThreeQubitOps, Estimators::ExecutionCost::CircuitInfo::nrThreeQubitOpsExecutedOnce, Estimators::ExecutionCost::CircuitInfo::nrTwoQubitOps, and Estimators::ExecutionCost::CircuitInfo::nrTwoQubitOpsExecutedOnce.
Referenced by BenchmarkAndLogExecution(), BenchmarkAndLogPauliExpectation(), and BenchmarkAndLogSampling().
|
inlinestatic |
Definition at line 561 of file ExecutionCost.h.
References Simulators::SimulatorsFactory::CreateSimulator(), and Simulators::kMatrixProductState.
Referenced by MeasureExecutionTime(), MeasurePauliExpectationTime(), and MeasureSamplingTime().
|
inlinestatic |
Definition at line 495 of file ExecutionCost.h.
References GetSimulator().
Referenced by BenchmarkAndLogExecution().
|
inlinestatic |
Definition at line 546 of file ExecutionCost.h.
References GetSimulator().
Referenced by BenchmarkAndLogPauliExpectation().
|
inlinestatic |
Definition at line 508 of file ExecutionCost.h.
References GetSimulator().
Referenced by BenchmarkAndLogSampling().
|
inlinestatic |
Definition at line 616 of file ExecutionCost.h.
References Estimators::ExecutionCost::ExecutionInfo::executionCost, Estimators::ExecutionCost::ExecutionInfo::maxBondDim, Estimators::ExecutionCost::CircuitInfo::nrEndMeasurementOps, Estimators::ExecutionCost::CircuitInfo::nrMiddleMeasurementOps, Estimators::ExecutionCost::CircuitInfo::nrOneQubitOps, Estimators::ExecutionCost::CircuitInfo::nrOneQubitOpsExecutedOnce, Estimators::ExecutionCost::ExecutionInfo::nrPauliOps, Estimators::ExecutionCost::CircuitInfo::nrQubits, Estimators::ExecutionCost::ExecutionInfo::nrQubitsSampled, Estimators::ExecutionCost::ExecutionInfo::nrSamples, Estimators::ExecutionCost::CircuitInfo::nrThreeQubitOps, Estimators::ExecutionCost::CircuitInfo::nrThreeQubitOpsExecutedOnce, Estimators::ExecutionCost::CircuitInfo::nrTwoQubitOps, Estimators::ExecutionCost::CircuitInfo::nrTwoQubitOpsExecutedOnce, and Estimators::ExecutionCost::ExecutionInfo::samplingCost.