next up previous contents
Next: Sample Problems Up: Implementations Previous: Implementations   Contents

Subsections

Program Layout

Hardware

The serial versions of the programs are designed to run under any standard UNIX environment and were developed on an Encore Multimax 520 mainframe with 14 NS32532 processors. For testing and performance measurements, also several Hewlett Packard Apollo workstations (Series 700 with 32 MB RAM) have been used.

The target system for the parallel versions was a network of 16 T800 transputers, each equipped with floating point unit, 4 MB RAM and 4 free configurable serial hardlinks, using a Sun workstation as host.

Developing Software

All programs are written in ANSI C using only standard UNIX libraries and include files except for the parallel versions, which also use the Meiko Computing Surface Network library CS-Tools with their according header files for transputer specific functions. The following compilers have been used:

Target System Compiler
Multimax GNU project C and C++ Compiler (v2 preliminary)
HP Apollo HP-UX C compiler
Transputer MEIKO c compiler driver

General Principles

The aim of this project was to explore and test genetic algorithms for the training of neural networks on a transputer network as a possible alternative to backpropagation. A task like this naturally involves permanent changes an enhancements in the program as well as the testing of several algorithmic alternatives and would normally result in a series of different program versions, which makes global changes and debugging very difficult and direct comparisons between programs often impossible.

To avoid this problems, all simulation parameters, procedural alternatives and new features were either added as options to the existing program or linked to it at an object code level, keeping the changes to the original code as minimal as possible. This requires a strict modularity of the code with well defined, standardised interfaces. The class concept and the inheritance features of an object oriented programming language like C++ would be perfectly suited to meet with these requirements, however no C++ compiler was available for the transputer system, so the modularity had to be reflected on an object code level, using header files for the declaration of global interface variables and procedures.

The definition of the training problems follows the same strategy. Since the problem size is a variable in many performance measurements, the usage of explicit training files including the definition of a certain network topology and the corresponding training patterns would lead to many similar definition files varying in just one parameter (e.g. the number of input nodes) and new network options might require numerous file updates.

In order to avoid this, all simulation parameters including network definitions and problem sizes are passed to the programs as command line option and different test problems are defined by a small C-file which can interpret its own command line options and then define the network topology and the training set. These definition files are linked to the rest of the program without requiring its recompilation.


next up previous contents
Next: Sample Problems Up: Implementations Previous: Implementations   Contents

(c) Bernhard Ömer - oemer@tph.tuwien.ac.at - http://tph.tuwien.ac.at/~oemer/