Inheritance diagram for ForkApplicInterface:

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 StringArray & | analysis_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 | |
ForkApplicInterface uses a ForkAnalysisCode object for performing simulation invocations.
| 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.
1.5.1