Maestro 0.3.11
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
Network::ExecuteJob< Time > Class Template Reference

#include <NetworkJob.h>

Inheritance diagram for Network::ExecuteJob< Time >:
Collaboration diagram for Network::ExecuteJob< Time >:

Public Types

using ExecuteResults = typename Circuits::Circuit<Time>::ExecuteResults

Public Member Functions

 ExecuteJob ()=delete
 ExecuteJob (const std::shared_ptr< Circuits::Circuit< Time > > &c, ExecuteResults &r, size_t cnt, size_t nq, size_t nc, size_t ncr, Simulators::SimulatorType t, Simulators::SimulationType m, std::mutex &mut)
void DoWork ()
void DoWorkNoLock ()
size_t GetJobCount () const

Static Public Member Functions

static bool IsOptimisableForMultipleShots (Simulators::SimulatorType t, size_t curCnt)

Public Attributes

bool allowInternalMultithreading = false
std::shared_ptr< std::mutex > cloneMutex
std::shared_ptr< Simulators::ISimulator > cloneSource
Configuration< Time > config
const size_t curCnt
size_t * curMaxBondDim = nullptr
std::shared_ptr< Circuits::Circuit< Time > > dcirc
std::vector< bool > executedGates
size_t firstShot = 0
bool independentShotStreams = false
int internalThreads = 0
const Simulators::SimulationType method
std::shared_ptr< Network::INetwork< Time > > network
const size_t nrCbits
const size_t nrQubits
const size_t nrResultCbits
std::function< void(const Simulators::ISimulator &)> onSimulatorReady
bool optimiseMultipleShotsExecution = true
std::shared_ptr< Simulators::ISimulator > optSim
uint64_t randomStream = 0
ExecuteResults & res
std::mutex & resultsMutex
const Simulators::SimulatorType simType
uint64_t trajectorySeed = 0

Detailed Description

template<typename Time = Types::time_type>
class Network::ExecuteJob< Time >

Definition at line 34 of file NetworkJob.h.

Member Typedef Documentation

◆ ExecuteResults

template<typename Time = Types::time_type>
using Network::ExecuteJob< Time >::ExecuteResults = typename Circuits::Circuit<Time>::ExecuteResults

Definition at line 37 of file NetworkJob.h.

Constructor & Destructor Documentation

◆ ExecuteJob() [1/2]

template<typename Time = Types::time_type>
Network::ExecuteJob< Time >::ExecuteJob ( )
delete

◆ ExecuteJob() [2/2]

template<typename Time = Types::time_type>
Network::ExecuteJob< Time >::ExecuteJob ( const std::shared_ptr< Circuits::Circuit< Time > > & c,
ExecuteResults & r,
size_t cnt,
size_t nq,
size_t nc,
size_t ncr,
Simulators::SimulatorType t,
Simulators::SimulationType m,
std::mutex & mut )
inlineexplicit

Definition at line 42 of file NetworkJob.h.

References curCnt, dcirc, method, nrCbits, nrQubits, nrResultCbits, res, resultsMutex, and simType.

Member Function Documentation

◆ DoWork()

◆ DoWorkNoLock()

◆ GetJobCount()

template<typename Time = Types::time_type>
size_t Network::ExecuteJob< Time >::GetJobCount ( ) const
inline

Definition at line 440 of file NetworkJob.h.

References curCnt.

◆ IsOptimisableForMultipleShots()

template<typename Time = Types::time_type>
bool Network::ExecuteJob< Time >::IsOptimisableForMultipleShots ( Simulators::SimulatorType t,
size_t curCnt )
inlinestatic

Definition at line 435 of file NetworkJob.h.

References curCnt.

Member Data Documentation

◆ allowInternalMultithreading

template<typename Time = Types::time_type>
bool Network::ExecuteJob< Time >::allowInternalMultithreading = false

Definition at line 671 of file NetworkJob.h.

Referenced by DoWork().

◆ cloneMutex

template<typename Time = Types::time_type>
std::shared_ptr<std::mutex> Network::ExecuteJob< Time >::cloneMutex

Definition at line 681 of file NetworkJob.h.

Referenced by DoWork().

◆ cloneSource

template<typename Time = Types::time_type>
std::shared_ptr<Simulators::ISimulator> Network::ExecuteJob< Time >::cloneSource

Definition at line 680 of file NetworkJob.h.

Referenced by DoWork().

◆ config

template<typename Time = Types::time_type>
Configuration<Time> Network::ExecuteJob< Time >::config

Definition at line 686 of file NetworkJob.h.

Referenced by DoWork(), and DoWorkNoLock().

◆ curCnt

template<typename Time = Types::time_type>
const size_t Network::ExecuteJob< Time >::curCnt

