ForkApplicInterface Class Reference

using forks. More...

Inheritance diagram for ForkApplicInterface:

ApplicationInterface Interface List of all members.

Public Member Functions

 ForkApplicInterface (const ProblemDescDB &problem_db)
 constructor
 ~ForkApplicInterface ()
 destructor
void derived_map (const Variables &vars, const ActiveSet &set, Response &response, int fn_eval_id)
 that is specific to a derived class.
void derived_map_asynch (const ParamResponsePair &pair)
 asynchronous evaluation that is specific to a derived class.
void derived_synch (PRPList &prp_list)
 classes. This version waits for at least one completion.
void derived_synch_nowait (PRPList &prp_list)
 any completions if none are immediately available.
int derived_synchronous_local_analysis (const int &analysis_id)
const StringArrayanalysis_drivers () const
 retrieve the analysis drivers specification for application interfaces

Private Member Functions

void derived_synch_kernel (PRPList &prp_list, const pid_t pid)
 derived_synch_nowait()
pid_t fork_application (const bool block_flag)
 filter, analysis programs, and output filter
void asynchronous_local_analyses (const int &start, const int &end, const int &step)
 execute analyses asynchronously on the local processor
void synchronous_local_analyses (const int &start, const int &end, const int &step)
 execute analyses synchronously on the local processor
void serve_analyses_asynch ()
 serve the analysis scheduler and execute analysis jobs asynchronously

Private Attributes

ForkAnalysisCode forkSimulator
 individual programs and checking fork exit status
std::map< pid_t, int > processIdMap
 asynchronous evaluations

Detailed Description

using forks.

ForkApplicInterface uses a ForkAnalysisCode object for performing simulation invocations.


Member Function Documentation

int derived_synchronous_local_analysis ( const int &  analysis_id  )  [inline, virtual]

This code provides the derived function used by ApplicationInterface:: serve_analyses_synch() as well as a convenience function for ForkApplicInterface::synchronous_local_analyses() below.

Reimplemented from ApplicationInterface.

pid_t fork_application ( const bool  block_flag  )  [private]

filter, analysis programs, and output filter

Manage the input filter, 1 or more analysis programs, and the output filter in blocking or nonblocking mode as governed by block_flag. In the case of a single analysis and no filters, a single fork is performed, while in other cases, an initial fork is reforked multiple times. Called from derived_map() with block_flag == BLOCK and from derived_map_asynch() with block_flag == FALL_THROUGH. Uses ForkAnalysisCode::fork_program() to spawn individual program components within the function evaluation.

void asynchronous_local_analyses ( const int &  start,
const int &  end,
const int &  step 
) [private]

execute analyses asynchronously on the local processor

Schedule analyses asynchronously on the local processor using a self-scheduling approach (start to end in step increments). Concurrency is limited by asynchLocalAnalysisConcurrency. Modeled after ApplicationInterface::asynchronous_local_evaluations(). NOTE: This function should be elevated to ApplicationInterface if and when another derived interface class supports asynchronous local analyses.

void synchronous_local_analyses ( const int &  start,
const int &  end,
const int &  step 
) [inline, private]

execute analyses synchronously on the local processor

Execute analyses synchronously in succession on the local processor (start to end in step increments). Modeled after ApplicationInterface::synchronous_local_evaluations().

void serve_analyses_asynch (  )  [private]

serve the analysis scheduler and execute analysis jobs asynchronously

This code runs multiple asynch analyses on each server. It is modeled after ApplicationInterface::serve_evaluations_asynch(). NOTE: This fn should be elevated to ApplicationInterface if and when another derived interface class supports hybrid analysis parallelism.


The documentation for this class was generated from the following files:
Generated on Wed Nov 5 19:54:06 2008 for DAKOTA by  doxygen 1.5.1