ExaTN
Classes | Public Member Functions | List of all members
exatn::runtime::TensorExecState Class Reference

Classes

struct  TensorExecInfo
 

Public Member Functions

 TensorExecState (const TensorExecState &)=delete
 
TensorExecStateoperator= (const TensorExecState &)=delete
 
 TensorExecState (TensorExecState &&) noexcept=default
 
TensorExecStateoperator= (TensorExecState &&) noexcept=default
 
const std::vector< VertexIdType > * getTensorEpochNodes (const Tensor &tensor, int *epoch)
 
int registerTensorRead (const Tensor &tensor, VertexIdType node_id)
 
int registerTensorWrite (const Tensor &tensor, VertexIdType node_id)
 
std::size_t registerWriteCompletion (const Tensor &tensor)
 
std::size_t getTensorUpdateCount (const Tensor &tensor)
 
void registerDependencyFreeNode (VertexIdType node_id)
 
bool extractDependencyFreeNode (VertexIdType *node_id)
 
void registerExecutingNode (VertexIdType node_id)
 
bool extractExecutingNode (VertexIdType *node_id)
 
bool progressFrontNode (VertexIdType node_executed)
 
VertexIdType getFrontNode () const
 

Member Function Documentation

◆ extractDependencyFreeNode()

bool exatn::runtime::TensorExecState::extractDependencyFreeNode ( VertexIdType *  node_id)

Extracts a dependency-free node from the list. Returns FALSE if no such node exists.

◆ extractExecutingNode()

bool exatn::runtime::TensorExecState::extractExecutingNode ( VertexIdType *  node_id)

Extracts an executed DAG node from the list.

◆ getFrontNode()

VertexIdType exatn::runtime::TensorExecState::getFrontNode ( ) const

Returns the front node id.

◆ getTensorEpochNodes()

const std::vector< VertexIdType > * exatn::runtime::TensorExecState::getTensorEpochNodes ( const Tensor tensor,
int *  epoch 
)

Returns the list of nodes participating in the current R/W epoch: epoch > 0: This is the number of reads in the current Read epoch; epoch = -1: This is the single write in the current Write epoch.

◆ getTensorUpdateCount()

std::size_t exatn::runtime::TensorExecState::getTensorUpdateCount ( const Tensor tensor)

Returns the current outstanding update count on the tensor in the DAG.

◆ progressFrontNode()

bool exatn::runtime::TensorExecState::progressFrontNode ( VertexIdType  node_executed)

Moves the front node forward if the given DAG node is the next node after the front node and it has just been executed to completion.

◆ registerDependencyFreeNode()

void exatn::runtime::TensorExecState::registerDependencyFreeNode ( VertexIdType  node_id)

Registers a DAG node without dependencies.

◆ registerExecutingNode()

void exatn::runtime::TensorExecState::registerExecutingNode ( VertexIdType  node_id)

Registers a DAG node as being executed.

◆ registerTensorRead()

int exatn::runtime::TensorExecState::registerTensorRead ( const Tensor tensor,
VertexIdType  node_id 
)

Registers a new read on a Tensor. Returns the current epoch R/W counter.

◆ registerTensorWrite()

int exatn::runtime::TensorExecState::registerTensorWrite ( const Tensor tensor,
VertexIdType  node_id 
)

Registers a new write on a Tensor. Returns the current epoch R/W counter.

◆ registerWriteCompletion()

std::size_t exatn::runtime::TensorExecState::registerWriteCompletion ( const Tensor tensor)

Registers completion of an outstanding write on a Tensor. Returns the updated outstanding update count on the Tensor.


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