◆ curMaxBondDim

template<typename Time = Types::time_type>
size_t* Network::ExecuteJob< Time >::curMaxBondDim = nullptr

Definition at line 689 of file NetworkJob.h.

Referenced by DoWork(), and DoWorkNoLock().

◆ dcirc

template<typename Time = Types::time_type>
std::shared_ptr<Circuits::Circuit<Time> > Network::ExecuteJob< Time >::dcirc

Definition at line 659 of file NetworkJob.h.

Referenced by ExecuteJob(), DoWork(), and DoWorkNoLock().

◆ executedGates

template<typename Time = Types::time_type>
std::vector<bool> Network::ExecuteJob< Time >::executedGates

Definition at line 682 of file NetworkJob.h.

Referenced by DoWork(), and DoWorkNoLock().

◆ firstShot

template<typename Time = Types::time_type>
size_t Network::ExecuteJob< Time >::firstShot = 0

Definition at line 678 of file NetworkJob.h.

Referenced by DoWork().

◆ independentShotStreams

template<typename Time = Types::time_type>
bool Network::ExecuteJob< Time >::independentShotStreams = false

Definition at line 676 of file NetworkJob.h.

Referenced by DoWork().

◆ internalThreads

template<typename Time = Types::time_type>
int Network::ExecuteJob< Time >::internalThreads = 0

Definition at line 673 of file NetworkJob.h.

Referenced by DoWork().

◆ method

template<typename Time = Types::time_type>
const Simulators::SimulationType Network::ExecuteJob< Time >::method

Definition at line 667 of file NetworkJob.h.

Referenced by ExecuteJob(), DoWork(), and DoWorkNoLock().

◆ network

template<typename Time = Types::time_type>
std::shared_ptr<Network::INetwork<Time> > Network::ExecuteJob< Time >::network

Definition at line 688 of file NetworkJob.h.

Referenced by DoWork(), and DoWorkNoLock().

◆ nrCbits

template<typename Time = Types::time_type>
const size_t Network::ExecuteJob< Time >::nrCbits

Definition at line 663 of file NetworkJob.h.

Referenced by ExecuteJob(), DoWork(), and DoWorkNoLock().

◆ nrQubits

template<typename Time = Types::time_type>
const size_t Network::ExecuteJob< Time >::nrQubits

Definition at line 662 of file NetworkJob.h.

Referenced by ExecuteJob(), DoWork(), and DoWorkNoLock().

◆ nrResultCbits

template<typename Time = Types::time_type>
const size_t Network::ExecuteJob< Time >::nrResultCbits

Definition at line 664 of file NetworkJob.h.

Referenced by ExecuteJob(), DoWork(), and DoWorkNoLock().

◆ onSimulatorReady

template<typename Time = Types::time_type>
std::function<void(const Simulators::ISimulator &)> Network::ExecuteJob< Time >::onSimulatorReady

Definition at line 38 of file NetworkJob.h.

Referenced by DoWork(), and DoWorkNoLock().

◆ optimiseMultipleShotsExecution

template<typename Time = Types::time_type>
bool Network::ExecuteJob< Time >::optimiseMultipleShotsExecution = true

Definition at line 670 of file NetworkJob.h.

Referenced by DoWork(), and DoWorkNoLock().

◆ optSim

template<typename Time = Types::time_type>
std::shared_ptr<Simulators::ISimulator> Network::ExecuteJob< Time >::optSim

Definition at line 679 of file NetworkJob.h.

Referenced by DoWork(), and DoWorkNoLock().

◆ randomStream

template<typename Time = Types::time_type>
uint64_t Network::ExecuteJob< Time >::randomStream = 0

Definition at line 675 of file NetworkJob.h.

◆ res

template<typename Time = Types::time_type>
ExecuteResults& Network::ExecuteJob< Time >::res

Definition at line 660 of file NetworkJob.h.

Referenced by ExecuteJob(), DoWork(), and DoWorkNoLock().

◆ resultsMutex

template<typename Time = Types::time_type>
std::mutex& Network::ExecuteJob< Time >::resultsMutex

Definition at line 668 of file NetworkJob.h.

Referenced by ExecuteJob(), and DoWork().

◆ simType

template<typename Time = Types::time_type>
const Simulators::SimulatorType Network::ExecuteJob< Time >::simType

Definition at line 666 of file NetworkJob.h.

Referenced by ExecuteJob(), DoWork(), and DoWorkNoLock().

◆ trajectorySeed

template<typename Time = Types::time_type>
uint64_t Network::ExecuteJob< Time >::trajectorySeed = 0

Definition at line 677 of file NetworkJob.h.

Referenced by DoWork().


The documentation for this class was generated from the following file: