|
Maestro 0.2.5
Unified interface for quantum circuit simulation
|
The scheduler interface. More...
#include <Scheduler.h>
Inheritance diagram for Schedulers::IScheduler< Time >:
Collaboration diagram for Schedulers::IScheduler< Time >: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 115 of file Scheduler.h.
| using Schedulers::IScheduler< Time >::ExecuteResults = typename NetworkClass::ExecuteResults |
Definition at line 118 of file Scheduler.h.
| using Schedulers::IScheduler< Time >::NetworkClass = typename Network::INetwork<Time> |
Definition at line 117 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.
| circuits | The circuits to execute, along with the number of shots. |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
inline |
Definition at line 126 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 122 of file Scheduler.h.
|
pure virtual |
|
pure virtual |