ttg 1.0.0
Template Task Graph (TTG): flowgraph-based programming model for high-performance distributed-memory algorithms
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
ttg::base::WorldImplBase Class Referenceabstract

Base class for implementation-specific Worlds. More...

#include <world.h>

Inheritance diagram for ttg::base::WorldImplBase:
[legend]

Public Member Functions

virtual ~WorldImplBase (void)
 
int size ()
 
int rank ()
 
virtual void destroy (void)=0
 
template<typename T >
void register_ptr (const std::shared_ptr< T > &ptr)
 
template<typename T >
void register_ptr (std::unique_ptr< T > &&ptr)
 
void register_status (const std::shared_ptr< std::promise< void > > &status_ptr)
 
template<typename Callback >
void register_callback (Callback &&callback)
 
void fence (void)
 
virtual void execute ()
 
void register_op (ttg::TTBase *op)
 
void deregister_op (ttg::TTBase *op)
 
bool is_valid (void) const
 
virtual void final_task ()
 
virtual void profile_on ()
 
virtual void profile_off ()
 
virtual bool profiling ()
 
virtual void dag_on (const std::string &filename)
 
virtual void dag_off ()
 
virtual bool dag_profiling ()
 

Protected Member Functions

void mark_invalid ()
 
virtual void fence_impl (void)=0
 
void release_ops (void)
 
 WorldImplBase (int size, int rank)
 

Detailed Description

Base class for implementation-specific Worlds.

Definition at line 34 of file world.h.

Constructor & Destructor Documentation

◆ WorldImplBase()

ttg::base::WorldImplBase::WorldImplBase ( int  size,
int  rank 
)
inlineprotected

Definition at line 62 of file world.h.

◆ ~WorldImplBase()

virtual ttg::base::WorldImplBase::~WorldImplBase ( void  )
inlinevirtual

Definition at line 67 of file world.h.

Member Function Documentation

◆ dag_off()

virtual void ttg::base::WorldImplBase::dag_off ( )
inlinevirtual

Reimplemented in ttg_parsec::WorldImpl.

Definition at line 164 of file world.h.

◆ dag_on()

virtual void ttg::base::WorldImplBase::dag_on ( const std::string &  filename)
inlinevirtual

Reimplemented in ttg_parsec::WorldImpl.

Definition at line 163 of file world.h.

◆ dag_profiling()

virtual bool ttg::base::WorldImplBase::dag_profiling ( )
inlinevirtual

Reimplemented in ttg_parsec::WorldImpl.

Definition at line 165 of file world.h.

◆ deregister_op()

void ttg::base::WorldImplBase::deregister_op ( ttg::TTBase op)
inline

Deregister a TT from this world. TTs deregister themselves during destruction to avoid dangling references.

Definition at line 145 of file world.h.

◆ destroy()

virtual void ttg::base::WorldImplBase::destroy ( void  )
pure virtual

◆ execute()

virtual void ttg::base::WorldImplBase::execute ( )
inlinevirtual

Start the execution of tasks in this world. The call to execute() will return immediately, i.e., it will not wait for all tasks to complete executing.

See also
fence

Reimplemented in ttg_parsec::WorldImpl.

Definition at line 129 of file world.h.

◆ fence()

void ttg::base::WorldImplBase::fence ( void  )
inline

Wait for all tasks in this world to complete execution. This is a synchronizing call, even if no active tasks exist (i.e., fence() behaves as a barrier).

Definition at line 110 of file world.h.

Here is the call graph for this function:

◆ fence_impl()

virtual void ttg::base::WorldImplBase::fence_impl ( void  )
protectedpure virtual

Implemented in ttg_madness::WorldImpl, and ttg_parsec::WorldImpl.

Here is the caller graph for this function:

◆ final_task()

virtual void ttg::base::WorldImplBase::final_task ( )
inlinevirtual

Reimplemented in ttg_parsec::WorldImpl.

Definition at line 157 of file world.h.

◆ is_valid()

bool ttg::base::WorldImplBase::is_valid ( void  ) const
inline

Whether this world is valid. A word is marked as invalid during destruction and/or finalization of TTG.

Definition at line 155 of file world.h.

Here is the caller graph for this function:

◆ mark_invalid()

void ttg::base::WorldImplBase::mark_invalid ( )
inlineprotected

Definition at line 51 of file world.h.

Here is the caller graph for this function:

◆ profile_off()

virtual void ttg::base::WorldImplBase::profile_off ( )
inlinevirtual

Reimplemented in ttg_parsec::WorldImpl.

Definition at line 160 of file world.h.

◆ profile_on()

virtual void ttg::base::WorldImplBase::profile_on ( )
inlinevirtual

Reimplemented in ttg_parsec::WorldImpl.

Definition at line 159 of file world.h.

◆ profiling()

virtual bool ttg::base::WorldImplBase::profiling ( )
inlinevirtual

Reimplemented in ttg_parsec::WorldImpl.

Definition at line 161 of file world.h.

◆ rank()

int ttg::base::WorldImplBase::rank ( )
inline

Returns the rank of the calling process in this World.

Definition at line 79 of file world.h.

Here is the caller graph for this function:

◆ register_callback()

template<typename Callback >
void ttg::base::WorldImplBase::register_callback ( Callback &&  callback)
inline

Definition at line 100 of file world.h.

◆ register_op()

void ttg::base::WorldImplBase::register_op ( ttg::TTBase op)
inline

Register a TT with this world. All registered TTs will be destroyed during destruction of this world.

Definition at line 136 of file world.h.

◆ register_ptr() [1/2]

template<typename T >
void ttg::base::WorldImplBase::register_ptr ( const std::shared_ptr< T > &  ptr)
inline

Definition at line 86 of file world.h.

◆ register_ptr() [2/2]

template<typename T >
void ttg::base::WorldImplBase::register_ptr ( std::unique_ptr< T > &&  ptr)
inline

Definition at line 91 of file world.h.

◆ register_status()

void ttg::base::WorldImplBase::register_status ( const std::shared_ptr< std::promise< void > > &  status_ptr)
inline

Definition at line 95 of file world.h.

◆ release_ops()

void ttg::base::WorldImplBase::release_ops ( void  )
inlineprotected

Definition at line 55 of file world.h.

Here is the caller graph for this function:

◆ size()

int ttg::base::WorldImplBase::size ( )
inline

Returns the number of processes that belong this World.

Definition at line 72 of file world.h.

Here is the caller graph for this function:

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