MADNESS 0.10.1
Public Types | Public Member Functions | Public Attributes | Friends | List of all members
madness::MacroTaskBase Class Referenceabstract

base class More...

#include <macrotaskq.h>

Inheritance diagram for madness::MacroTaskBase:
Inheritance graph
[legend]

Public Types

enum  Status { Running , Waiting , Complete , Unknown }
 
typedef std::vector< std::shared_ptr< MacroTaskBase > > taskqT
 

Public Member Functions

 MacroTaskBase ()
 
virtual ~MacroTaskBase ()
 
virtual void cleanup ()=0
 
virtual void finalize_stage1 (World &, World *, Cloud &)
 
virtual void finalize_stage2 (World &, World *, Cloud &)
 
long get_owner_slot () const
 
double get_priority () const
 
bool is_complete () const
 
bool is_owned_by (const long slot) const
 an unowned task may be run by any subworld, an owned one only by its own
 
bool is_running () const
 
bool is_waiting () const
 
virtual void print_me (std::string s="") const
 
virtual void print_me_as_table (std::string s="") const
 
std::string print_priority_and_status_to_string () const
 
virtual void run (World &world, Cloud &cloud, taskqT &taskq, const long element, const bool debug, const MacroTaskInfo policy)=0
 
void set_complete ()
 
void set_owner_slot (const long owner)
 
void set_priority (const double p)
 
void set_running ()
 
void set_waiting ()
 
virtual bool wants_node_local_reduction () const
 Finalize, for tasks that accumulate their own output.
 

Public Attributes

long owner_slot =-1
 the subworld that should run this task; -1 means any
 
double priority =1.0
 
enum madness::MacroTaskBase::Status stat =Unknown
 

Friends

std::ostream & operator<< (std::ostream &os, const MacroTaskBase::Status s)
 

Detailed Description

base class

Member Typedef Documentation

◆ taskqT

typedef std::vector<std::shared_ptr<MacroTaskBase> > madness::MacroTaskBase::taskqT

Member Enumeration Documentation

◆ Status

Enumerator
Running 
Waiting 
Complete 
Unknown 

Constructor & Destructor Documentation

◆ MacroTaskBase()

madness::MacroTaskBase::MacroTaskBase ( )
inline

◆ ~MacroTaskBase()

virtual madness::MacroTaskBase::~MacroTaskBase ( )
inlinevirtual

Member Function Documentation

◆ cleanup()

virtual void madness::MacroTaskBase::cleanup ( )
pure virtual

◆ finalize_stage1()

virtual void madness::MacroTaskBase::finalize_stage1 ( World ,
World ,
Cloud  
)
inlinevirtual

◆ finalize_stage2()

virtual void madness::MacroTaskBase::finalize_stage2 ( World ,
World ,
Cloud  
)
inlinevirtual

◆ get_owner_slot()

long madness::MacroTaskBase::get_owner_slot ( ) const
inline

◆ get_priority()

double madness::MacroTaskBase::get_priority ( ) const
inline

References priority.

Referenced by print_priority_and_status_to_string().

◆ is_complete()

bool madness::MacroTaskBase::is_complete ( ) const
inline

References Complete, and stat.

◆ is_owned_by()

bool madness::MacroTaskBase::is_owned_by ( const long  slot) const
inline

an unowned task may be run by any subworld, an owned one only by its own

References madness::nonlinear_vector_solver(), and owner_slot.

Referenced by madness::MacroTask< taskT >::MacroTaskInternal::find_next_owned_task().

◆ is_running()

bool madness::MacroTaskBase::is_running ( ) const
inline

References Running, and stat.

◆ is_waiting()

bool madness::MacroTaskBase::is_waiting ( ) const
inline

References stat, and Waiting.

◆ print_me()

virtual void madness::MacroTaskBase::print_me ( std::string  s = "") const
inlinevirtual

◆ print_me_as_table()

virtual void madness::MacroTaskBase::print_me_as_table ( std::string  s = "") const
inlinevirtual

◆ print_priority_and_status_to_string()

std::string madness::MacroTaskBase::print_priority_and_status_to_string ( ) const
inline

◆ run()

virtual void madness::MacroTaskBase::run ( World world,
Cloud cloud,
taskqT taskq,
const long  element,
const bool  debug,
const MacroTaskInfo  policy 
)
pure virtual

◆ set_complete()

void madness::MacroTaskBase::set_complete ( )
inline

References Complete, and stat.

◆ set_owner_slot()

void madness::MacroTaskBase::set_owner_slot ( const long  owner)
inline

◆ set_priority()

void madness::MacroTaskBase::set_priority ( const double  p)
inline

References p(), and priority.

◆ set_running()

void madness::MacroTaskBase::set_running ( )
inline

References Running, and stat.

◆ set_waiting()

void madness::MacroTaskBase::set_waiting ( )
inline

References stat, and Waiting.

◆ wants_node_local_reduction()

virtual bool madness::MacroTaskBase::wants_node_local_reduction ( ) const
inlinevirtual

Finalize, for tasks that accumulate their own output.

run_all holds only base pointers, so these have to be virtual. Stage 1 reduces the per-subworld buffers within a node, stage 2 reduces across nodes into the universe result; a nodeworld of nullptr means one node, so stage 1 has nothing to do.

Reimplemented in madness::MacroTask< taskT >::MacroTaskInternal.

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  os,
const MacroTaskBase::Status  s 
)
friend

Member Data Documentation

◆ owner_slot

long madness::MacroTaskBase::owner_slot =-1

◆ priority

double madness::MacroTaskBase::priority =1.0

◆ stat

enum madness::MacroTaskBase::Status madness::MacroTaskBase::stat =Unknown

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