Dakota  Version 6.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Member Functions | Private Member Functions | List of all members
ParallelDirectApplicInterface Class Reference

Sample derived interface class for testing parallel simulator plug-ins using assign_rep(). More...

Inheritance diagram for ParallelDirectApplicInterface:
DirectApplicInterface ApplicationInterface Interface

Public Member Functions

 ParallelDirectApplicInterface (const Dakota::ProblemDescDB &problem_db, const MPI_Comm &analysis_comm)
 constructor
 
 ~ParallelDirectApplicInterface ()
 destructor
 
- Public Member Functions inherited from DirectApplicInterface
 DirectApplicInterface (const ProblemDescDB &problem_db)
 constructor
 
 ~DirectApplicInterface ()
 destructor
 
void derived_map (const Variables &vars, const ActiveSet &set, Response &response, int fn_eval_id)
 Called by map() and other functions to execute the simulation in synchronous mode. The portion of performing an evaluation that is specific to a derived class.
 
void wait_local_evaluations (PRPQueue &prp_queue)
 For asynchronous function evaluations, this method is used to detect completion of jobs and process their results. It provides the processing code that is specific to derived classes. This version waits for at least one completion.
 
void test_local_evaluations (PRPQueue &prp_queue)
 For asynchronous function evaluations, this method is used to detect completion of jobs and process their results. It provides the processing code that is specific to derived classes. This version is nonblocking and will return without any completions if none are immediately available.
 
int synchronous_local_analysis (int analysis_id)
 
const StringArray & analysis_drivers () const
 retrieve the analysis drivers specification for application interfaces
 
void init_communicators_checks (int max_eval_concurrency)
 
- Public Member Functions inherited from ApplicationInterface
 ApplicationInterface (const ProblemDescDB &problem_db)
 constructor
 
 ~ApplicationInterface ()
 destructor
 
- Public Member Functions inherited from Interface
 Interface ()
 default constructor More...
 
 Interface (ProblemDescDB &problem_db)
 standard constructor for envelope More...
 
 Interface (const Interface &interface_in)
 copy constructor More...
 
virtual ~Interface ()
 destructor More...
 
Interface operator= (const Interface &interface_in)
 assignment operator More...
 
virtual int minimum_points (bool constraint_flag) const
 returns the minimum number of points required to build a particular ApproximationInterface (used by DataFitSurrModels).
 
virtual int recommended_points (bool constraint_flag) const
 returns the recommended number of points required to build a particular ApproximationInterface (used by DataFitSurrModels).
 
virtual void approximation_function_indices (const IntSet &approx_fn_indices)
 set the (currently active) approximation function index set
 
virtual void update_approximation (const Variables &vars, const IntResponsePair &response_pr)
 updates the anchor point for an approximation
 
virtual void update_approximation (const RealMatrix &samples, const IntResponseMap &resp_map)
 updates the current data points for an approximation
 
virtual void update_approximation (const VariablesArray &vars_array, const IntResponseMap &resp_map)
 updates the current data points for an approximation
 
virtual void append_approximation (const Variables &vars, const IntResponsePair &response_pr)
 appends a single point to an existing approximation
 
virtual void append_approximation (const RealMatrix &samples, const IntResponseMap &resp_map)
 appends multiple points to an existing approximation
 
virtual void append_approximation (const VariablesArray &vars_array, const IntResponseMap &resp_map)
 appends multiple points to an existing approximation
 
virtual void build_approximation (const RealVector &c_l_bnds, const RealVector &c_u_bnds, const IntVector &di_l_bnds, const IntVector &di_u_bnds, const RealVector &dr_l_bnds, const RealVector &dr_u_bnds)
 builds the approximation
 
virtual void export_approximation ()
 export the approximation to disk
 
virtual void rebuild_approximation (const BoolDeque &rebuild_deque)
 rebuilds the approximation after a data update
 
virtual void pop_approximation (bool save_surr_data)
 removes data from last append from the approximation
 
virtual void push_approximation ()
 retrieves approximation data from a previous state (negates pop)
 
virtual bool push_available ()
 queries the approximation for the ability to retrieve a previous increment
 
virtual void finalize_approximation ()
 finalizes the approximation by applying all trial increments
 
