|
Maestro 0.2.11
Unified interface for quantum circuit simulation
|
#include <ExecutionCost.h>
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, const std::string &logFilePath, size_t startBondDim=16, size_t endBondDim=16) |
| 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, const std::string &logFilePath, size_t startBondDim=16, size_t endBondDim=16) |
| 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, const std::string &logFilePath, size_t startBondDim=16, size_t endBondDim=16) |
| 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, size_t nrBranchingGatesLimit=0) |
| static CircuitInfo | GetCircuitInfo (const std::shared_ptr< Circuits::Circuit<> > &circuit) |
| static std::shared_ptr< Utils::MultipleLinearRegression > | GetRegressor (const std::string &logFilePath, const std::vector< size_t > &featureIndices) |
| 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 48 of file ExecutionCost.h.
|
inlinestatic |
Definition at line 1056 of file ExecutionCost.h.
References EstimateExecutionCost(), GetCircuitInfo(), Utils::LogFile::Log(), and MeasureExecutionTime().
|
inlinestatic |
Definition at line 860 of file ExecutionCost.h.
References BenchmarkAndLogExecution(), GenerateRandomCircuit(), Simulators::kPathIntegral, Simulators::kPauliPropagator, and Simulators::kStabilizer.
Referenced by BenchmarkAndLogExecution().
|
inlinestatic |
Definition at line 1106 of file ExecutionCost.h.
References EstimatePauliExpectationCost(), GetCircuitInfo(), Utils::LogFile::Log(), and MeasurePauliExpectationTime().
|
inlinestatic |
Definition at line 946 of file ExecutionCost.h.
References BenchmarkAndLogPauliExpectation(), GeneratePauliString(), GenerateRandomCircuit(), Simulators::kPathIntegral, Simulators::kPauliPropagator, and Simulators::kStabilizer.
Referenced by BenchmarkAndLogPauliExpectation().
|
inlinestatic |
Definition at line 1082 of file ExecutionCost.h.
References EstimateSamplingCost(), GetCircuitInfo(), Utils::LogFile::Log(), and MeasureSamplingTime().
|
inlinestatic |
Definition at line 999 of file ExecutionCost.h.
References BenchmarkAndLogSampling(), GenerateRandomCircuit(), Simulators::kPathIntegral, Simulators::kPauliPropagator, and Simulators::kStabilizer.
Referenced by BenchmarkAndLogSampling().
|
inlinestatic |
Definition at line 136 of file ExecutionCost.h.
References Simulators::QcsimPauliPropagator::GetCost(), Circuits::kConditionalGate, Circuits::kConditionalMeasurement, Circuits::kGate, Simulators::kMatrixProductState, Circuits::kMeasurement, Simulators::kPathIntegral, Simulators::kPauliPropagator, Circuits::kReset, Simulators::kStabilizer, and Simulators::kStatevector.
Referenced by BenchmarkAndLogExecution(), and EstimatePauliExpectationCost().
|
inlinestatic |
Definition at line 519 of file ExecutionCost.h.
References EstimateExecutionCost(), Simulators::QcsimPauliPropagator::GetCost(), Simulators::kMatrixProductState, Simulators::kPathIntegral, Simulators::kPauliPropagator, Simulators::kStabilizer, and Simulators::kStatevector.
Referenced by BenchmarkAndLogPauliExpectation().
|
inlinestatic |
Definition at line 247 of file ExecutionCost.h.
References Simulators::QcsimPauliPropagator::GetSamplingCost(), Circuits::kConditionalGate, Circuits::kConditionalMeasurement, Circuits::kGate, Simulators::kMatrixProductState, Circuits::kMeasurement, Simulators::kPathIntegral, Simulators::kPauliPropagator, Circuits::kReset, Simulators::kStabilizer, and Simulators::kStatevector.
Referenced by BenchmarkAndLogSampling().
|
inlinestatic |
Definition at line 918 of file ExecutionCost.h.
Referenced by BenchmarkAndLogPauliExpectation().
|
inlinestatic |
Definition at line 568 of file ExecutionCost.h.
References Circuits::CircuitFactory< Time >::CreateGate(), Circuits::kCCXGateType, and Circuits::kUGateType.
Referenced by BenchmarkAndLogExecution(), BenchmarkAndLogPauliExpectation(), and BenchmarkAndLogSampling().
|
inlinestatic |
Definition at line 759 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 1138 of file ExecutionCost.h.
References ReadLog().
|
inlinestatic |
Definition at line 745 of file ExecutionCost.h.
References Simulators::SimulatorsFactory::CreateSimulator(), and Simulators::kMatrixProductState.
Referenced by MeasureExecutionTime(), MeasurePauliExpectationTime(), and MeasureSamplingTime().
|
inlinestatic |
Definition at line 679 of file ExecutionCost.h.
References GetSimulator().
Referenced by BenchmarkAndLogExecution().
|
inlinestatic |
Definition at line 730 of file ExecutionCost.h.
References GetSimulator().
Referenced by BenchmarkAndLogPauliExpectation().
|
inlinestatic |
Definition at line 692 of file ExecutionCost.h.
References GetSimulator().
Referenced by BenchmarkAndLogSampling().
|
inlinestatic |
Definition at line 800 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::runtime.
Referenced by GetRegressor().