|
Maestro 0.3.11
Unified interface for quantum circuit simulation
|
The scheduler interface. More...
#include <Scheduler.h>
Public Types | |
| using | ExecuteResults = typename NetworkClass::ExecuteResults |
| using | NetworkClass = typename Network::INetwork<Time> |
Public Member Functions | |
| virtual | ~IScheduler ()=default |
| virtual void | CollectResults (const ExecuteResults &res, size_t nrShots)=0 |
| virtual void | CollectResultsForHost (const ExecuteResults &res, size_t hostId, size_t nrShots)=0 |
| virtual void | ExecuteCurrentStep ()=0 |
| virtual std::vector< ExecuteResults > | ExecuteScheduled (const std::vector< ExecuteCircuit< Time > > &circuits)=0 |
| Schedule and execute circuits on the network. | |
| virtual std::vector< ExecuteResults > | ExecuteScheduledSteps ()=0 |
| virtual bool | GetAddResetsAtEnd () const =0 |
| virtual bool | GetAddResetsAtStart () const =0 |
| virtual size_t | GetCurrentShots () const =0 |
| virtual bool | GetDepthEstimationMethod () const =0 |
| std::shared_ptr< NetworkClass > | GetNetwork () const |
| virtual std::vector< ExecuteResults > | GetResults () const =0 |
| virtual std::shared_ptr< Circuits::Circuit< Time > > | GetScheduledCircuit () const =0 |
| virtual std::shared_ptr< Circuits::Circuit< Time > > | GetScheduledCircuitForHost (size_t hostId) const =0 |
| virtual const std::vector< std::vector< CircuitInfo< Time > > > & | GetScheduledSteps () const =0 |
| virtual Network::SchedulerType | GetType () const =0 |
| virtual bool | GetUseCost () const =0 |
| virtual void | SetAddResetsAtEnd (bool addResets=true)=0 |
| virtual void | SetAddResetsAtStart (bool addResets=true)=0 |
| virtual bool | SetCurrentStep (size_t step)=0 |
| virtual void | SetDepthEstimationMethod (bool useSteps=true)=0 |
| virtual void | SetNetwork (const std::shared_ptr< NetworkClass > &n) |
| virtual void | SetScheduledSteps (const std::vector< std::vector< CircuitInfo< Time > > > &steps)=0 |
| virtual void | SetUseCost (bool useCost=true)=0 |
The scheduler interface.
The scheduler interface. Must be derived from by the particular scheduler implementations.
| Time | The time type to use for the scheduler. |
Definition at line 116 of file Scheduler.h.
| using Schedulers::IScheduler< Time >::ExecuteResults = typename NetworkClass::ExecuteResults |
Definition at line 120 of file Scheduler.h.
| using Schedulers::IScheduler< Time >::NetworkClass = typename Network::INetwork<Time> |
Definition at line 119 of file Scheduler.h.
|
virtualdefault |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
Schedule and execute circuits on the network.
Execute the circuits on the network, scheduling their execution and distributing the operations to the hosts. The way the circuits are distributed to the hosts depends on the specific interface implementations. The way they are scheduled depends on the network scheduler and parametrization.
| Circuit Representation | The circuits to execute, along with the number of shots. |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
inline |
Definition at line 129 of file Scheduler.h.
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
inlinevirtual |
Definition at line 124 of file Scheduler.h.
|
pure virtual |
|
pure virtual |