virtual void store_approximation (size_t index=_NPOS)
 move the current approximation into storage for later combination; the index of the stored approximation can be passed to allow replacement instead of augmentation (default is push_back)
 
virtual void restore_approximation (size_t index=_NPOS)
 return an approximation from storage; the index identifies a particular stored data set (default is pop_back from stored)
 
virtual void remove_stored_approximation (size_t index=_NPOS)
 remove a stored approximation, due to redundancy with the current approximation, prior to combination (default for no index is pop_back)
 
virtual void combine_approximation (short corr_type)
 combine the current approximation with previously stored data sets
 
virtual Real2DArray cv_diagnostics (const StringArray &metric_types, unsigned num_folds)
 approximation cross-validation quality metrics per response function
 
virtual RealArray challenge_diagnostics (const String &metric_type, const RealMatrix &challenge_pts)
 approximation challenge data metrics per response function
 
virtual void clear_current ()
 clears current data from an approximation interface
 
virtual void clear_all ()
 clears all data from an approximation interface
 
virtual void clear_popped ()
 clears bookkeeping for popped data sets from an approximation interface
 
virtual SharedApproxDatashared_approximation ()
 retrieve the SharedApproxData within an ApproximationInterface
 
virtual std::vector
< Approximation > & 
approximations ()
 retrieve the Approximations within an ApproximationInterface
 
virtual const
Pecos::SurrogateData & 
approximation_data (size_t index)
 retrieve the approximation data from a particular Approximation within an ApproximationInterface
 
virtual const RealVectorArray & approximation_coefficients (bool normalized=false)
 retrieve the approximation coefficients from each Approximation within an ApproximationInterface
 
virtual void approximation_coefficients (const RealVectorArray &approx_coeffs, bool normalized=false)
 set the approximation coefficients within each Approximation within an ApproximationInterface
 
virtual const RealVector & approximation_variances (const Variables &vars)
 retrieve the approximation variances from each Approximation within an ApproximationInterface
 
virtual void file_cleanup () const
 clean up any interface parameter/response files when aborting
 
void assign_rep (Interface *interface_rep, bool ref_count_incr=true)
 assign letter or replace existing letter with a new one More...
 
unsigned short interface_type () const
 returns the interface type
 
const String & interface_id () const
 returns the interface identifier
 
int evaluation_id () const
 returns the value of the (total) evaluation id counter for the interface
 
void fine_grained_evaluation_counters (size_t num_fns)
 set fineGrainEvalCounters to true and initialize counters if needed
 
void init_evaluation_counters (size_t num_fns)
 initialize fine grained evaluation counters, sizing if needed
 
void set_evaluation_reference ()
 set evaluation count reference points for the interface
 
void print_evaluation_summary (std::ostream &s, bool minimal_header, bool relative_count) const
 print an evaluation summary for the interface
 
bool multi_proc_eval () const
 returns a flag signaling the use of multiprocessor evaluation partitions
 
bool iterator_eval_dedicated_master () const
 returns a flag signaling the use of a dedicated master processor at the iterator-evaluation scheduling level
 
bool is_null () const
 function to check interfaceRep (does this envelope contain a letter?)
 
void eval_tag_prefix (const String &eval_id_str, bool append_iface_id=true)
 set the evaluation tag prefix (does not recurse) More...
 

Protected Member Functions

int derived_map_ac (const Dakota::String &ac_name)
 execute an analysis code portion of a direct evaluation invocation
 
void derived_map_asynch (const Dakota::ParamResponsePair &pair)
 no-op hides base error; job batching occurs within wait_local_evaluations()
 
void wait_local_evaluations (Dakota::PRPQueue &prp_queue)
 evaluate the batch of jobs contained in prp_queue
 
void test_local_evaluations (Dakota::PRPQueue &prp_queue)
 invokes wait_local_evaluations() (no special nowait support) More...
 
void set_communicators_checks (int max_eval_concurrency)
 no-op hides default run-time error checks at DirectApplicInterface level
 
- Protected Member Functions inherited from DirectApplicInterface
virtual int derived_map_if (const Dakota::String &if_name)
 execute the input filter portion of a direct evaluation invocation
 
virtual int derived_map_of (const Dakota::String &of_name)
 execute the output filter portion of a direct evaluation invocation
 
