Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
ConcurrentStrategy Class Reference

Strategy for multi-start iteration or pareto set optimization. More...

Inheritance diagram for ConcurrentStrategy:
Strategy

List of all members.

Public Member Functions

 ConcurrentStrategy (ProblemDescDB &problem_db)
 constructor
 ~ConcurrentStrategy ()
 destructor

Protected Member Functions

void run_strategy ()
 Performs the concurrent strategy by executing selectedIterator on userDefinedModel multiple times in parallel for different settings within the iterator or model.
void initialize_iterator (int job_index)
 initialize the iterator about to be executed within a parallel iterator scheduling function (serve_iterators() or static_schedule_iterators())
void pack_parameters_buffer (MPIPackBuffer &send_buffer, int job_index)
 pack a send_buffer for assigning an iterator job to a server
void unpack_parameters_buffer (MPIUnpackBuffer &recv_buffer)
 unpack a recv_buffer for accepting an iterator job from the scheduler
void pack_results_buffer (MPIPackBuffer &send_buffer, int job_index)
 pack a send_buffer for returning iterator results from a server
void unpack_results_buffer (MPIUnpackBuffer &recv_buffer, int job_index)
 unpack a recv_buffer for accepting iterator results from a server
void update_local_results (int job_index)
 update local PRP results arrays with current iteration results

Private Member Functions

void initialize_iterator (const RealVector &param_set)
 called by unpack_parameters_buffer(MPIUnpackBuffer) and initialize_iterator(int) to update userDefinedModel and selectedIterator
void print_results () const
 prints the concurrent iteration results summary (called by run_strategy())

Private Attributes

Model userDefinedModel
 the model used by the iterator
Iterator selectedIterator
 the iterator used by the concurrent strategy
bool multiStartFlag
 distinguishes multi-start from Pareto-set
RealVector initialPt
 the initial continuous variables for restoring the starting point in the Pareto set strategy
RealVectorArray parameterSets
 an array of parameter set vectors (either multistart variable sets or pareto multi-objective/least squares weighting sets) to be performed.
PRPArray prpResults
 1-d array of ParamResponsePair results corresponding to numIteratorJobs

Detailed Description

Strategy for multi-start iteration or pareto set optimization.

This strategy maintains two concurrent iterator capabilities. First, a general capability for running an iterator multiple times from different starting points is provided (often used for multi-start optimization, but not restricted to optimization). Second, a simple capability for mapping the "pareto frontier" (the set of optimal solutions in multiobjective formulations) is provided. This pareto set is mapped through running an optimizer multiple times for different sets of multiobjective weightings.


Member Function Documentation

void pack_parameters_buffer ( MPIPackBuffer send_buffer,
int  job_index 
) [inline, protected, virtual]

pack a send_buffer for assigning an iterator job to a server

This virtual function redefinition is executed on the dedicated master processor for self scheduling. It is not used for peer partitions.

Reimplemented from Strategy.

References ConcurrentStrategy::parameterSets.

void unpack_parameters_buffer ( MPIUnpackBuffer recv_buffer) [inline, protected, virtual]

unpack a recv_buffer for accepting an iterator job from the scheduler

This virtual function redefinition is executed on an iterator server for dedicated master self scheduling. It is not used for peer partitions.

Reimplemented from Strategy.

References ConcurrentStrategy::initialize_iterator().

void pack_results_buffer ( MPIPackBuffer send_buffer,
int  job_index 
) [inline, protected, virtual]

pack a send_buffer for returning iterator results from a server

This virtual function redefinition is executed either on an iterator server for dedicated master self scheduling or on peers 2 through n for static scheduling.

Reimplemented from Strategy.

References ConcurrentStrategy::prpResults.

void unpack_results_buffer ( MPIUnpackBuffer recv_buffer,
int  job_index 
) [inline, protected, virtual]

unpack a recv_buffer for accepting iterator results from a server

This virtual function redefinition is executed on an strategy master (either the dedicated master processor for self scheduling or peer 1 for static scheduling).

Reimplemented from Strategy.

References ConcurrentStrategy::prpResults.


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