$extrastylesheet
Dakota
Version 6.2
|
Meta-iterator for multi-start iteration or pareto set optimization. More...
Public Member Functions | |
ConcurrentMetaIterator (ProblemDescDB &problem_db) | |
standard constructor | |
ConcurrentMetaIterator (ProblemDescDB &problem_db, Model &model) | |
alternate constructor | |
~ConcurrentMetaIterator () | |
destructor | |
Protected Member Functions | |
void | pre_run () |
pre-run portion of run (optional); re-implemented by Iterators which can generate all Variables (parameter sets) a priori | |
void | core_run () |
Performs the concurrent iteration by executing selectedIterator on iteratedModel multiple times in parallel for different parameter sets. | |
void | print_results (std::ostream &s) |
print the final iterator results | |
void | derived_init_communicators (ParLevLIter pl_iter) |
derived class contributions to initializing the communicators associated with this Iterator instance | |
void | derived_set_communicators (ParLevLIter pl_iter) |
derived class contributions to setting the communicators associated with this Iterator instance | |
void | derived_free_communicators (ParLevLIter pl_iter) |
derived class contributions to freeing the communicators associated with this Iterator instance | |
IntIntPair | estimate_partition_bounds () |
estimate the minimum and maximum partition sizes that can be utilized by this Iterator | |
void | initialize_iterator (int job_index) |
used by IteratorScheduler to set the starting data for a run | |
void | pack_parameters_buffer (MPIPackBuffer &send_buffer, int job_index) |
used by IteratorScheduler to pack starting data for an iterator run | |
void | unpack_parameters_initialize (MPIUnpackBuffer &recv_buffer) |
used by IteratorScheduler to unpack starting data and initialize an iterator run | |
void | pack_results_buffer (MPIPackBuffer &send_buffer, int job_index) |
used by IteratorScheduler to pack results data from an iterator run | |
void | unpack_results_buffer (MPIUnpackBuffer &recv_buffer, int job_index) |
used by IteratorScheduler to unpack results data from an iterator run | |
void | update_local_results (int job_index) |
used by IteratorScheduler to update local results arrays | |
const Model & | algorithm_space_model () const |
return the result of any recasting or surrogate model recursion layered on top of iteratedModel by the derived Iterator ctor chain | |
Private Member Functions | |
void | initialize_iterator (const RealVector ¶m_set) |
called by unpack_parameters_initialize(MPIUnpackBuffer) and initialize_iterator(int) to update iteratedModel and selectedIterator | |
void | initialize_model () |
initialize the iterated Model prior to Iterator instantiation and define param_set_len | |
Private Attributes | |
Iterator | selectedIterator |
the iterator selected for concurrent iteration | |
bool | lightwtCtor |
use of lightweight Iterator construction by name | |
RealVector | initialPt |
the initial continuous variables for restoring the starting point in the Pareto set minimization | |
RealVectorArray | parameterSets |
an array of parameter set vectors (either multistart variable sets or pareto multi-objective/least squares weighting sets) to be performed. | |
int | paramSetLen |
length of each of the parameter sets associated with an iterator job (number of continuous variables for MULTI_START, number of objective fns for PARETO_SET) | |
int | numRandomJobs |
number of randomly-generated parameter sets to evaluate | |
int | randomSeed |
seed for random number generator for random samples | |
PRPArray | prpResults |
1-d array of ParamResponsePair results corresponding to numIteratorJobs | |
Friends | |
class | IteratorScheduler |
protect scheduler callback functions from general access |
Meta-iterator for multi-start iteration or pareto set optimization.
This meta-iterator 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.
void pre_run | ( | ) | [protected, virtual] |
pre-run portion of run (optional); re-implemented by Iterators which can generate all Variables (parameter sets) a priori
pre-run phase, which a derived iterator may optionally reimplement; when not present, pre-run is likely integrated into the derived run function. This is a virtual function; when re-implementing, a derived class must call its nearest parent's pre_run(), if implemented, typically _before_ performing its own implementation steps.
Reimplemented from Iterator.
References Analyzer::all_samples(), Iterator::all_samples(), ParallelLibrary::bcast_hs(), Model::continuous_lower_bounds(), Model::continuous_upper_bounds(), Model::continuous_variables(), Dakota::copy_data(), Model::estimate_message_lengths(), ConcurrentMetaIterator::initialPt, Iterator::iteratedModel, IteratorScheduler::iterator_message_lengths(), IteratorScheduler::iteratorCommRank, IteratorScheduler::iteratorScheduling, IteratorScheduler::iteratorServerId, MetaIterator::iterSched, IteratorScheduler::lead_rank(), Model::message_lengths(), Iterator::methodName, Iterator::methodPCIter, IteratorScheduler::miPLIndex, IteratorScheduler::numIteratorJobs, IteratorScheduler::numIteratorServers, ConcurrentMetaIterator::numRandomJobs, Iterator::parallelLib, ConcurrentMetaIterator::parameterSets, ConcurrentMetaIterator::paramSetLen, ConcurrentMetaIterator::prpResults, ConcurrentMetaIterator::randomSeed, and MPIPackBuffer::size().
void print_results | ( | std::ostream & | s | ) | [protected, virtual] |
print the final iterator results
This virtual function provides additional iterator-specific final results outputs beyond the function evaluation summary printed in finalize_run().
Reimplemented from Iterator.
References Variables::continuous_variables(), Variables::discrete_int_variables(), Variables::discrete_real_variables(), ParamResponsePair::eval_id(), Iterator::methodName, ConcurrentMetaIterator::parameterSets, ConcurrentMetaIterator::paramSetLen, ConcurrentMetaIterator::prpResults, ParamResponsePair::response(), ParamResponsePair::variables(), and Response::write_tabular().