There are two major parts of software developed for the framework. The first
part is the lower level backbone of the framework consisting of the
server and workstation layers. These layers are implemented in
C++. Common functionality reused in the different components of these layers
is provided in a separate C++ library. The developed applications are:
- master (server layer): the master distribution process which
distributes task to workstations
- worker (workstation layer): the process that accepts tasks
and executes the appropriate dispatcher
- dispatcher (workstation layer): the dispatchers that
evaluate a specific task
The user layer on the other hand has been implemented in C# (using
``mono'' the open source version of the .NET framework). It consists of a
.NET library containing classes with which optimizers can be easily implemented,
and an application which can run jobs specified using XML. The C# language
was chosen for this layer because it is easy to learn, modern, powerful,
cross-platform and reduces the time needed to implement new optimization
algorithms.
Jesse van den Kieboom
2014-02-26