OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
Optimizer Class Referenceabstract

#include <Optimizer.h>

Inheritance diagram for Optimizer:
Collaboration diagram for Optimizer:

Public Types

typedef std::vector< std::pair< double, double > > bounds_t
 type of bounds for design variables

Public Member Functions

 Optimizer (MPI_Comm comm)
virtual ~Optimizer ()
virtual void initialize ()=0
 entry point for optimizer

Protected Member Functions

virtual void setupPoll ()=0
 executed before starting polling loop
virtual void prePoll ()=0
 executed before checking for new request
virtual void postPoll ()=0
 executed after handling (if any) new request
virtual void onStop ()=0
 enable implementation to react to STOP tag
virtual bool onMessage (MPI_Status status, size_t length)=0
virtual void run ()

Protected Attributes

MPI_Comm comm_m
 communicator the poller listens to requests
bool is_running_
double last_polled_
 time of last MPI_Test
double poll_delay_
 delay in seconds between polls

Detailed Description

Definition at line 31 of file Optimizer.h.

Member Typedef Documentation

◆ bounds_t

typedef std::vector< std::pair<double, double> > Optimizer::bounds_t

type of bounds for design variables

Definition at line 39 of file Optimizer.h.

Constructor & Destructor Documentation

◆ Optimizer()

Optimizer::Optimizer ( MPI_Comm comm)
inline

Definition at line 35 of file Optimizer.h.

References Poller::Poller().

Referenced by Sampler::Sampler(), and Sampler::Sampler().

Here is the call graph for this function:

◆ ~Optimizer()

virtual Optimizer::~Optimizer ( )
inlinevirtual

Definition at line 36 of file Optimizer.h.

Member Function Documentation

◆ initialize()

virtual void Optimizer::initialize ( )
pure virtual

entry point for optimizer

Implemented in FixedPisaNsga2< CrossoverOperator, MutationOperator >, and Sampler.

◆ onMessage()

virtual bool Optimizer::onMessage ( MPI_Status status,
size_t recv_value )
protectedpure virtual

User specific behavior on receiving a message.

Returns
boolean indicating if Irecv has to be re-posted

Implements Poller.

Implemented in FixedPisaNsga2< CrossoverOperator, MutationOperator >, and Sampler.

◆ onStop()

virtual void Optimizer::onStop ( )
protectedpure virtual

enable implementation to react to STOP tag

Implements Poller.

Implemented in FixedPisaNsga2< CrossoverOperator, MutationOperator >, and Sampler.

◆ postPoll()

virtual void Optimizer::postPoll ( )
protectedpure virtual

executed after handling (if any) new request

Implements Poller.

Implemented in FixedPisaNsga2< CrossoverOperator, MutationOperator >, and Sampler.

◆ prePoll()

virtual void Optimizer::prePoll ( )
protectedpure virtual

executed before checking for new request

Implements Poller.

Implemented in FixedPisaNsga2< CrossoverOperator, MutationOperator >, and Sampler.

◆ run()

virtual void Poller::run ( )
inlineprotectedvirtualinherited

The poll loop stops when receiving a 'MPI_STOP_TAG' otherwise passes message to user.

Reimplemented in Pilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >.

Definition at line 79 of file Poller.h.

References comm_m, is_running_, last_polled_, MPI_STOP_TAG, onMessage(), onStop(), poll_delay_, postPoll(), prePoll(), and setupPoll().

Referenced by Sampler::initialize(), SampleWorker< Sim_t >::SampleWorker(), and Worker< Sim_t >::Worker().

Here is the call graph for this function:

◆ setupPoll()

virtual void Optimizer::setupPoll ( )
protectedpure virtual

executed before starting polling loop

Implements Poller.

Implemented in FixedPisaNsga2< CrossoverOperator, MutationOperator >, and Sampler.

Member Data Documentation

◆ comm_m

MPI_Comm Poller::comm_m
protectedinherited

◆ is_running_

bool Poller::is_running_
protectedinherited

◆ last_polled_

double Poller::last_polled_
protectedinherited

time of last MPI_Test

Definition at line 57 of file Poller.h.

Referenced by Poller(), and run().

◆ poll_delay_

double Poller::poll_delay_
protectedinherited

delay in seconds between polls

Definition at line 59 of file Poller.h.

Referenced by Poller(), and run().


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