|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
#include <Pilot.h>
Public Member Functions | |
| Pilot (CmdArguments_t args, std::shared_ptr< Comm_t > comm, const DVarContainer_t &dvar) | |
| Pilot (CmdArguments_t args, std::shared_ptr< Comm_t > comm, functionDictionary_t known_expr_funcs) | |
| Pilot (CmdArguments_t args, std::shared_ptr< Comm_t > comm, functionDictionary_t known_expr_funcs, const DVarContainer_t &dvar, const Expressions::Named_t &obj, const Expressions::Named_t &cons, std::vector< double > hypervolRef={}, bool isOptimizerRun=true, const std::map< std::string, std::string > &userVariables={}) | |
| virtual | ~Pilot () |
Protected Types | |
| typedef MasterNode< typename Opt_t::SolutionState_t, SolPropagationGraph_t > | MasterNode_t |
| typedef std::map< size_t, std::pair< Param_t, reqVarContainer_t > > | Jobs_t |
| keep track of requests and running jobs | |
| typedef Jobs_t::iterator | JobIter_t |
Protected Member Functions | |
| void | parseInputFile (functionDictionary_t, bool isOptimizationRun) |
| virtual void | startOptimizer () |
| virtual void | startWorker (const std::map< std::string, std::string > &userVariables) |
| virtual void | startPilot () |
| virtual void | setupPoll () |
| executed before starting polling loop | |
| virtual void | prePoll () |
| executed before checking for new request | |
| virtual void | onStop () |
| enable implementation to react to STOP tag | |
| virtual void | postPoll () |
| executed after handling (if any) new request | |
| virtual void | sendNewJobToWorker (int worker) |
| virtual bool | onMessage (MPI_Status status, size_t recv_value) |
| bool | stop (bool isOpt=true) |
| void | run () |
Protected Attributes | |
| MPI_Comm | worker_comm_ |
| MPI communicator used for messages to/from worker. | |
| MPI_Comm | opt_comm_ |
| MPI communicator used for messages to/from optimizer. | |
| MPI_Comm | coworker_comm_ |
| MPI communicator used for messages between all pilots. | |
| std::shared_ptr< Comm_t > | comm_ |
| CmdArguments_t | cmd_args_ |
| int | global_rank_ |
| int | my_rank_in_worker_comm_ |
| int | my_rank_in_opt_comm_ |
| int | num_coworkers_ |
| std::unique_ptr< MasterNode_t > | master_node_ |
| std::string | input_file_ |
| input file for simulation with embedded optimization problem | |
| int | total_available_workers_ |
| bool | has_opt_converged_ |
| bool | continue_polling_ |
| Expressions::Named_t | objectives_ |
| objectives | |
| Expressions::Named_t | constraints_ |
| constraints | |
| DVarContainer_t | dvars_ |
| design variables | |
| std::vector< double > | hypervolRef_ |
| hypervolume reference point | |
| std::vector< bool > | is_worker_idle_ |
| Jobs_t | running_job_list_ |
| Jobs_t | request_queue_ |
| std::unique_ptr< Trace > | job_trace_ |
| 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 | |
Private Member Functions | |
| void | setup (functionDictionary_t known_expr_funcs, const std::map< std::string, std::string > &userVariables) |
|
protected |
|
protected |
|
protected |
|
inline |
Definition at line 105 of file Pilot.h.
References cmd_args_, comm_, dvars_, and Poller::Poller().
Referenced by SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::SamplePilot().
|
inline |
|
inline |
|
inlinevirtual |
Definition at line 144 of file Pilot.h.
References constraints_, and objectives_.
|
inlineprotectedvirtual |
User specific behavior on receiving a message.
Implements Poller.
Reimplemented in SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >.
Definition at line 434 of file Pilot.h.
References comm_, EXCHANGE_SOL_STATE_TAG, has_opt_converged_, is_worker_idle_, job_trace_, master_node_, MPI_EXCHANGE_SOL_STATE_DATA_TAG, MPI_EXCHANGE_SOL_STATE_RES_SIZE_TAG, MPI_EXCHANGE_SOL_STATE_RES_TAG, MPI_OPT_JOB_FINISHED_TAG, MPI_Recv_params(), MPI_Recv_reqvars(), MPI_Send_reqvars(), MPI_WORKER_FINISHED_ACK_TAG, num_coworkers_, opt_comm_, OPT_CONVERGED_TAG, OPT_NEW_JOB_TAG, request_queue_, running_job_list_, sendNewJobToWorker(), stop(), worker_comm_, WORKER_FINISHED_TAG, and WORKER_STATUSUPDATE_TAG.
Referenced by run().
|
inlineprotectedvirtual |
|
inlineprotected |
Definition at line 234 of file Pilot.h.
References cmd_args_, Poller::comm_m, constraints_, dvars_, global_rank_, input_file_, and objectives_.
Referenced by setup(), and SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::setup().
|
inlineprotectedvirtual |
executed after handling (if any) new request
Implements Poller.
Reimplemented in SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >.
Definition at line 373 of file Pilot.h.
References continue_polling_, has_opt_converged_, is_worker_idle_, MPI_STOP_TAG, my_rank_in_worker_comm_, request_queue_, sendNewJobToWorker(), total_available_workers_, and worker_comm_.
Referenced by run().
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
The poll loop stops when receiving a 'MPI_STOP_TAG' otherwise passes message to user.
Reimplemented from Poller.
Definition at line 602 of file Pilot.h.
References cmd_args_, continue_polling_, coworker_comm_, MPI_STOP_TAG, onMessage(), opt_comm_, OPT_CONVERGED_TAG, postPoll(), prePoll(), setupPoll(), stop(), and worker_comm_.
Referenced by startPilot().
|
inlineprotectedvirtual |
Reimplemented in SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >.
Definition at line 405 of file Pilot.h.
References has_opt_converged_, is_worker_idle_, job_trace_, MPI_Send_params(), MPI_WORK_JOBID_TAG, request_queue_, running_job_list_, and worker_comm_.
Referenced by onMessage(), and postPoll().
|
inlineprivate |
Definition at line 202 of file Pilot.h.
References comm_, global_rank_, parseInputFile(), startOptimizer(), startPilot(), and startWorker().
Referenced by Pilot().
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
Definition at line 269 of file Pilot.h.
References cmd_args_, comm_, constraints_, dvars_, global_rank_, hypervolRef_, and objectives_.
Referenced by setup().
|
inlineprotectedvirtual |
Definition at line 307 of file Pilot.h.
References cmd_args_, comm_, constraints_, continue_polling_, coworker_comm_, global_rank_, has_opt_converged_, is_worker_idle_, job_trace_, master_node_, my_rank_in_opt_comm_, my_rank_in_worker_comm_, num_coworkers_, objectives_, opt_comm_, run(), total_available_workers_, and worker_comm_.
Referenced by setup(), and SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::setup().
|
inlineprotectedvirtual |
Definition at line 285 of file Pilot.h.
References cmd_args_, comm_, constraints_, global_rank_, input_file_, and objectives_.
Referenced by setup().
|
inlineprotected |
Definition at line 569 of file Pilot.h.
References cmd_args_, comm_, coworker_comm_, has_opt_converged_, MPI_STOP_TAG, num_coworkers_, opt_comm_, OPT_CONVERGED_TAG, and request_queue_.
Referenced by onMessage(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::onMessage(), and run().
|
protected |
Definition at line 164 of file Pilot.h.
Referenced by parseInputFile(), Pilot(), Pilot(), run(), startOptimizer(), startPilot(), startWorker(), and stop().
|
protected |
Definition at line 163 of file Pilot.h.
Referenced by onMessage(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::onMessage(), Pilot(), Pilot(), setup(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::setup(), startOptimizer(), startPilot(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::startSampler(), startWorker(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::startWorker(), and stop().
|
protectedinherited |
communicator the poller listens to requests
Definition at line 52 of file Poller.h.
Referenced by SampleWorker< Sim_t >::onMessage(), Worker< Sim_t >::onMessage(), Pilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::parseInputFile(), Poller(), run(), and Worker< Sim_t >::setupPoll().
|
protected |
constraints
Definition at line 184 of file Pilot.h.
Referenced by parseInputFile(), startOptimizer(), startPilot(), startWorker(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::startWorker(), and ~Pilot().
|
protected |
Definition at line 181 of file Pilot.h.
Referenced by postPoll(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::postPoll(), run(), and startPilot().
|
protected |
MPI communicator used for messages between all pilots.
Definition at line 161 of file Pilot.h.
Referenced by run(), startPilot(), and stop().
|
protected |
design variables
Definition at line 185 of file Pilot.h.
Referenced by parseInputFile(), Pilot(), startOptimizer(), and SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::startSampler().
|
protected |
Definition at line 166 of file Pilot.h.
Referenced by parseInputFile(), setup(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::setup(), startOptimizer(), startPilot(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::startSampler(), startWorker(), and SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::startWorker().
|
protected |
Definition at line 180 of file Pilot.h.
Referenced by onMessage(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::onMessage(), postPoll(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::postPoll(), sendNewJobToWorker(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::sendNewJobToWorker(), startPilot(), and stop().
|
protected |
|
protected |
input file for simulation with embedded optimization problem
Definition at line 177 of file Pilot.h.
Referenced by parseInputFile(), startWorker(), and SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::startWorker().
|
protectedinherited |
Definition at line 54 of file Poller.h.
Referenced by Poller(), run(), Worker< Sim_t >::runCoWorker(), and SampleWorker< Sim_t >::runSlave().
|
protected |
Definition at line 190 of file Pilot.h.
Referenced by onMessage(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::onMessage(), postPoll(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::postPoll(), sendNewJobToWorker(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::sendNewJobToWorker(), and startPilot().
|
protected |
Definition at line 199 of file Pilot.h.
Referenced by onMessage(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::onMessage(), sendNewJobToWorker(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::sendNewJobToWorker(), and startPilot().
|
protectedinherited |
|
protected |
Definition at line 174 of file Pilot.h.
Referenced by onMessage(), and startPilot().
|
protected |
Definition at line 168 of file Pilot.h.
Referenced by startPilot().
|
protected |
Definition at line 167 of file Pilot.h.
Referenced by postPoll(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::postPoll(), and startPilot().
|
protected |
Definition at line 170 of file Pilot.h.
Referenced by onMessage(), startPilot(), and stop().
|
protected |
objectives
Definition at line 183 of file Pilot.h.
Referenced by parseInputFile(), startOptimizer(), startPilot(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::startSampler(), startWorker(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::startWorker(), and ~Pilot().
|
protected |
MPI communicator used for messages to/from optimizer.
Definition at line 159 of file Pilot.h.
Referenced by onMessage(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::onMessage(), run(), startPilot(), and stop().
|
protectedinherited |
|
protected |
Definition at line 196 of file Pilot.h.
Referenced by onMessage(), postPoll(), sendNewJobToWorker(), and stop().
|
protected |
Definition at line 195 of file Pilot.h.
Referenced by onMessage(), and sendNewJobToWorker().
|
protected |
Definition at line 179 of file Pilot.h.
Referenced by postPoll(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::postPoll(), and startPilot().
|
protected |
MPI communicator used for messages to/from worker.
Definition at line 157 of file Pilot.h.
Referenced by onMessage(), postPoll(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::postPoll(), run(), sendNewJobToWorker(), SamplePilot< Opt_t, Sim_t, SolPropagationGraph_t, Comm_t >::sendNewJobToWorker(), and startPilot().