virtual void set_local_data (const Variables &vars, const ActiveSet &set)
 convenience function for local test simulators which sets per-evaluation variable and active set attributes; derived classes reimplementing this likely need to invoke the base class API
 
virtual void set_local_data (const Response &response)
 convenience function for local test simulators which sets per-evaluation response attributes; derived classes reimplementing this likely need to invoke the base class API
 
virtual void set_local_data (const Variables &vars, const ActiveSet &set, const Response &response)
 convenience function for local test simulators which sets per-evaluation variable, active set, and response attributes; derived classes reimplementing this likely need to invoke the base class API
 
void overlay_response (Response &response)
 convenience function for local test simulators which overlays response contributions from multiple analyses using MPI_Reduce
 
- Protected Member Functions inherited from ApplicationInterface
void init_communicators (const IntArray &message_lengths, int max_eval_concurrency)
 allocate communicator partitions for concurrent evaluations within an iterator and concurrent multiprocessor analyses within an evaluation.
 
void set_communicators (const IntArray &message_lengths, int max_eval_concurrency)
 set the local parallel partition data for an interface (the partitions are already allocated in ParallelLibrary).
 
void init_serial ()
 
int asynch_local_evaluation_concurrency () const
 return asynchLocalEvalConcurrency
 
short interface_synchronization () const
 return interfaceSynchronization
 
bool evaluation_cache () const
 return evalCacheFlag
 
void map (const Variables &vars, const ActiveSet &set, Response &response, bool asynch_flag=false)
 Provides a "mapping" of variables to responses using a simulation. Protected due to Interface letter-envelope idiom. More...
 
void manage_failure (const Variables &vars, const ActiveSet &set, Response &response, int failed_eval_id)
 manages a simulation failure using abort/retry/recover/continuation
 
const IntResponseMap & synch ()
 executes a blocking schedule for asynchronous evaluations in the beforeSynchCorePRPQueue and returns all jobs More...
 
const IntResponseMap & synch_nowait ()
 executes a nonblocking schedule for asynchronous evaluations in the beforeSynchCorePRPQueue and returns a partial set of completed jobs More...
 
void serve_evaluations ()
 run on evaluation servers to serve the iterator master More...
 
void stop_evaluation_servers ()
 used by the iterator master to terminate evaluation servers More...
 
bool check_multiprocessor_analysis (bool warn)
 checks on multiprocessor analysis configuration
 
bool check_asynchronous (bool warn, int max_eval_concurrency)
 checks on asynchronous configuration (for direct interfaces)
 
bool check_multiprocessor_asynchronous (bool warn, int max_eval_concurrency)
 checks on asynchronous settings for multiprocessor partitions
 
void master_dynamic_schedule_analyses ()
 blocking dynamic schedule of all analyses within a function evaluation using message passing More...
 
void serve_analyses_synch ()
 serve the master analysis scheduler and manage one synchronous analysis job at a time More...
 
- Protected Member Functions inherited from Interface
 Interface (BaseConstructor, const ProblemDescDB &problem_db)
 constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139) More...
 
 Interface (NoDBBaseConstructor, size_t num_fns, short output_level)
 constructor initializes the base class part of letter classes (NoDBBaseConstructor used for on the fly instantiations without a DB)
 
void init_algebraic_mappings (const Variables &vars, const Response &response)
 Define algebraicACVIndices, algebraicACVIds, and algebraicFnIndices.
 
void asv_mapping (const ActiveSet &total_set, ActiveSet &algebraic_set, ActiveSet &core_set)
 define the evaluation requirements for algebraic_mappings() (algebraic_set) and the core Application/Approximation mapping (core_set) from the total Interface evaluation requirements (total_set)
 
void asv_mapping (const ActiveSet &algebraic_set, ActiveSet &total_set)
 map an algebraic ASV back to original total ordering for asynch recovery
 
void algebraic_mappings (const Variables &vars, const ActiveSet &algebraic_set, Response &algebraic_response)
 evaluate the algebraic_response using the AMPL solver library and the data extracted from the algebraic_mappings file
 
void response_mapping (const Response &algebraic_response, const Response &core_response, Response &total_response)
 combine the response from algebraic_mappings() with the response from derived_map() to create the total response More...
 
String final_eval_id_tag (int fn_eval_id)
 form and return the final evaluation ID tag, appending iface ID if needed
 

Private Member Functions

