2.3 Process Architecture
Each kernel process in Antares system is a program which
instances specific object(s) from the Antares object hierarchy,
initializes it(them) and calls a method which starts the computation.
Applications are usually more complex programs that besides instancing
adequate object make other specific actions (e.g. drawing in the application
window, communicating with the user). Object in the hierarchy can be divided
into functional groups as shown below.
Figure 2.3.1 : Functional Object Groups (lower objects inherit the higher
ones)
- PVM Extension Layers
Group of layers, which extend the functionality of PVM, provide tools for
spawning and ending processes, automatically maintain connections between
processes and have tools for message management (e.g.buffering and
producing type maps).
Objects : PVM_COVER, PVM_CODEC
- Data Control Layers
Layers from this group represent a data and control interface for sending
and receiving kernel infos. Beside this the layers produce text output
(simple standard output does not work correctly when computing on a network)
and error messages.
Objects : TCollector, TLocalCollector, TGlobalCollector,
TAppCollector
- Computation Control Layers
These layers control the process of computation. They send and receive
kernel control messages, genetic algorithm information messages and evaluate the
termination conditions.
Objects : TParentWarden, TChildWarden
- Generic GA Layers
These layers are responsible for initialization of the kernel. They maintain
all Supportive Objects necessary for genetic
optimization and in case of child they provide a generic GA body.
Objects : TGACover, TLocalGA, TGlobalGA
- External Layers
These layers should contain implementation of a genetic optimization used
for solving specific problems. These layers also have methods for
parallelization of the GA (e.g. diffusion). We expect the programmer
to modify these objects in the first place.
Objects : TDiffusionLGA, TDiffusionGGA
Figure 2.3.2 : Typical object hierarchy instanced in different processes
(lower objects inherit the higher ones)
It is not vital for a program's functionality to instance the highest object
(from inheritance point of view), e.g. if the programmer wants to implement
completely new data and control interface, it is enough to instance or inherit
just the PVM extension layers. The typical process architecture includes
all features needed to implement a fully functional parallel genetic optimization
system with minimum effort.