|
Maestro 0.3.11
Unified interface for quantum circuit simulation
|
The simple network implementation. More...
#include <SimpleDisconnectedNetwork.h>
Public Types | |
| using | BaseClass = INetwork<Time> |
| The base class type. | |
| using | ExecuteResults = typename BaseClass::ExecuteResults |
| The execute results type. | |
| using | SimulatorPair |
| using | SimulatorsSet |
Public Member Functions | |
| SimpleDisconnectedNetwork (const std::vector< Types::qubit_t > &qubits={}, const std::vector< size_t > &cbits={}) | |
| The constructor. | |
| void | AddOptimizationSimulator (Simulators::SimulatorType type, Simulators::SimulationType kind) override |
| Adds a simulator to the simulators optimization set. | |
| bool | AreClassicalBitsOnSameHost (size_t bitId1, size_t bitId2) const override |
| Check if the specified classical bits are on the same host. | |
| bool | AreEntanglementQubitsBusy (size_t qubitId1, size_t qubitId2) const override |
| Check if any of the two specified qubits used for entanglement between hosts are busy. | |
| bool | AreQubitAndClassicalBitOnSameHost (size_t qubitId, size_t bitId) const override |
| Check if the specified qubit and classical bit are on the same host. | |
| bool | AreQubitsOnSameHost (size_t qubitId1, size_t qubitId2) const override |
| Check if the specified qubits are on the same host. | |
| virtual std::shared_ptr< Simulators::ISimulator > | ChooseBestSimulator (std::shared_ptr< Circuits::Circuit< Types::time_type > > &dcirc, size_t &counts, size_t nrQubits, size_t nrCbits, size_t nrResultCbits, Simulators::SimulatorType &simType, Simulators::SimulationType &method, std::vector< bool > &executed, bool multithreading=false, bool dontRunCircuitStart=false)=0 |
| Choose the best simulator for the given circuit. | |
| std::shared_ptr< Simulators::ISimulator > | ChooseBestSimulator (std::shared_ptr< Circuits::Circuit< Time > > &dcirc, size_t &counts, size_t nrQubits, size_t nrCbits, size_t nrResultCbits, Simulators::SimulatorType &simType, Simulators::SimulationType &method, std::vector< bool > &executed, bool multithreading=false, bool dontRunCircuitStart=false) override |
| void | ClearEntanglements () override |
| Clear all entanglements between hosts in the network. | |
| std::shared_ptr< INetwork< Time > > | Clone () const override |
| Clone the network. | |
| void | Configure (const char *key, const char *value) override |
| Configures the network. | |
| void | CreateNetwork (const std::vector< Types::qubit_t > &qubits, const std::vector< size_t > &cbits) |
| Creates the network hosts and controller. | |
| void | CreateScheduler (SchedulerType schType=SchedulerType::kNoEntanglementQubitsParallel) override |
| Create the scheduler for the network. | |
| void | CreateSimulator (Simulators::SimulatorType simType=Simulators::SimulatorType::kQCSim, Simulators::SimulationType simExecType=Simulators::SimulationType::kMatrixProductState, size_t nrQubits=0) override |
| Create the simulator for the network. | |
| virtual void | Execute (const std::shared_ptr< Circuits::Circuit< Types::time_type > > &circuit)=0 |
| Execute the circuit on the network. | |
| void | Execute (const std::shared_ptr< Circuits::Circuit< Time > > &circuit) override |
| Execute the circuit on the network. | |
| virtual std::vector< double > | ExecuteExpectations (const std::shared_ptr< Circuits::Circuit< Types::time_type > > &circuit, const std::vector< std::string > &paulis)=0 |
| Execute the circuit on the network and return the expectation values for the specified Pauli strings. | |
| std::vector< double > | ExecuteExpectations (const std::shared_ptr< Circuits::Circuit< Time > > &circuit, const std::vector< std::string > &paulis) override |
| Execute the circuit on the network and return the expectation values for the specified Pauli strings. | |
| virtual void | ExecuteOnHost (const std::shared_ptr< Circuits::Circuit< Types::time_type > > &circuit, size_t hostId)=0 |
| Execute the circuit on the specified host. | |
| void | ExecuteOnHost (const std::shared_ptr< Circuits::Circuit< Time > > &circuit, size_t hostId) override |
| Execute the circuit on the specified host. | |
| virtual std::vector< std::complex< double > > | ExecuteOnHostAmplitudes (const std::shared_ptr< Circuits::Circuit< Types::time_type > > &circuit, size_t hostId)=0 |
| Execute the circuit on the specified host and return the full statevector (complex amplitudes for each basis state). | |
| std::vector< std::complex< double > > | ExecuteOnHostAmplitudes (const std::shared_ptr< Circuits::Circuit< Time > > &circuit, size_t hostId) override |
| Execute circuit on host and return full statevector amplitudes. | |
| virtual std::vector< double > | ExecuteOnHostExpectations (const std::shared_ptr< Circuits::Circuit< Types::time_type > > &circuit, size_t hostId, const std::vector< std::string > &paulis)=0 |
| Execute the circuit on the specified host and return the expectation values for the specified Pauli strings. | |
| std::vector< double > | ExecuteOnHostExpectations (const std::shared_ptr< Circuits::Circuit< Time > > &circuit, size_t hostId, const std::vector< std::string > &paulis) override |
| Execute the circuit on the specified host and return the expectation values for the specified Pauli strings. | |
| virtual std::complex< double > | ExecuteOnHostProjectOnZero (const std::shared_ptr< Circuits::Circuit< Types::time_type > > &circuit, size_t hostId)=0 |
| Execute circuit on host and return the projection onto the zero state. | |
| std::complex< double > | ExecuteOnHostProjectOnZero (const std::shared_ptr< Circuits::Circuit< Time > > &circuit, size_t hostId) override |
| Execute circuit on host and return the projection onto the zero state. | |
| virtual std::vector< ExecuteResults > | ExecuteScheduled (const std::vector< Schedulers::ExecuteCircuit< Types::time_type > > &circuits)=0 |
| Schedule and execute circuits on the network. | |
| std::vector< ExecuteResults > | ExecuteScheduled (const std::vector< Schedulers::ExecuteCircuit< Time > > &circuits) override |
| Schedule and execute circuits on the network. | |
| virtual bool | ExpectsClassicalBitFromOtherHost (const std::shared_ptr< Circuits::IOperation< Types::time_type > > &op) const=0 |
| Checks if a gate expects a classical bit from another host. | |
| bool | ExpectsClassicalBitFromOtherHost (const std::shared_ptr< Circuits::IOperation< Time > > &op) const override |
| Checks if a gate expects a classical bit from another host. | |
| std::vector< size_t > | GetClassicalBitsIds (size_t hostId) const override |
| Get the classical bit ids for the specified host. | |
| const std::shared_ptr< IController< Time > > | GetController () const override |
| Get the controller for the network. | |
| size_t | GetCurrentMaxBondDimension () const override |
| Returns the maximum bond dimension reached. | |
| std::shared_ptr< Circuits::Circuit< Time > > | GetDistributedCircuit () const override |
| Get the distributed circuit. | |
| std::vector< size_t > | GetEntangledQubitMeasurementBitIds (size_t hostId) const override |
| Get the classical bit ids used for measurement of entanglement qubits between the hosts for the specified host. | |
| bool | GetGateFusion () const override |
| virtual int | GetGpuDevice () const |
| double | getGrowthFactorGate () const override |
| double | getGrowthFactorSwap () const override |
| const std::shared_ptr< IHost< Time > > | GetHost (size_t hostId) const override |
| Get the host with the specified id. | |
| size_t | GetHostIdForAnyQubit (size_t qubitId) const override |
| Get the host id for the specified qubit. | |
| size_t | GetHostIdForClassicalBit (size_t classicalBitId) const override |
| Get the host id for the specified classical bit. | |
| virtual size_t | GetHostIdForClassicalControl (const std::shared_ptr< Circuits::IOperation< Types::time_type > > &op) const=0 |
| Get the host id where the classical control bit resides for a conditioned gate. | |
| size_t | GetHostIdForClassicalControl (const std::shared_ptr< Circuits::IOperation< Time > > &op) const override |
| Get the host id where the classical control bit resides for a conditioned gate. | |
| size_t | GetHostIdForEntangledQubit (size_t qubitId) const override |
| Get the host id for the specified qubit used for entanglement between hosts. | |
| size_t | GetHostIdForQubit (size_t qubitId) const override |
| Get the host id for the specified qubit. | |
| std::vector< std::shared_ptr< IHost< Time > > > & | GetHosts () |
| Get the hosts in the network. | |
| bool | GetInitialQubitsMapOptimization () const override |
| unsigned | GetLastGateFusionMaxQubits () const override |
| int | GetLastGpuDevice () const override |
| Get the last used simulator type. | |
| Simulators::SimulationType | GetLastSimulationType () const override |
| Get the last used simulation type. | |
| Simulators::SimulatorType | GetLastSimulatorType () const override |
| Get the last used simulator type. | |
| int | GetLookaheadDepth () const override |
| int | GetLookaheadDepthWithHeuristic () const override |
| size_t | GetMaxSimulators () const override |
| Get the maximum number of simulators that can be used in the network. | |
| size_t | GetMPSOptimizationBondDimensionThreshold () const override |
| size_t | GetMPSOptimizationQubitsNumberThreshold () const override |
| bool | GetMPSOptimizeSwaps () const override |
| std::vector< size_t > | GetNetworkEntangledQubitsIds (size_t hostId) const override |
| Get the qubit ids used for entanglement between hosts for the specified host. | |
| virtual size_t | GetNumberOfGatesDistributedOrCut (const std::shared_ptr< Circuits::Circuit< Types::time_type > > &circuit) const=0 |
| Get the number of gates that span more than one host. | |
| size_t | GetNumberOfGatesDistributedOrCut (const std::shared_ptr< Circuits::Circuit< Time > > &circuit) const override |
| Get the number of gates that span more than one host. | |
| size_t | GetNumClassicalBits () const override |
| Get the number of classical bits in the network. | |
| size_t | GetNumClassicalBitsForHost (size_t hostId) const override |
| Get the number of classical bits in the network for the specified host. | |
| size_t | GetNumHosts () const override |
| Get the number of hosts in the network. | |
| size_t | GetNumNetworkEntangledQubits () const override |
| Get the number of qubits used for entanglement between hosts. | |
| size_t | GetNumNetworkEntangledQubitsForHost (size_t hostId) const override |
| Get the number of qubits used for entanglement between hosts for the specified host. | |
| size_t | GetNumQubits () const override |
| Get the number of qubits in the network. | |
| size_t | GetNumQubitsForHost (size_t hostId) const override |
| Get the number of qubits in the network for the specified host. | |
| bool | GetOptimizeSimulator () const override |
| Returns the 'optimize' flag. | |
| std::shared_ptr< INetwork< Types::time_type > > | getptr () |
| Get a shared pointer to this object. | |
| std::vector< size_t > | GetQubitsIds (size_t hostId) const override |
| Get the qubit ids for the specified host. | |
| std::shared_ptr< Schedulers::IScheduler< Time > > | GetScheduler () const override |
| Get the scheduler for the network. | |
| std::shared_ptr< Simulators::ISimulator > | GetSimulator () const override |
| Get the simulator for the network. | |
| const BaseClass::SimulatorsSet & | GetSimulatorsSet () const override |
| Get the optimizations simulators set. | |
| Circuits::OperationState & | GetState () override |
| Get the classical state of the network. | |
| virtual std::vector< std::vector< std::string > > | GetSubroutinesTextCode () const |
| Get the text code that is executed on the hosts. | |
| double | GetTrajectoryMinWorkerMicros () const |
| NetworkType | GetType () const override |
| Get the type of the network. | |
| virtual bool | IsDistributedOperation (const std::shared_ptr< Circuits::IOperation< Types::time_type > > &op) const=0 |
| Check if the circuit operation is distributed. | |
| bool | IsDistributedOperation (const std::shared_ptr< Circuits::IOperation< Time > > &op) const override |
| Check if the circuit operation is distributed. | |
| bool | IsEntanglementQubitBusy (size_t qubitId) const override |
| Check if the specified qubit used for entanglement between hosts is busy. | |
| virtual bool | IsEntanglingGate (const std::shared_ptr< Circuits::IOperation< Types::time_type > > &op) const=0 |
| Checks if a gate is an entangling gate. | |
| bool | IsEntanglingGate (const std::shared_ptr< Circuits::IOperation< Time > > &op) const override |
| Checks if a gate is an entangling gate. | |
| virtual bool | IsLocalOperation (const std::shared_ptr< Circuits::IOperation< Types::time_type > > &op) const=0 |
| Check if the circuit operation is local. | |
| bool | IsLocalOperation (const std::shared_ptr< Circuits::IOperation< Time > > &op) const override |
| Check if the circuit operation is local. | |
| bool | IsNetworkEntangledQubit (size_t qubitId) const override |
| Check if the specified qubit id is for a qubit used for entanglement between hosts. | |
| void | MarkEntangledQubitFree (size_t qubitId) override |
| Mark the specified qubit used for entanglement between hosts as free. | |
| void | MarkEntangledQubitsBusy (size_t qubitId1, size_t qubitId2) override |
| Mark the pair of the specified qubits used for entanglement between hosts as busy. | |
| virtual bool | OperatesWithNetworkEntangledQubit (const std::shared_ptr< Circuits::IOperation< Types::time_type > > &op) const=0 |
| Check if the circuit operation operates on the entanglement qubits between hosts. | |
| bool | OperatesWithNetworkEntangledQubit (const std::shared_ptr< Circuits::IOperation< Time > > &op) const override |
| Check if the circuit operation operates on the entanglement qubits between hosts. | |
| bool | OptimizationSimulatorExists (Simulators::SimulatorType type, Simulators::SimulationType kind) const override |
| Checks if a simulator exists in the optimization set. | |
| void | RemoveAllOptimizationSimulatorsAndAdd (Simulators::SimulatorType type, Simulators::SimulationType kind) override |
| Removes all simulators from the simulators optimization set and adds the one specified. | |
| void | RemoveOptimizationSimulator (Simulators::SimulatorType type, Simulators::SimulationType kind) override |
| Removes a simulator from the simulators optimization set. | |
| virtual ExecuteResults | RepeatedExecute (const std::shared_ptr< Circuits::Circuit< Types::time_type > > &circuit, size_t shots=1000)=0 |
| Execute the circuit on the network, repeatedly. | |
| ExecuteResults | RepeatedExecute (const std::shared_ptr< Circuits::Circuit< Time > > &circuit, size_t shots=1000) override |
| Execute the circuit on the network, repeatedly. | |
| ExecuteResults | RepeatedExecuteCircuit (const Schedulers::ExecuteCircuit< Types::time_type > &executeCircuit) |
| Execute the circuit on the network, repeatedly. | |
| ExecuteResults | RepeatedExecuteCircuitOnHost (const Schedulers::ExecuteCircuit< Types::time_type > &executeCircuit, size_t hostId) |
| Execute the circuit on the specified host, repeatedly. | |
| virtual ExecuteResults | RepeatedExecuteOnHost (const std::shared_ptr< Circuits::Circuit< Types::time_type > > &circuit, size_t hostId, size_t shots=1000)=0 |
| Execute the circuit on the specified host, repeatedly. | |
| ExecuteResults | RepeatedExecuteOnHost (const std::shared_ptr< Circuits::Circuit< Time > > &circuit, size_t hostId, size_t shots=1000) override |
| Execute the circuit on the specified host, repeatedly. | |
| bool | SendPacket (size_t fromHostId, size_t toHostId, const std::vector< uint8_t > &packet) override |
| Sends a packet between two hosts. | |
| void | SetController (const std::shared_ptr< IController< Time > > &cntrl) |
| Set the network controller host. | |
| void | setGrowthFactorGate (double factor) override |
| void | setGrowthFactorSwap (double factor) override |
| void | SetInitialQubitsMapOptimization (bool optimize=true) override |
| void | SetLookaheadDepth (int depth) override |
| void | SetLookaheadDepthWithHeuristic (int depth) override |
| void | SetMaxSimulators (size_t val) override |
| Set the maximum number of simulators that can be used in the network. | |
| void | SetMPSOptimizationBondDimensionThreshold (size_t threshold) override |
| void | SetMPSOptimizationQubitsNumberThreshold (size_t threshold) override |
| void | SetMPSOptimizeSwaps (bool optimize=true) override |
| void | SetOptimizeSimulator (bool optimize=true) override |
| Allows using an optimized simulator. | |
| void | SetTrajectoryMinWorkerMicros (double micros) |
| Set the estimated work per trajectory worker. | |
| bool | WasGateFusionEnabled () const override |
Protected Member Functions | |
| void | CaptureSimulatorConfiguration () |
| void | ConvertBackResults (ExecuteResults &res) |
| Converts back the results from the optimized network distribution mapping. | |
| void | ConvertBackResults (ExecuteResults &res, const std::unordered_map< Types::qubit_t, Types::qubit_t > &bitsMap) const |
| Converts back the results using the passed qubits map. | |
| void | ConvertBackState () |
| Converts back the state from the optimized network distribution mapping. | |
| void | ConvertBackState (const std::unordered_map< Types::qubit_t, Types::qubit_t > &qubitsMap) |
| Converts back the state using the passed qubits map. | |
| void | ExecuteLogicalShotBlocks (const std::shared_ptr< Circuits::Circuit< Time > > &circuit, ExecuteResults &results, size_t shots, size_t workers, size_t qubits, size_t cbits, size_t resultBits, Simulators::SimulatorType type, Simulators::SimulationType method, const std::shared_ptr< Simulators::ISimulator > &prepared, const std::vector< bool > &executed, std::mutex &resultsMutex) |
| Configuration< Time > | ExecutionConfiguration (Simulators::SimulatorType type, size_t qubits) const |
| std::unordered_map< Types::qubit_t, Types::qubit_t > | MapCircuitOnHost (const std::shared_ptr< Circuits::Circuit< Time > > &circuit, size_t hostId, size_t &nrQubits, size_t &nrCbits, bool useSeparateSimForHosts=false) |
| Map the circuit on the host. | |
| void | OptimizeMPSInitialQubitsMap (std::shared_ptr< Simulators::ISimulator > &sim, std::shared_ptr< Circuits::Circuit< Time > > &dcirc, size_t nrQubits) const |
| void | RecreateSimulatorKeepingResults (Simulators::SimulatorType simType, Simulators::SimulationType method) |
| size_t | TrajectoryWorkersForWork (const std::shared_ptr< Circuits::Circuit< Time > > &circuit, size_t shots, size_t qubits, Simulators::SimulationType method, const std::vector< bool > &executed) const |
| bool | UsesReproducibleSampling (Simulators::SimulatorType type, Simulators::SimulationType method) const |
Protected Attributes | |
| Circuits::OperationState | classicalState |
| The classical state of the network. | |
| Configuration< Time > | configuration |
| std::shared_ptr< IController< Time > > | controller |
| The controller for the network. | |
| std::shared_ptr< Circuits::Circuit< Time > > | distCirc |
| The distributed circuit. | |
| std::string | distributedHostQubitIndexing = "auto" |
| std::vector< std::shared_ptr< IHost< Time > > > | hosts |
| The hosts in the network. | |
| std::atomic< bool > | lastFusionEnabled {false} |
| std::atomic< unsigned > | lastFusionWidth {0} |
| int | lastGpuDevice = -1 |
| Simulators::SimulationType | lastMethod = Simulators::SimulationType::kStatevector |
| The last simulation method used. | |
| Simulators::SimulatorType | lastSimulatorType = Simulators::SimulatorType::kQCSim |
| The last simulator type used. | |
| size_t | maxSimulators = QC::QubitRegisterCalculator<>::GetNumberOfThreads() |
| The maximum number of simulators that can be used in the network. | |
| bool | optimizeSimulator = true |
| The flag to optimize the simulator. | |
| bool | recreateIfNeeded = true |
| The flag to recreate the simulator if needed. | |
| bool | resetBeforeExecution = true |
| std::unordered_map< Simulators::SimulatorType, std::string > | resolvedDistributedDevices |
| std::shared_ptr< Simulators::ISimulator > | simulator |
| The quantum computing simulator for the network. | |
| std::unique_ptr< Estimators::SimulatorsEstimatorInterface< Time > > | simulatorsEstimator |
| The simulators estimator. | |
| BaseClass::SimulatorsSet | simulatorsForOptimizations |
| double | trajectoryMinWorkerMicros = 100. |
| Estimated serial work per trajectory worker, see SetTrajectoryMinWorkerMicros. | |
The simple network implementation.
The simple network implementation. A simple network class, implementing a network containing a buch of hosts, no communication (classical or quantum) among them.
| Time | The time type used for execution times. |
Definition at line 46 of file SimpleDisconnectedNetwork.h.
| using Network::SimpleDisconnectedNetwork< Time, Controller >::BaseClass = INetwork<Time> |
The base class type.
Definition at line 49 of file SimpleDisconnectedNetwork.h.
| using Network::SimpleDisconnectedNetwork< Time, Controller >::ExecuteResults = typename BaseClass::ExecuteResults |
The execute results type.
Definition at line 50 of file SimpleDisconnectedNetwork.h.
|
inherited |
|
inherited |
|
inline |
The constructor.
Constructs the simple network object, creating the network hosts and the controller.
| qubits | The number of qubits for each host. |
| cbits | The number of classical bits for each host. |
Definition at line 61 of file SimpleDisconnectedNetwork.h.
|
inlineoverridevirtual |
Adds a simulator to the simulators optimization set.
Adds a simulator (if not already present) to the simulators optimization set.
| type | The type of the simulator to add. |
| kind | The kind of the simulation to add. |
Implements Network::INetwork< Types::time_type >.
Definition at line 2158 of file SimpleDisconnectedNetwork.h.
References simulatorsForOptimizations.
|
inlineoverridevirtual |
Check if the specified classical bits are on the same host.
Check if the specified classical are on the same host. This does not include the classical bits used for measuring the qubits used for entanglement between the hosts.
Implements Network::INetwork< Types::time_type >.
Definition at line 1699 of file SimpleDisconnectedNetwork.h.
References hosts.
|
inlineoverridevirtual |
Check if any of the two specified qubits used for entanglement between hosts are busy.
Check if any of the two specified qubits used for entanglement between hosts are busy. This is used to check if the qubits are free in order to use them for creating an entanglement between hosts. It's not used in the simple network, because it doesn't allow quantum communication between hosts.
| qubitId1 | The id of the first qubit to check. |
| qubitId2 | The id of the second qubit to check. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1932 of file SimpleDisconnectedNetwork.h.
|
inlineoverridevirtual |
Check if the specified qubit and classical bit are on the same host.
Check if the specified qubit and classical bit are on the same host. This does not include the qubits used for entanglement between the hosts and the classical bits used for their measurement.
Implements Network::INetwork< Types::time_type >.
Definition at line 1725 of file SimpleDisconnectedNetwork.h.
References hosts.
|
inlineoverridevirtual |
Check if the specified qubits are on the same host.
Check if the specified qubits are on the same host. This does not include the qubits used for entanglement between the hosts.
Implements Network::INetwork< Types::time_type >.
Definition at line 1674 of file SimpleDisconnectedNetwork.h.
References hosts.
Referenced by IsDistributedOperation(), and IsLocalOperation().
|
inlineprotected |
Definition at line 2600 of file SimpleDisconnectedNetwork.h.
References configuration, Simulators::IsDistributedGpuSimulator(), and simulator.
Referenced by RepeatedExecute(), and RepeatedExecuteOnHost().
|
pure virtualinherited |
Choose the best simulator for the given circuit.
Choose the best simulator for the given circuit, based on the number of qubits, number of classical bits, number of result classical bits and number of shots. The choice is made from the optimization simulators set.
WARNING: the circuit might be modified, depending on the chosen simulator and some optimization settings
| dcirc | The distributed circuit to choose the simulator for. |
| counts | The number of shots to be executed. |
| nrQubits | The number of qubits in the circuit. |
| nrCbits | The number of classical bits in the circuit. |
| nrResultCbits | The number of result classical bits in the circuit. |
| simType | The type of the chosen simulator. |
| method | The kind of simulation of the chosen simulator. |
| executed | A vector of bools marking the executed gates from the circuit (some of them might be executed when picking up the simulator - usually the gates from the beginning up to the measurements/resets). |
| multithreading | If true, allows simulators to support multithreading (default is false). Multithreading will be set to false if multithreading is implemented at a higher level (multiple simulators in parallel). |
|
inlineoverride |
Definition at line 2261 of file SimpleDisconnectedNetwork.h.
References configuration, Simulators::SimulatorsFactory::CreateSimulator(), Estimators::SimulatorsEstimatorInterface< Time >::ExecuteUpToMeasurements(), GetMaxSimulators(), Simulators::IsDistributedGpuSimulator(), Simulators::SimulatorsFactory::IsGpuLibraryAvailable(), Simulators::kCompositeQCSim, Simulators::kCompositeQiskitAer, Simulators::kGpuSim, Simulators::kMatrixProductOperator, Simulators::kMatrixProductState, Simulators::kPathIntegral, Simulators::kPauliPropagator, Simulators::kQCSim, Simulators::kQiskitAer, Simulators::kQuestSim, Simulators::kStabilizer, Simulators::kStatevector, Simulators::kTensorNetwork, OptimizationSimulatorExists(), OptimizeMPSInitialQubitsMap(), optimizeSimulator, Simulators::Configuration::ParseGpuDevice(), simulatorsEstimator, and simulatorsForOptimizations.
Referenced by RepeatedExecute(), and RepeatedExecuteOnHost().
|
inlineoverridevirtual |
Clear all entanglements between hosts in the network.
Clear all entanglements between hosts in the network. This marks all qubits used for entanglement between hosts as free. If the entanglements are explicitely coordinated in the network, all pairs of entangled qubits are released. It's not used in the simple network, because it doesn't allow quantum communication between hosts.
Implements Network::INetwork< Types::time_type >.
Definition at line 1979 of file SimpleDisconnectedNetwork.h.
|
inlineoverridevirtual |
Clone the network.
Clone the network in a pristine state.
Implements Network::INetwork< Types::time_type >.
Definition at line 2216 of file SimpleDisconnectedNetwork.h.
References configuration, distributedHostQubitIndexing, GetController(), getGrowthFactorGate(), getGrowthFactorSwap(), GetInitialQubitsMapOptimization(), GetLookaheadDepth(), GetLookaheadDepthWithHeuristic(), GetMPSOptimizationBondDimensionThreshold(), GetMPSOptimizationQubitsNumberThreshold(), GetMPSOptimizeSwaps(), GetNumClassicalBitsForHost(), GetNumHosts(), GetNumQubitsForHost(), GetSimulationType(), GetSimulator(), GetType(), maxSimulators, optimizeSimulator, resolvedDistributedDevices, simulatorsForOptimizations, and trajectoryMinWorkerMicros.
|
inlineoverridevirtual |
Configures the network.
This function is called to configure the network (for example the simulator(s) used by the network.
| key | The key of the configuration option. |
| value | The value of the configuration. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1164 of file SimpleDisconnectedNetwork.h.
References configuration, distributedHostQubitIndexing, Simulators::Configuration::GpuSvdSettingGroup(), Simulators::IsGpuSimulator(), Simulators::kCompositeQCSim, Simulators::kQCSim, maxSimulators, Simulators::Configuration::ParseGpuDevice(), resolvedDistributedDevices, and simulator.
|
inlineprotected |
Converts back the results from the optimized network distribution mapping.
Converts back the results from the optimized network distribution mapping. It's used only if there is an optimiser set, that is, there was a rempapping/optimizing of the circuit to be distributed.
| res | The results to convert back. |
Definition at line 2992 of file SimpleDisconnectedNetwork.h.
References controller, and ConvertBackResults().
Referenced by ConvertBackResults(), RepeatedExecute(), and RepeatedExecuteOnHost().
|
inlineprotected |
Converts back the results using the passed qubits map.
Converts back the results using the passed qubits map It's used only if there is an optimiser set, that is, there was a rempapping/optimizing of the circuit to be distributed. Or if there is an execution on a single host and the passed circuit had a different mapping for qubits than the host qubits.
| res | The results to convert back. |
| bitsMap | The map with the bits mapping. |
Definition at line 3016 of file SimpleDisconnectedNetwork.h.
References Circuits::OperationState::GetAllBits(), GetNumClassicalBits(), and Circuits::OperationState::Remap().
|
inlineprotected |
Converts back the state from the optimized network distribution mapping.
Converts back the state from the optimized network distribution mapping. It's used only if there is an optimiser set, that is, there was a rempapping/optimizing of the circuit to be distributed.
Definition at line 2951 of file SimpleDisconnectedNetwork.h.
References controller, and ConvertBackState().
Referenced by ConvertBackState().
|
inlineprotected |
Converts back the state using the passed qubits map.
Converts back the state using the passed qubits map. It's used only if there is an optimiser set, that is, there was a rempapping/optimizing of the circuit to be distributed. Or if there is an execution on a single host and the passed circuit had a different mapping for qubits than the host qubits.
| qubitsMap | The map with the qubits mapping. |
Definition at line 2974 of file SimpleDisconnectedNetwork.h.
References GetState(), and Circuits::OperationState::Remap().
|
inline |
Creates the network hosts and controller.
Creates the network hosts and controller with the specified number of qubits and classical bits.
| qubits | The number of qubits for each host. |
| cbits | The number of classical bits for each host. |
Definition at line 102 of file SimpleDisconnectedNetwork.h.
References controller, and hosts.
|
inlineoverridevirtual |
Create the scheduler for the network.
Creates the scheduler for the network. Call this only after the network topology has been set up. Should create the scheduler and set the network for it and any other necessary parameters.
| simType | The type of the scheduler to create. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1268 of file SimpleDisconnectedNetwork.h.
References controller, Network::INetwork< Time >::getptr(), and Network::kNoEntanglementQubitsParallel.
Referenced by ExecuteScheduled().
|
inlineoverridevirtual |
Create the simulator for the network.
Creates the simulator for the network. Call this only after the network topology has been set up. Should create the simulator with the proper number of qubits for the whole network and also set up a 'classical state' for the whole network and distribute the qubits and cbits to the hosts. The nrQubits parameter is used internally to allocate a simulator for a single host only - if a circuit is executed on a single host. Let it to the default value - 0 - to allocate the number of qubits for the whole network.
| simType | The type of the simulator to create. |
| simExecType | The type of the simulation - statevector, composite, matrix product state, stabilizer, tensor network... |
| nrQubits | The number of qubits to allocate for the simulator. Default is 0 - allocate the number of qubits for the whole network. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1123 of file SimpleDisconnectedNetwork.h.
References classicalState, configuration, Simulators::SimulatorsFactory::CreateSimulator(), ExecutionConfiguration(), GetNumClassicalBits(), GetNumNetworkEntangledQubits(), GetNumQubits(), Simulators::IsDistributedGpuSimulator(), Simulators::kGpuSim, Simulators::kMatrixProductState, Simulators::kQCSim, resolvedDistributedDevices, and simulator.
Referenced by RecreateSimulatorKeepingResults(), RepeatedExecute(), and RepeatedExecuteOnHost().
|
pure virtualinherited |
Execute the circuit on the network.
Execute the circuit on the network, using the controller for distributing the operations to the hosts. The base class functionality is used for circuit distribution, but then the distributed circuit is converted to netqasm. Ensure the quantum computing simulator and the netqasm virtual machines have been created before calling this.
| circuit | The circuit to execute. |
|
inlineoverride |
Execute the circuit on the network.
Execute the circuit on the network, using the controller for distributing the operations to the hosts. Ensure the quantum computing simulator has been created before calling this.
| circuit | The circuit to execute. |
Definition at line 137 of file SimpleDisconnectedNetwork.h.
References GetState(), Simulators::kMatrixProductState, Simulators::kQCSim, recreateIfNeeded, RecreateSimulatorKeepingResults(), RepeatedExecute(), resetBeforeExecution, Circuits::OperationState::SetResultsInOrder(), and simulator.
|
pure virtualinherited |
Execute the circuit on the network and return the expectation values for the specified Pauli strings.
Execute the circuit on the network, using the controller for distributing the operations to the hosts and return the expectation values for the specified Pauli strings. The base class functionality is used for circuit distribution, but then the distributed circuit is converted to netqasm. Ensure the quantum computing simulator and the netqasm virtual machines have been created before calling this.
| circuit | The circuit to execute. |
| paulis | The Pauli strings to measure the expectations for. |
|
inlineoverride |
Execute the circuit on the network and return the expectation values for the specified Pauli strings.
Execute the circuit on the network, using the controller for distributing the operations to the hosts and return the expectation values for the specified Pauli strings. The base class functionality is used for circuit distribution, but then the distributed circuit is converted to netqasm. Ensure the quantum computing simulator and the netqasm virtual machines have been created before calling this.
| circuit | The circuit to execute. |
| paulis | The Pauli strings to measure the expectations for. |
Definition at line 243 of file SimpleDisconnectedNetwork.h.
References controller, GetState(), Simulators::kMatrixProductState, Simulators::kQCSim, recreateIfNeeded, RecreateSimulatorKeepingResults(), RepeatedExecute(), Circuits::OperationState::SetResultsInOrder(), and simulator.
|
inlineprotected |
Definition at line 2624 of file SimpleDisconnectedNetwork.h.
References configuration, Simulators::IState::DeriveSeed(), ExecutionConfiguration(), Simulators::GenerateRandomSeed(), GetOptimizeSimulator(), Network::INetwork< Time >::getptr(), Simulators::kDensityMatrix, Simulators::kPathIntegral, Simulators::kStatevector, lastFusionEnabled, lastFusionWidth, recreateIfNeeded, resetBeforeExecution, simulator, trajectoryMinWorkerMicros, and TrajectoryWorkersForWork().
Referenced by RepeatedExecute(), and RepeatedExecuteOnHost().
|
pure virtualinherited |
Execute the circuit on the specified host.
Execute the circuit on the specified host. The circuit must fit on the host, otherwise an exception is thrown. The circuit will be mapped on the specified host, if its qubits start with indexing from 0 (if already mapped, the qubits won't be altered).
| circuit | The circuit to execute. |
| hostId | The id of the host to execute the circuit on. |
|
inlineoverride |
Execute the circuit on the specified host.
Execute the circuit on the specified host. The circuit must fit on the host, otherwise an exception is thrown. The circuit will be mapped on the specified host, if its qubits start with indexing from 0 (if already mapped, the qubits won't be altered).
| circuit | The circuit to execute. |
| hostId | The id of the host to execute the circuit on. |
Definition at line 196 of file SimpleDisconnectedNetwork.h.
References GetState(), Simulators::kMatrixProductState, Simulators::kQCSim, recreateIfNeeded, RecreateSimulatorKeepingResults(), RepeatedExecuteOnHost(), Circuits::OperationState::SetResultsInOrder(), and simulator.
|
pure virtualinherited |
Execute the circuit on the specified host and return the full statevector (complex amplitudes for each basis state).
Execute the circuit on the specified host and return the complex amplitudes of the resulting quantum state. The circuit must fit on the host, otherwise an exception is thrown. The circuit will be mapped on the specified host, if its qubits start with indexing from 0 (if already mapped, the qubits won't be altered).
| circuit | The circuit to execute. |
| hostId | The id of the host to execute the circuit on. |
|
inlineoverride |
Execute circuit on host and return full statevector amplitudes.
Execute the circuit on the specified host and return the complex amplitudes of the resulting quantum state (one per basis state 0..2^n-1). Retained qubits are ordered by ascending original index, with gaps compacted. Supported for Statevector and MPS simulation types.
| circuit | The circuit to execute. |
| hostId | The id of the host to execute the circuit on. |
Definition at line 441 of file SimpleDisconnectedNetwork.h.
References GetState(), Simulators::kMatrixProductState, Simulators::kQCSim, recreateIfNeeded, RecreateSimulatorKeepingResults(), RepeatedExecuteOnHost(), Circuits::OperationState::SetResultsInOrder(), and simulator.
|
pure virtualinherited |
Execute the circuit on the specified host and return the expectation values for the specified Pauli strings.
Execute the circuit on the specified host and return the expectation values for the specified Pauli strings. The circuit must fit on the host, otherwise an exception is thrown. The circuit will be mapped on the specified host, if its qubits start with indexing from 0 (if already mapped, the qubits won't be altered).
| circuit | The circuit to execute. |
| hostId | The id of the host to execute the circuit on. |
| paulis | The Pauli strings to measure the expectations for. |
|
inlineoverride |
Execute the circuit on the specified host and return the expectation values for the specified Pauli strings.
Execute the circuit on the specified host and return the expectation values for the specified Pauli strings. The circuit must fit on the host, otherwise an exception is thrown. The circuit will be mapped on the specified host, if its qubits start with indexing from 0 (if already mapped, the qubits won't be altered).
| circuit | The circuit to execute. |
| hostId | The id of the host to execute the circuit on. |
| paulis | The Pauli strings to measure the expectations for. |
Definition at line 333 of file SimpleDisconnectedNetwork.h.
References GetState(), Simulators::kMatrixProductState, Simulators::kQCSim, recreateIfNeeded, RecreateSimulatorKeepingResults(), RepeatedExecuteOnHost(), Circuits::OperationState::SetResultsInOrder(), and simulator.
|
pure virtualinherited |
Execute circuit on host and return the projection onto the zero state.
Execute the circuit on the specified host and return <0|Psi>, the inner product of the resulting quantum state with the all-zeros basis state. This is equivalent to Amplitude(0) but can be faster for certain simulator back-ends (e.g. MPS).
| circuit | The circuit to execute. |
| hostId | The id of the host to execute the circuit on. |
|
inlineoverride |
Execute circuit on host and return the projection onto the zero state.
Execute the circuit on the specified host and return <0|Psi>, the inner product of the resulting quantum state with the all-zeros basis state. This is equivalent to Amplitude(0) but can be faster for certain simulator back-ends (e.g. MPS).
| circuit | The circuit to execute. |
| hostId | The id of the host to execute the circuit on. |
Definition at line 535 of file SimpleDisconnectedNetwork.h.
References GetState(), Simulators::kMatrixProductState, Simulators::kQCSim, recreateIfNeeded, RecreateSimulatorKeepingResults(), RepeatedExecuteOnHost(), Circuits::OperationState::SetResultsInOrder(), and simulator.
|
pure virtualinherited |
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. |
|
inlineoverride |
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. |
Definition at line 1090 of file SimpleDisconnectedNetwork.h.
References CreateScheduler(), and GetScheduler().
|
inlineprotected |
Definition at line 2787 of file SimpleDisconnectedNetwork.h.
References configuration, distCirc, Simulators::IsDistributedGpuSimulator(), Simulators::kDistGpuSim, Simulators::kQCSim, and resolvedDistributedDevices.
Referenced by CreateSimulator(), ExecuteLogicalShotBlocks(), RepeatedExecute(), and RepeatedExecuteOnHost().
|
pure virtualinherited |
Checks if a gate expects a classical bit from another host.
It must be a conditional gate, conditioned on a classical bit from another host. Use it on already distributed gates, not on the original circuit.
| op | The operation to check. |
|
inlineoverride |
Checks if a gate expects a classical bit from another host.
It must be a conditional gate, conditioned on a classical bit from another host. Use it on already distributed gates, not on the original circuit.
| op | The operation to check. |
Definition at line 1616 of file SimpleDisconnectedNetwork.h.
References GetHostIdForAnyQubit(), and GetHostIdForClassicalBit().
|
inlineoverridevirtual |
Get the classical bit ids for the specified host.
Get the classical bit ids for the specified host, excluding the one(s) used for measurement of entanglemen qubits between the hosts.
| hostId | The id of the host to get the classical bit ids for. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1858 of file SimpleDisconnectedNetwork.h.
References hosts.
|
inlineoverridevirtual |
Get the controller for the network.
Gets a smart pointer to the controller for the network.
Implements Network::INetwork< Types::time_type >.
Definition at line 1317 of file SimpleDisconnectedNetwork.h.
References controller.
Referenced by Clone(), and RepeatedExecuteOnHost().
|
inlineoverridevirtual |
Returns the maximum bond dimension reached.
Returns the maximum bond dimension reached during execution, if applicable (mps simulator, either qcsim or gpu).
Reimplemented from Network::INetwork< Types::time_type >.
Definition at line 2592 of file SimpleDisconnectedNetwork.h.
|
inlineoverridevirtual |
Get the distributed circuit.
Get the distributed circuit. Execute() must be called first, otherwise the return would be nullptr.
Implements Network::INetwork< Types::time_type >.
Definition at line 1993 of file SimpleDisconnectedNetwork.h.
References distCirc.
|
inlineoverridevirtual |
Get the classical bit ids used for measurement of entanglement qubits between the hosts for the specified host.
Get the classical bit ids used for measurement of entanglement qubits between the hosts for the specified host.
| hostId | The id of the host to get the classical bit ids for. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1876 of file SimpleDisconnectedNetwork.h.
References hosts.
|
inlineoverridevirtual |
Reimplemented from Network::INetwork< Types::time_type >.
Definition at line 2020 of file SimpleDisconnectedNetwork.h.
References configuration, and simulator.
|
inlinevirtualinherited |
|
inlineoverridevirtual |
Reimplemented from Network::INetwork< Types::time_type >.
Definition at line 2565 of file SimpleDisconnectedNetwork.h.
Referenced by Clone().
|
inlineoverridevirtual |
Reimplemented from Network::INetwork< Types::time_type >.
Definition at line 2560 of file SimpleDisconnectedNetwork.h.
Referenced by Clone().
|
inlineoverridevirtual |
Get the host with the specified id.
Get a smart pointer to the host that has the specified id.
| hostId | The id of the host to get. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1301 of file SimpleDisconnectedNetwork.h.
References hosts.
Referenced by MapCircuitOnHost().
|
inlineoverridevirtual |
Get the host id for the specified qubit.
Get the host id for the squbit, including the qubits used for entanglement between hosts.
| qubitId | The id of the qubit to get the host id for. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1789 of file SimpleDisconnectedNetwork.h.
References GetHostIdForEntangledQubit(), GetHostIdForQubit(), and IsNetworkEntangledQubit().
Referenced by ExpectsClassicalBitFromOtherHost().
|
inlineoverridevirtual |
Get the host id for the specified classical bit.
Get the host id for the specified classical bit, excluding the one(s) used for measurement of entanglement qubits between the hosts.
| classicalBitId | The id of the classical bit to get the host id for. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1806 of file SimpleDisconnectedNetwork.h.
References hosts.
Referenced by ExpectsClassicalBitFromOtherHost(), and GetHostIdForClassicalControl().
|
pure virtualinherited |
Get the host id where the classical control bit resides for a conditioned gate.
It must be a conditional gate, conditioned on a qubit from another host. Use it on already distributed gates, not on the original circuit.
| op | The operation to find the host of the control bit. |
|
inlineoverride |
Get the host id where the classical control bit resides for a conditioned gate.
It must be a conditional gate, conditioned on a qubit from another host. Use it on already distributed gates, not on the original circuit.
| op | The operation to find the host of the control bit. |
Definition at line 1652 of file SimpleDisconnectedNetwork.h.
References GetHostIdForClassicalBit().
|
inlineoverridevirtual |
Get the host id for the specified qubit used for entanglement between hosts.
Get the host id for the specified qubit used for entanglement between hosts.
| qubitId | The id of the qubit used for entanglement between hosts to get the host id for. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1771 of file SimpleDisconnectedNetwork.h.
References hosts.
Referenced by GetHostIdForAnyQubit().
|
inlineoverridevirtual |
Get the host id for the specified qubit.
Get the host id for the specified qubit, excluding the qubits used for entanglement between hosts.
| qubitId | The id of the qubit to get the host id for. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1750 of file SimpleDisconnectedNetwork.h.
References hosts.
Referenced by GetHostIdForAnyQubit().
|
inline |
Get the hosts in the network.
Gets the hosts in the network.
Definition at line 1453 of file SimpleDisconnectedNetwork.h.
References hosts.
|
inlineoverridevirtual |
Implements Network::INetwork< Types::time_type >.
Definition at line 2468 of file SimpleDisconnectedNetwork.h.
Referenced by Clone().
|
inlineoverridevirtual |
Reimplemented from Network::INetwork< Types::time_type >.
Definition at line 2010 of file SimpleDisconnectedNetwork.h.
References lastFusionWidth.
|
inlineoverridevirtual |
Get the last used simulator type.
Get the last used simulator type.
Reimplemented from Network::INetwork< Types::time_type >.
Definition at line 2005 of file SimpleDisconnectedNetwork.h.
References lastGpuDevice.
|
inlineoverridevirtual |
Get the last used simulation type.
Get the last used simulation type.
Implements Network::INetwork< Types::time_type >.
Definition at line 2047 of file SimpleDisconnectedNetwork.h.
References lastMethod.
|
inlineoverridevirtual |
Get the last used simulator type.
Get the last used simulator type.
Implements Network::INetwork< Types::time_type >.
Definition at line 2035 of file SimpleDisconnectedNetwork.h.
References lastSimulatorType.
|
inlineoverridevirtual |
Implements Network::INetwork< Types::time_type >.
Definition at line 2536 of file SimpleDisconnectedNetwork.h.
Referenced by Clone().
|
inlineoverridevirtual |
Implements Network::INetwork< Types::time_type >.
Definition at line 2555 of file SimpleDisconnectedNetwork.h.
Referenced by Clone().
|
inlineoverridevirtual |
Get the maximum number of simulators that can be used in the network.
Get the maximum number of simulators that can be used in the network. This is used to limit the number of simulators (and corresponding threads) that can be used in the network.
Implements Network::INetwork< Types::time_type >.
Definition at line 2062 of file SimpleDisconnectedNetwork.h.
References maxSimulators.
Referenced by ChooseBestSimulator(), RepeatedExecute(), and RepeatedExecuteOnHost().
|
inlineoverridevirtual |
Implements Network::INetwork< Types::time_type >.
Definition at line 2500 of file SimpleDisconnectedNetwork.h.
Referenced by Clone().
|
inlineoverridevirtual |
Implements Network::INetwork< Types::time_type >.
Definition at line 2516 of file SimpleDisconnectedNetwork.h.
Referenced by Clone().
|
inlineoverridevirtual |
Implements Network::INetwork< Types::time_type >.
Definition at line 2484 of file SimpleDisconnectedNetwork.h.
Referenced by Clone().
|
inlineoverridevirtual |
Get the qubit ids used for entanglement between hosts for the specified host.
Get the qubit ids used for entanglement between hosts for the specified host.
| hostId | The id of the host to get the qubit ids for. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1841 of file SimpleDisconnectedNetwork.h.
References hosts.
|
pure virtualinherited |
Get the number of gates that span more than one host.
Get the number of gates that span more than one host for the given circuit.
| circuit | The circuit to check. |
|
inlineoverride |
Get the number of gates that span more than one host.
Get the number of gates that span more than one host for the given circuit.
| circuit | The circuit to check. |
Definition at line 1060 of file SimpleDisconnectedNetwork.h.
References IsLocalOperation().
|
inlineoverridevirtual |
Get the number of classical bits in the network.
Get the number of classical bits in the network, excluding the classical bits used for measurement of entanglement qubits between the hosts.
Implements Network::INetwork< Types::time_type >.
Definition at line 1415 of file SimpleDisconnectedNetwork.h.
References hosts.
Referenced by ConvertBackResults(), CreateSimulator(), and RepeatedExecute().
|
inlineoverridevirtual |
Get the number of classical bits in the network for the specified host.
Get the number of classical bits in the network for the specified host, excluding the classical bits used for measurement of entanglement qubits between the hosts.
| hostId | The id of the host to get the number of classical bits for. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1436 of file SimpleDisconnectedNetwork.h.
References hosts.
Referenced by Clone().
|
inlineoverridevirtual |
Get the number of hosts in the network.
Get the number of hosts in the network, excluding the controller.
Implements Network::INetwork< Types::time_type >.
Definition at line 1329 of file SimpleDisconnectedNetwork.h.
References hosts.
Referenced by Clone(), and RepeatedExecuteOnHost().
|
inlineoverridevirtual |
Get the number of qubits used for entanglement between hosts.
Get the number of qubits used for entanglement between hosts in the network. For the simple network it's one qubit per host.
Implements Network::INetwork< Types::time_type >.
Definition at line 1377 of file SimpleDisconnectedNetwork.h.
References hosts.
Referenced by CreateSimulator(), and RepeatedExecute().
|
inlineoverridevirtual |
Get the number of qubits used for entanglement between hosts for the specified host.
Get the number of qubits used for entanglement between hosts in the network for the specified host. For the simple network it's a single qubit.
| hostId | The id of the host to get the number of qubits used for entanglement between hosts for. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1399 of file SimpleDisconnectedNetwork.h.
References hosts.
|
inlineoverridevirtual |
Get the number of qubits in the network.
Get the number of qubits in the network, excluding the qubits used for entanglement between the hosts.
Implements Network::INetwork< Types::time_type >.
Definition at line 1342 of file SimpleDisconnectedNetwork.h.
References hosts.
Referenced by CreateSimulator(), IsNetworkEntangledQubit(), RepeatedExecute(), and SetMPSOptimizationQubitsNumberThreshold().
|
inlineoverridevirtual |
Get the number of qubits in the network for the specified host.
Get the number of qubits in the network for the specified host, excluding the qubits used for entanglement between the hosts.
| hostId | The id of the host to get the number of qubits for. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1361 of file SimpleDisconnectedNetwork.h.
References hosts.
Referenced by Clone().
|
inlineoverridevirtual |
Returns the 'optimize' flag.
Returns the flag set by SetOptimizeSimulator().
Implements Network::INetwork< Types::time_type >.
Definition at line 2131 of file SimpleDisconnectedNetwork.h.
References optimizeSimulator.
Referenced by ExecuteLogicalShotBlocks(), RepeatedExecute(), and RepeatedExecuteOnHost().
|
inlineinherited |
|
inlineoverridevirtual |
Get the qubit ids for the specified host.
Get the qubit ids for the specified host.
| hostId | The id of the host to get the qubit ids for. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1823 of file SimpleDisconnectedNetwork.h.
References hosts.
|
inlineoverridevirtual |
Get the scheduler for the network.
Get the scheduler for the network.
Implements Network::INetwork< Types::time_type >.
Definition at line 1284 of file SimpleDisconnectedNetwork.h.
References controller.
Referenced by ExecuteScheduled().
|
inlineoverridevirtual |
Get the simulator for the network.
Get the simulator for the network.
Implements Network::INetwork< Types::time_type >.
Definition at line 1239 of file SimpleDisconnectedNetwork.h.
References simulator.
Referenced by Clone().
|
inlineoverridevirtual |
Get the optimizations simulators set.
Get the optimization simulators set. To be used internally, will not be exposed from the library.
Implements Network::INetwork< Types::time_type >.
Definition at line 2144 of file SimpleDisconnectedNetwork.h.
References simulatorsForOptimizations.
|
inlineoverridevirtual |
Get the classical state of the network.
Gets a reference to the classical state of the network.
Implements Network::INetwork< Types::time_type >.
Definition at line 1252 of file SimpleDisconnectedNetwork.h.
References classicalState.
Referenced by ConvertBackState(), Execute(), ExecuteExpectations(), ExecuteOnHost(), ExecuteOnHostAmplitudes(), ExecuteOnHostExpectations(), ExecuteOnHostProjectOnZero(), RecreateSimulatorKeepingResults(), RepeatedExecute(), and RepeatedExecuteOnHost().
|
inlinevirtualinherited |
Get the text code that is executed on the hosts.
Get the text code that is executed on the hosts, if available. The circuit might be converted to code to be executed (example: netqasm). If that's the case, the text code is returned in an array, each element of the array being the code for a host. Each host might have multiple subroutines, so each element of the array is an array of strings, each string being a subroutine.
|
inline |
Definition at line 2103 of file SimpleDisconnectedNetwork.h.
References trajectoryMinWorkerMicros.
|
inlineoverridevirtual |
Get the type of the network.
Get the type of the network.
Implements Network::INetwork< Types::time_type >.
Definition at line 1495 of file SimpleDisconnectedNetwork.h.
References Network::kSimpleDisconnectedNetwork.
Referenced by Clone().
|
pure virtualinherited |
Check if the circuit operation is distributed.
Check if the specified circuit operation is distributed. A distributed operation is an operation that is executed on multiple hosts. This does not include the operations that also operate on the entanglement qubits between hosts.
| op | The operation to check. |
|
inlineoverride |
Check if the circuit operation is distributed.
Check if the specified circuit operation is distributed. A distributed operation is an operation that is executed on multiple hosts. This does not include the operations that also operate on the entanglement qubits between hosts.
| op | The operation to check. |
Definition at line 1538 of file SimpleDisconnectedNetwork.h.
References AreQubitsOnSameHost(), and IsNetworkEntangledQubit().
|
inlineoverridevirtual |
Check if the specified qubit used for entanglement between hosts is busy.
Check if the specified qubit used for entanglement between hosts is busy. It's not used in the simple network, because it doesn't allow quantum communication between hosts.
| qubitId | The id of the qubit to check. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1912 of file SimpleDisconnectedNetwork.h.
|
pure virtualinherited |
Checks if a gate is an entangling gate.
An entangling gate is a gate that operates on two qubits that are used for entanglement between hosts.
| op | The operation to check. |
|
inlineoverride |
Checks if a gate is an entangling gate.
An entangling gate is a gate that operates on two qubits that are used for entanglement between hosts.
| op | The operation to check. |
Definition at line 1595 of file SimpleDisconnectedNetwork.h.
References IsNetworkEntangledQubit(), and Circuits::kGate.
|
pure virtualinherited |
Check if the circuit operation is local.
Check if the specified circuit operation is local. A local operation is an operation that is executed on a single host. This does not include the operations that also operate on the entanglement qubits between hosts.
| op | The operation to check. |
|
inlineoverride |
Check if the circuit operation is local.
Check if the specified circuit operation is local. A local operation is an operation that is executed on a single host. This does not include the operations that also operate on the entanglement qubits between hosts.
| op | The operation to check. |
Definition at line 1510 of file SimpleDisconnectedNetwork.h.
References AreQubitsOnSameHost().
Referenced by GetNumberOfGatesDistributedOrCut().
|
inlineoverridevirtual |
Check if the specified qubit id is for a qubit used for entanglement between hosts.
Check if the specified qubit id is for a qubit used for entanglement between hosts.
| qubitId | The id of the qubit to check. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1895 of file SimpleDisconnectedNetwork.h.
References GetNumQubits().
Referenced by GetHostIdForAnyQubit(), IsDistributedOperation(), IsEntanglingGate(), and OperatesWithNetworkEntangledQubit().
|
inlineprotected |
Map the circuit on the host.
Map the circuit on the host. It's used only if there is an execution on a single host and the passed circuit had a different mapping for qubits than the host qubits.
| circuit | The circuit to map. |
| hostId | The id of the host to map the circuit on. |
Definition at line 3049 of file SimpleDisconnectedNetwork.h.
References distCirc, distributedHostQubitIndexing, GetHost(), Simulators::IsDistributedGpuSimulator(), and simulator.
Referenced by RepeatedExecuteOnHost().
|
inlineoverridevirtual |
Mark the specified qubit used for entanglement between hosts as free.
Mark the specified qubit used for entanglement between hosts as free. This is used to mark the qubits as free when they are not used anymore for an entanglement between hosts. It's not used in the simple network, because it doesn't allow quantum communication between hosts.
| qubitId | The id of the qubit to mark as free. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1965 of file SimpleDisconnectedNetwork.h.
|
inlineoverridevirtual |
Mark the pair of the specified qubits used for entanglement between hosts as busy.
Mark the pair of the specified qubits used for entanglement between hosts as busy. This is used to mark the qubits as busy when they are used for creating an entanglement between hosts. It's not used in the simple network, because it doesn't allow quantum communication between hosts.
| qubitId1 | The id of the first qubit to mark as busy. |
| qubitId2 | The id of the second qubit to mark as busy. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1949 of file SimpleDisconnectedNetwork.h.
|
pure virtualinherited |
Check if the circuit operation operates on the entanglement qubits between hosts.
Check if the specified circuit operation operates on the entanglement qubits between hosts.
| op | The operation to check. |
|
inlineoverride |
Check if the circuit operation operates on the entanglement qubits between hosts.
Check if the specified circuit operation operates on the entanglement qubits between hosts.
| op | The operation to check. |
Definition at line 1572 of file SimpleDisconnectedNetwork.h.
References IsNetworkEntangledQubit().
|
inlineoverridevirtual |
Checks if a simulator exists in the optimization set.
Checks if a simulator exists in the optimization set.
| type | The type of the simulator to check. |
| kind | The kind of the simulation to check. |
Implements Network::INetwork< Types::time_type >.
Definition at line 2202 of file SimpleDisconnectedNetwork.h.
References simulatorsForOptimizations.
Referenced by ChooseBestSimulator().
|
inlineprotected |
Definition at line 2828 of file SimpleDisconnectedNetwork.h.
References Circuits::Circuit< Time >::AddOperation(), Simulators::MPSDummySimulator::ComputeOptimalQubitsMap(), configuration, Simulators::MPSDummySimulator::EffectiveMapMaxBondDimension(), Circuits::kGate, Simulators::kMatrixProductOperator, Simulators::kMatrixProductState, Simulators::kQCSim, Circuits::Circuit< Time >::LayersToCircuit(), Simulators::MPSDummySimulator::setGrowthFactorGate(), Simulators::MPSDummySimulator::setGrowthFactorSwap(), Simulators::MPSDummySimulator::SetMaxBondDimension(), Simulators::MPSDummySimulator::SetRoutingCostModel(), Simulators::MPSDummySimulator::SetSwapGatesRelabelQubits(), Circuits::Circuit< Time >::ToMultipleQubitsLayersNoClone(), Simulators::RoutingConfig::TruncationWeight(), and Simulators::RoutingConfig::VirtualBondsEnabled().
Referenced by ChooseBestSimulator(), RepeatedExecute(), and RepeatedExecuteOnHost().
|
inlineprotected |
Definition at line 2610 of file SimpleDisconnectedNetwork.h.
References CreateSimulator(), Circuits::OperationState::GetAllBits(), GetState(), and Circuits::OperationState::SetResultsInOrder().
Referenced by Execute(), ExecuteExpectations(), ExecuteOnHost(), ExecuteOnHostAmplitudes(), ExecuteOnHostExpectations(), and ExecuteOnHostProjectOnZero().
|
inlineoverridevirtual |
Removes all simulators from the simulators optimization set and adds the one specified.
Removes all simulators from the simulators optimization set and adds the one specified.
| type | The type of the simulator to add. |
| kind | The kind of the simulation to add. |
Implements Network::INetwork< Types::time_type >.
Definition at line 2186 of file SimpleDisconnectedNetwork.h.
References simulatorsForOptimizations.
|
inlineoverridevirtual |
Removes a simulator from the simulators optimization set.
Removes a simulator from the simulators optimization set, if it exists.
| type | The type of the simulator to remove. |
| kind | The kind of the simulation to remove. |
Implements Network::INetwork< Types::time_type >.
Definition at line 2171 of file SimpleDisconnectedNetwork.h.
References simulatorsForOptimizations.
|
pure virtualinherited |
Execute the circuit on the network, repeatedly.
Execute the circuit on the network, distributing the operations to the hosts, repeating the execution 'shots' times. The way the circuit is distributed to the hosts depends on the specific interface implementations.
| circuit | The circuit to execute. |
| shots | The number of times to repeat the execution. |
|
inlineoverride |
Execute the circuit on the network, repeatedly.
Execute the circuit on the network, distributing the operations to the hosts, repeating the execution 'shots' times. The way the circuit is distributed to the hosts depends on the specific interface implementations.
| circuit | The circuit to execute. |
| shots | The number of times to repeat the execution. |
Definition at line 599 of file SimpleDisconnectedNetwork.h.
References CaptureSimulatorConfiguration(), ChooseBestSimulator(), Circuits::OperationState::Clear(), configuration, controller, ConvertBackResults(), CreateSimulator(), Simulators::IState::DeriveSeed(), distCirc, ExecuteLogicalShotBlocks(), ExecutionConfiguration(), GetMaxSimulators(), GetNumClassicalBits(), GetNumNetworkEntangledQubits(), GetNumQubits(), GetOptimizeSimulator(), Network::INetwork< Time >::getptr(), GetState(), Simulators::IsGpuSimulator(), Simulators::kCompositeQCSim, Simulators::kCompositeQiskitAer, Simulators::kDensityMatrix, Simulators::kPathIntegral, Simulators::kPauliPropagator, Simulators::kQCSim, Simulators::kQiskitAer, Simulators::kQuestSim, Simulators::kStabilizer, Simulators::kStatevector, lastFusionEnabled, lastFusionWidth, lastGpuDevice, lastMethod, lastSimulatorType, OptimizeMPSInitialQubitsMap(), optimizeSimulator, recreateIfNeeded, resetBeforeExecution, simulator, simulatorsEstimator, and UsesReproducibleSampling().
Referenced by Execute(), and ExecuteExpectations().
|
inlineinherited |
Execute the circuit on the network, repeatedly.
Execute the circuit on the network, distributing the operations to the hosts, repeating the execution 'shots' times. The way the circuit is distributed to the hosts depends on the specific interface implementations.
| executeCircuit | The circuit to execute, together with the number of shots. |
|
inlineinherited |
Execute the circuit on the specified host, repeatedly.
Execute the circuit on the specified host, repeating the execution 'shots' times. The circuit must fit on the host, otherwise an exception is thrown. The circuit will be mapped on the specified host, if its qubits start with indexing from 0 (if already mapped, the qubits won't be altered).
| executeCircuit | The circuit to execute, together with the number of shots. |
| hostId | The id of the host to execute the circuit on. |
|
pure virtualinherited |
Execute the circuit on the specified host, repeatedly.
Execute the circuit on the specified host, repeating the execution 'shots' times. The circuit must fit on the host, otherwise an exception is thrown. The circuit will be mapped on the specified host, if its qubits start with indexing from 0 (if already mapped, the qubits won't be altered).
| circuit | The circuit to execute. |
| hostId | The id of the host to execute the circuit on. |
| shots | The number of times to repeat the execution. |
|
inlineoverride |
Execute the circuit on the specified host, repeatedly.
Execute the circuit on the specified host, repeating the execution 'shots' times. The circuit must fit on the host, otherwise an exception is thrown. The circuit will be mapped on the specified host, if its qubits start with indexing from 0 (if already mapped, the qubits won't be altered).
| circuit | The circuit to execute. |
| hostId | The id of the host to execute the circuit on. |
| shots | The number of times to repeat the execution. |
Definition at line 840 of file SimpleDisconnectedNetwork.h.
References CaptureSimulatorConfiguration(), ChooseBestSimulator(), Circuits::OperationState::Clear(), configuration, ConvertBackResults(), CreateSimulator(), Simulators::IState::DeriveSeed(), distCirc, ExecuteLogicalShotBlocks(), ExecutionConfiguration(), GetController(), GetMaxSimulators(), GetNumHosts(), GetOptimizeSimulator(), Network::INetwork< Time >::getptr(), GetState(), Simulators::IsDistributedGpuSimulator(), Simulators::IsGpuSimulator(), Simulators::kCompositeQCSim, Simulators::kCompositeQiskitAer, Simulators::kDensityMatrix, Simulators::kPathIntegral, Simulators::kPauliPropagator, Simulators::kQCSim, Simulators::kQiskitAer, Simulators::kQuestSim, Simulators::kStabilizer, Simulators::kStatevector, lastFusionEnabled, lastFusionWidth, lastGpuDevice, lastMethod, lastSimulatorType, MapCircuitOnHost(), OptimizeMPSInitialQubitsMap(), recreateIfNeeded, simulator, and UsesReproducibleSampling().
Referenced by ExecuteOnHost(), ExecuteOnHostAmplitudes(), ExecuteOnHostExpectations(), and ExecuteOnHostProjectOnZero().
|
inlineoverridevirtual |
Sends a packet between two hosts.
Sends a packet between the two specified hosts. It's not used in the simple network, because sending/receiving the classical information is done using a shared classical state for the simulator.
| fromHostId | The id of the host to send the packet from. |
| toHostId | The id of the host to send the packet to. |
| packet | The packet to send. |
Implements Network::INetwork< Types::time_type >.
Definition at line 1483 of file SimpleDisconnectedNetwork.h.
|
inline |
Set the network controller host.
Sets the network controller host.
| [in] | cntrl | The controller host. |
Definition at line 1465 of file SimpleDisconnectedNetwork.h.
References controller.
|
inlineoverridevirtual |
Reimplemented from Network::INetwork< Types::time_type >.
Definition at line 2578 of file SimpleDisconnectedNetwork.h.
References simulator.
|
inlineoverridevirtual |
Reimplemented from Network::INetwork< Types::time_type >.
Definition at line 2570 of file SimpleDisconnectedNetwork.h.
References simulator.
|
inlineoverridevirtual |
Implements Network::INetwork< Types::time_type >.
Definition at line 2463 of file SimpleDisconnectedNetwork.h.
|
inlineoverridevirtual |
Implements Network::INetwork< Types::time_type >.
Definition at line 2521 of file SimpleDisconnectedNetwork.h.
References simulator.
|
inlineoverridevirtual |
Implements Network::INetwork< Types::time_type >.
Definition at line 2541 of file SimpleDisconnectedNetwork.h.
References simulator.
|
inlineoverridevirtual |
Set the maximum number of simulators that can be used in the network.
Set the maximum number of simulators that can be used in the network. This is used to limit the number of simulators (and corresponding threads) that can be used in the network.
| maxSimulators | The maximum number of simulators that can be used in the network. |
Implements Network::INetwork< Types::time_type >.
Definition at line 2078 of file SimpleDisconnectedNetwork.h.
References maxSimulators.
|
inlineoverridevirtual |
Implements Network::INetwork< Types::time_type >.
Definition at line 2489 of file SimpleDisconnectedNetwork.h.
References simulator.
|
inlineoverridevirtual |
Implements Network::INetwork< Types::time_type >.
Definition at line 2505 of file SimpleDisconnectedNetwork.h.
References GetNumQubits(), and simulator.
|
inlineoverridevirtual |
Implements Network::INetwork< Types::time_type >.
Definition at line 2473 of file SimpleDisconnectedNetwork.h.
References simulator.
|
inlineoverridevirtual |
Allows using an optimized simulator.
If set, allows changing the simulator with an optimized one. States/amplitudes are not available in such a case, disable if you need them. Multiple shots still reuse the executable prefix with a fixed backend; the existing single-shot path is retained for state queries.
| optimize | If true, the simulator will be optimized if possible. |
Implements Network::INetwork< Types::time_type >.
Definition at line 2119 of file SimpleDisconnectedNetwork.h.
References optimizeSimulator.
|
inline |
Set the estimated work per trajectory worker.
Per-shot (shot_v1) statevector and density-matrix trajectories use at most one worker per this many microseconds of estimated serial work, so tiny states don't pay for dispatching workers. 0 disables the limit. Counts do not depend on it.
| micros | The estimated serial work per worker, in microseconds. |
Definition at line 2098 of file SimpleDisconnectedNetwork.h.
References trajectoryMinWorkerMicros.
|
inlineprotected |
Definition at line 2772 of file SimpleDisconnectedNetwork.h.
References Simulators::kDensityMatrix, Simulators::kStatevector, and trajectoryMinWorkerMicros.
Referenced by ExecuteLogicalShotBlocks().
|
inlineprotected |
Definition at line 2617 of file SimpleDisconnectedNetwork.h.
References configuration, Simulators::kDensityMatrix, Simulators::kPathIntegral, Simulators::kQCSim, and Simulators::kStatevector.
Referenced by RepeatedExecute(), and RepeatedExecuteOnHost().
|
inlineoverridevirtual |
Reimplemented from Network::INetwork< Types::time_type >.
Definition at line 2015 of file SimpleDisconnectedNetwork.h.
References lastFusionEnabled.
|
protected |
The classical state of the network.
Definition at line 3207 of file SimpleDisconnectedNetwork.h.
Referenced by CreateSimulator(), and GetState().
|
protected |
Definition at line 3199 of file SimpleDisconnectedNetwork.h.
Referenced by CaptureSimulatorConfiguration(), ChooseBestSimulator(), Clone(), Configure(), CreateSimulator(), ExecuteLogicalShotBlocks(), ExecutionConfiguration(), GetGateFusion(), OptimizeMPSInitialQubitsMap(), RepeatedExecute(), RepeatedExecuteOnHost(), and UsesReproducibleSampling().
|
protected |
The controller for the network.
Definition at line 3212 of file SimpleDisconnectedNetwork.h.
Referenced by ConvertBackResults(), ConvertBackState(), CreateNetwork(), CreateScheduler(), ExecuteExpectations(), GetController(), GetScheduler(), RepeatedExecute(), and SetController().
|
protected |
The distributed circuit.
Definition at line 3210 of file SimpleDisconnectedNetwork.h.
Referenced by ExecutionConfiguration(), GetDistributedCircuit(), MapCircuitOnHost(), RepeatedExecute(), and RepeatedExecuteOnHost().
|
protected |
Definition at line 3200 of file SimpleDisconnectedNetwork.h.
Referenced by Clone(), Configure(), and MapCircuitOnHost().
|
protected |
The hosts in the network.
Definition at line 3216 of file SimpleDisconnectedNetwork.h.
Referenced by AreClassicalBitsOnSameHost(), AreQubitAndClassicalBitOnSameHost(), AreQubitsOnSameHost(), CreateNetwork(), GetClassicalBitsIds(), GetEntangledQubitMeasurementBitIds(), GetHost(), GetHostIdForClassicalBit(), GetHostIdForEntangledQubit(), GetHostIdForQubit(), GetHosts(), GetNetworkEntangledQubitsIds(), GetNumClassicalBits(), GetNumClassicalBitsForHost(), GetNumHosts(), GetNumNetworkEntangledQubits(), GetNumNetworkEntangledQubitsForHost(), GetNumQubits(), GetNumQubitsForHost(), and GetQubitsIds().
|
protected |
Definition at line 3194 of file SimpleDisconnectedNetwork.h.
Referenced by ExecuteLogicalShotBlocks(), RepeatedExecute(), RepeatedExecuteOnHost(), and WasGateFusionEnabled().
|
protected |
Definition at line 3193 of file SimpleDisconnectedNetwork.h.
Referenced by ExecuteLogicalShotBlocks(), GetLastGateFusionMaxQubits(), RepeatedExecute(), and RepeatedExecuteOnHost().
|
protected |
Definition at line 3192 of file SimpleDisconnectedNetwork.h.
Referenced by GetLastGpuDevice(), RepeatedExecute(), and RepeatedExecuteOnHost().
|
protected |
The last simulation method used.
Definition at line 3196 of file SimpleDisconnectedNetwork.h.
Referenced by GetLastSimulationType(), RepeatedExecute(), and RepeatedExecuteOnHost().
|
protected |
The last simulator type used.
Definition at line 3195 of file SimpleDisconnectedNetwork.h.
Referenced by GetLastSimulatorType(), RepeatedExecute(), and RepeatedExecuteOnHost().
|
protected |
The maximum number of simulators that can be used in the network.
Definition at line 3203 of file SimpleDisconnectedNetwork.h.
Referenced by Clone(), Configure(), GetMaxSimulators(), and SetMaxSimulators().
|
protected |
The flag to optimize the simulator.
Definition at line 3189 of file SimpleDisconnectedNetwork.h.
Referenced by ChooseBestSimulator(), Clone(), GetOptimizeSimulator(), RepeatedExecute(), and SetOptimizeSimulator().
|
protected |
The flag to recreate the simulator if needed.
Definition at line 3229 of file SimpleDisconnectedNetwork.h.
Referenced by Execute(), ExecuteExpectations(), ExecuteLogicalShotBlocks(), ExecuteOnHost(), ExecuteOnHostAmplitudes(), ExecuteOnHostExpectations(), ExecuteOnHostProjectOnZero(), RepeatedExecute(), and RepeatedExecuteOnHost().
|
protected |
Definition at line 3226 of file SimpleDisconnectedNetwork.h.
Referenced by Execute(), ExecuteLogicalShotBlocks(), and RepeatedExecute().
|
protected |
Definition at line 3201 of file SimpleDisconnectedNetwork.h.
Referenced by Clone(), Configure(), CreateSimulator(), and ExecutionConfiguration().
|
protected |
The quantum computing simulator for the network.
Definition at line 3208 of file SimpleDisconnectedNetwork.h.
Referenced by CaptureSimulatorConfiguration(), Configure(), CreateSimulator(), Execute(), ExecuteExpectations(), ExecuteLogicalShotBlocks(), ExecuteOnHost(), ExecuteOnHostAmplitudes(), ExecuteOnHostExpectations(), ExecuteOnHostProjectOnZero(), GetGateFusion(), GetSimulator(), MapCircuitOnHost(), RepeatedExecute(), RepeatedExecuteOnHost(), setGrowthFactorGate(), setGrowthFactorSwap(), SetLookaheadDepth(), SetLookaheadDepthWithHeuristic(), SetMPSOptimizationBondDimensionThreshold(), SetMPSOptimizationQubitsNumberThreshold(), and SetMPSOptimizeSwaps().
|
protected |
The simulators estimator.
Definition at line 3218 of file SimpleDisconnectedNetwork.h.
Referenced by ChooseBestSimulator(), and RepeatedExecute().
|
protected |
Definition at line 3190 of file SimpleDisconnectedNetwork.h.
Referenced by AddOptimizationSimulator(), ChooseBestSimulator(), Clone(), GetSimulatorsSet(), OptimizationSimulatorExists(), RemoveAllOptimizationSimulatorsAndAdd(), and RemoveOptimizationSimulator().
|
protected |
Estimated serial work per trajectory worker, see SetTrajectoryMinWorkerMicros.
Definition at line 3205 of file SimpleDisconnectedNetwork.h.
Referenced by Clone(), ExecuteLogicalShotBlocks(), GetTrajectoryMinWorkerMicros(), SetTrajectoryMinWorkerMicros(), and TrajectoryWorkersForWork().