int text_book (const Dakota::RealVector &c_vars, const Dakota::ShortArray &asv, Dakota::RealVector &fn_vals, Dakota::RealMatrix &fn_grads, Dakota::RealSymMatrixArray &fn_hessians)
 demo evaluator function for parallel plug-ins
 

Additional Inherited Members

- Protected Attributes inherited from DirectApplicInterface
String iFilterName
 name of the direct function input filter
 
String oFilterName
 name of the direct function output filter
 
driver_t iFilterType
 enum type of the direct function input filter
 
driver_t oFilterType
 enum type of the direct function output filter
 
bool gradFlag
 signals use of fnGrads in direct simulator functions
 
bool hessFlag
 signals use of fnHessians in direct simulator functions
 
size_t numFns
 number of functions in fnVals
 
size_t numVars
 total number of continuous and discrete variables
 
size_t numACV
 total number of continuous variables
 
size_t numADIV
 total number of discete integer variables
 
size_t numADRV
 total number of discete real variables
 
size_t numADSV
 total number of discete string variables
 
size_t numDerivVars
 number of active derivative variables
 
unsigned short localDataView
 bit-wise record of which local data views are active; see enum local_data_t
 
RealVector xC
 continuous variables used within direct simulator fns
 
IntVector xDI
 discrete int variables used within direct simulator fns
 
RealVector xDR
 discrete real variables used within direct simulator fns
 
StringMultiArray xDS
 discrete string variables used within direct simulator fns
 
StringMultiArray xCLabels
 continuous variable labels
 
StringMultiArray xDILabels
 discrete integer variable labels
 
StringMultiArray xDRLabels
 discrete real variable labels
 
StringMultiArray xDSLabels
 discrete string variable labels
 
std::map< String, var_tvarTypeMap
 map from variable label to enum
 
std::map< String, driver_tdriverTypeMap
 map from driver name to enum
 
std::map< var_t, Real > xCM
 map from var_t enum to continuous value
 
std::map< var_t, int > xDIM
 map from var_t enum to discrete int value
 
std::map< var_t, Real > xDRM
 map from var_t enum to discrete real value
 
std::map< var_t, String > xDSM
 map from var_t enum to discrete string value
 
std::vector< var_tvarTypeDVV
 var_t enumerations corresponding to DVV components
 
std::vector< var_txCMLabels
 var_t enumerations corresponding to continuous variable labels
 
std::vector< var_txDIMLabels
 var_t enumerations corresponding to discrete integer variable labels
 
std::vector< var_txDRMLabels
 var_t enumerations corresponding to discrete real variable labels
 
std::vector< var_txDSMLabels
 var_t enumerations corresponding to discrete string variable labels
 
ShortArray directFnASV
 class scope active set vector
 
SizetArray directFnDVV
 class scope derivative variables vector
 
RealVector fnVals
 response fn values within direct simulator fns
 
RealMatrix fnGrads
 response fn gradients w/i direct simulator fns
 
RealSymMatrixArray fnHessians
 response fn Hessians within direct fns
 
StringArray analysisDrivers
 the set of analyses within each function evaluation (from the analysis_drivers interface specification)
 
std::vector< driver_tanalysisDriverTypes
 conversion of analysisDrivers to driver_t
 
size_t analysisDriverIndex
 the index of the active analysis driver within analysisDrivers
 
String2DArray analysisComponents
 the set of optional analysis components used by the analysis drivers (from the analysis_components interface specification)
 

Detailed Description

Sample derived interface class for testing parallel simulator plug-ins using assign_rep().

The plug-in ParallelDirectApplicInterface resides in namespace SIM and uses a copy of textbook() to perform parallel parameter to response mappings. It is used to demonstrate plugging in a parallel direct analysis driver into Dakota in library mode. Test input files can then use an analysis_driver of "plugin_textbook".

Member Function Documentation

void test_local_evaluations ( Dakota::PRPQueue &  prp_queue)
inlineprotected

invokes wait_local_evaluations() (no special nowait support)

For use by ApplicationInterface::serve_evaluations_asynch(), which can provide a batch processing capability within message passing schedulers (called using chain ApplicationInterface::serve_evaluations() from Model::serve() from IteratorScheduler::run_iterator()).

References ParallelDirectApplicInterface::wait_local_evaluations().


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