OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
Worker< Sim_t > Class Template Reference

#include <Worker.h>

Inheritance diagram for Worker< Sim_t >:
Inheritance graph
[legend]
Collaboration diagram for Worker< Sim_t >:
Collaboration graph
[legend]

Public Member Functions

 Worker (Expressions::Named_t constraints, std::string simName, Comm::Bundle_t comms, CmdArguments_t args)
 
 Worker (Expressions::Named_t objectives, Expressions::Named_t constraints, std::string simName, Comm::Bundle_t comms, CmdArguments_t args, const std::map< std::string, std::string > &userVariables, bool isOptimizer=true)
 
 ~Worker ()
 

Protected Types

typedef boost::scoped_ptr< Sim_t > SimPtr_t
 

Protected Member Functions

void runCoWorker ()
 
void notifyCoWorkers (int tag)
 notify coworkers of incoming broadcast More...
 
void setupPoll ()
 executed before starting polling loop More...
 
void prePoll ()
 executed before checking for new request More...
 
void postPoll ()
 executed after handling (if any) new request More...
 
void onStop ()
 enable implementation to react to STOP tag More...
 
virtual bool onMessage (MPI_Status status, size_t recv_value)
 
- Protected Member Functions inherited from Poller
virtual void run ()
 
 Poller (MPI_Comm comm, double delay=0.1)
 
virtual ~Poller ()
 

Protected Attributes

bool is_idle_
 
MPI_Comm coworker_comm_
 
Expressions::Named_t objectives_
 
Expressions::Named_t constraints_
 
int leader_pid_
 
int num_coworkers_
 
int pilot_rank_
 
std::string simulation_name_
 
CmdArguments_t cmd_args_
 
const std::map< std::string, std::string > userVariables_
 
- Protected Attributes inherited from Poller
MPI_Comm comm_m
 communicator the poller listens to requests More...
 
bool is_running_
 
double last_polled_
 time of last MPI_Test More...
 
double poll_delay_
 delay in seconds between polls More...
 

Detailed Description

template<class Sim_t>
class Worker< Sim_t >

Definition at line 45 of file Worker.h.

Member Typedef Documentation

◆ SimPtr_t

template<class Sim_t >
typedef boost::scoped_ptr<Sim_t> Worker< Sim_t >::SimPtr_t
protected

Definition at line 103 of file Worker.h.

Constructor & Destructor Documentation

◆ Worker() [1/2]

template<class Sim_t >
Worker< Sim_t >::Worker ( Expressions::Named_t  constraints,
std::string  simName,
Comm::Bundle_t  comms,
CmdArguments_t  args 
)
inline

◆ Worker() [2/2]

template<class Sim_t >
Worker< Sim_t >::Worker ( Expressions::Named_t  objectives,
Expressions::Named_t  constraints,
std::string  simName,
Comm::Bundle_t  comms,
CmdArguments_t  args,
const std::map< std::string, std::string > &  userVariables,
bool  isOptimizer = true 
)
inline

◆ ~Worker()

template<class Sim_t >
Worker< Sim_t >::~Worker ( )
inline

Definition at line 98 of file Worker.h.

Member Function Documentation

◆ notifyCoWorkers()

template<class Sim_t >
void Worker< Sim_t >::notifyCoWorkers ( int  tag)
inlineprotected

notify coworkers of incoming broadcast

Definition at line 176 of file Worker.h.

References Worker< Sim_t >::coworker_comm_, Worker< Sim_t >::leader_pid_, and Worker< Sim_t >::num_coworkers_.

Referenced by Worker< Sim_t >::onMessage(), and Worker< Sim_t >::onStop().

◆ onMessage()

template<class Sim_t >
virtual bool Worker< Sim_t >::onMessage ( MPI_Status  status,
size_t  recv_value 
)
inlineprotectedvirtual

◆ onStop()

template<class Sim_t >
void Worker< Sim_t >::onStop ( )
inlineprotectedvirtual

enable implementation to react to STOP tag

Implements Poller.

Definition at line 198 of file Worker.h.

References MPI_STOP_TAG, Worker< Sim_t >::notifyCoWorkers(), and Worker< Sim_t >::num_coworkers_.

Here is the call graph for this function:

◆ postPoll()

template<class Sim_t >
void Worker< Sim_t >::postPoll ( )
inlineprotectedvirtual

executed after handling (if any) new request

Implements Poller.

Definition at line 195 of file Worker.h.

◆ prePoll()

template<class Sim_t >
void Worker< Sim_t >::prePoll ( )
inlineprotectedvirtual

executed before checking for new request

Implements Poller.

Definition at line 192 of file Worker.h.

◆ runCoWorker()

template<class Sim_t >
void Worker< Sim_t >::runCoWorker ( )
inlineprotected

◆ setupPoll()

template<class Sim_t >
void Worker< Sim_t >::setupPoll ( )
inlineprotectedvirtual

executed before starting polling loop

Implements Poller.

Definition at line 186 of file Worker.h.

References Poller::comm_m, MPI_WORKER_STATUSUPDATE_TAG, and Worker< Sim_t >::pilot_rank_.

Member Data Documentation

◆ cmd_args_

template<class Sim_t >
CmdArguments_t Worker< Sim_t >::cmd_args_
protected

◆ constraints_

template<class Sim_t >
Expressions::Named_t Worker< Sim_t >::constraints_
protected

◆ coworker_comm_

template<class Sim_t >
MPI_Comm Worker< Sim_t >::coworker_comm_
protected

◆ is_idle_

template<class Sim_t >
bool Worker< Sim_t >::is_idle_
protected

◆ leader_pid_

template<class Sim_t >
int Worker< Sim_t >::leader_pid_
protected

◆ num_coworkers_

template<class Sim_t >
int Worker< Sim_t >::num_coworkers_
protected

◆ objectives_

template<class Sim_t >
Expressions::Named_t Worker< Sim_t >::objectives_
protected

◆ pilot_rank_

template<class Sim_t >
int Worker< Sim_t >::pilot_rank_
protected

◆ simulation_name_

template<class Sim_t >
std::string Worker< Sim_t >::simulation_name_
protected

◆ userVariables_

template<class Sim_t >
const std::map<std::string, std::string> Worker< Sim_t >::userVariables_
protected

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