[ Search |  Up Level |  Project home |  Index |  Class hierarchy ]

 ParallelObjective.ox

Client and Server classes for parallel optimization using CFMPI.

 Global functions

Functions
 ParallelObjective Set up MPI Client-Server support for objective optimization.

 CstrServer : ObjServer

Public methods
 CstrServer
 Execute Do the objective evaluation.
Inherited methods from ObjServer:
Loop, ObjServer
Inherited fields from ObjServer:
Nfree, Nstruct, obj

 ObjClient

Client for parallel evaluation of objectives.
Public fields
 obj const Objective.
Public methods
 Execute
 MultiParam
 ObjClient
 SubProblems Distribute subproblems of an objective across servers.

 ObjServer

Server for parallel evaluation of BlackBox objectives.
Public fields
 Nfree
 Nstruct
 obj const Objective.
Public methods
 Execute virtual Do the objective evaluation.
 Loop virtual Wait on the objective client.
 ObjServer

 SepServer : ObjServer

Public methods
 Execute Separable objective evaluations.
 SepServer
Inherited methods from ObjServer:
Loop, ObjServer
Inherited fields from ObjServer:
Nfree, Nstruct, obj

 Global

 ParallelObjective

ParallelObjective ( obj , DONOTUSECLIENT , NSubProblems , MaxSubReturn )
Set up MPI Client-Server support for objective optimization.
Parameters:
obj Objective to parallelize
DONOTUSECLIENT TRUE (default): client node does no object evaluation
FALSE after putting servers to work Client node does one evaluation.
NSubProblems integer, number of subproblems that can be done simultaneously.
MaxSubReturn integer, longest vector returned by a subproblem

 CstrServer

 CstrServer

CstrServer :: CstrServer ( obj )

 Execute

CstrServer :: Execute ( )
Do the objective evaluation. Receive structural parameter vector and Encode() it. Call vfunc().
Returns:
Nstruct (max. length of next expected message);

 ObjClient

 Execute

ObjClient :: Execute ( )

 MultiParam

ObjClient :: MultiParam ( Fmat , aFvec , af )

 obj

const decl obj [public]
Objective.

 ObjClient

ObjClient :: ObjClient ( obj )

 SubProblems

ObjClient :: SubProblems ( F )
Distribute subproblems of an objective across servers.

 ObjServer

 Execute

virtual ObjServer :: Execute ( )
Do the objective evaluation. Receive structural parameter vector and Encode() it. Call vfunc().
Returns:
Nstruct (max. length of next expected message);

 Loop

virtual ObjServer :: Loop ( nxtmsgsz , calledby , update )
Wait on the objective client.
Parameters:
nxtmsgsz integer, number of free parameters
calledby string, where I'm coming from
update TRUE, get announced new parameter vector after STOP

 Nfree

decl Nfree [public]

 Nstruct

decl Nstruct [public]

 obj

const decl obj [public]
Objective.

 ObjServer

ObjServer :: ObjServer ( obj )

 SepServer

 Execute

SepServer :: Execute ( )
Separable objective evaluations.

 SepServer

SepServer :: SepServer ( obj )