|
Maestro 0.1.0
Unified interface for quantum circuit simulation
|
The scheduler interface. More...
#include <Scheduler.h>
Public Types | |
| using | NetworkClass = typename Network::INetwork<Time> |
| using | ExecuteResults = typename NetworkClass::ExecuteResults |
Public Member Functions | |
| virtual | ~IScheduler ()=default |
| virtual void | SetNetwork (const std::shared_ptr< NetworkClass > &n) |
| std::shared_ptr< NetworkClass > | GetNetwork () const |
| virtual std::vector< ExecuteResults > | ExecuteScheduled (const std::vector< ExecuteCircuit< Time > > &circuits)=0 |
| Schedule and execute circuits on the network. | |
| virtual std::shared_ptr< Circuits::Circuit< Time > > | GetScheduledCircuit () const =0 |
| virtual std::vector< ExecuteResults > | ExecuteScheduledSteps ()=0 |
| virtual const std::vector< std::vector< CircuitInfo< Time > > > & | GetScheduledSteps () const =0 |
| virtual void | SetScheduledSteps (const std::vector< std::vector< CircuitInfo< Time > > > &steps)=0 |
| virtual bool | SetCurrentStep (size_t step)=0 |
| virtual std::shared_ptr< Circuits::Circuit< Time > > | GetScheduledCircuitForHost (size_t hostId) const =0 |
| virtual size_t | GetCurrentShots () const =0 |
| virtual void | ExecuteCurrentStep ()=0 |
| virtual void | SetDepthEstimationMethod (bool useSteps=true)=0 |
| virtual bool | GetDepthEstimationMethod () const =0 |
| virtual void | SetUseCost (bool useCost=true)=0 |
| virtual bool | GetUseCost () const =0 |
| virtual void | SetAddResetsAtEnd (bool addResets=true)=0 |
| virtual bool | GetAddResetsAtEnd () const =0 |
| virtual void | SetAddResetsAtStart (bool addResets=true)=0 |
| virtual bool | GetAddResetsAtStart () const =0 |
| virtual std::vector< ExecuteResults > | GetResults () const =0 |
| virtual void | CollectResults (const ExecuteResults &res, size_t nrShots)=0 |
| virtual void | CollectResultsForHost (const ExecuteResults &res, size_t hostId, size_t nrShots)=0 |
| virtual Network::SchedulerType | GetType () const =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 111 of file Scheduler.h.
| using Schedulers::IScheduler< Time >::ExecuteResults = typename NetworkClass::ExecuteResults |
Definition at line 114 of file Scheduler.h.
| using Schedulers::IScheduler< Time >::NetworkClass = typename Network::INetwork<Time> |
Definition at line 113 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 122 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 118 of file Scheduler.h.
|
pure virtual |
|
pure virtual |