267
the network changes, for instance when more transputers are added, the software has to be re
compiled (KING 1989). In addition, programming errors concerning the message passing over
the channels often lead to unexpected deadlocks.
A more convenient way to handle transputer networks is to make use of the Helios operating
system (PERIHELION 1989). The Helios shell is a complete C-shell implementation offering a
Unix-like command set. Programmers familiar with Unix will have no problems using it. Helios is a
distributed operating system based on a client/server model, where application tasks request
services from system-provided server tasks, such as file handlers or window managers. These
tasks are distributed over many different processors. The Helios nucleus, the core of the opera
ting system which is normally available on every processor, is responsible for loading and sche
duling tasks on a processor and enabling tasks to communicate with each other. This communi
cation between different processors is handled automatically by the operating system and does
not affect the user. Helios is able to run the same code on different transputer installations no
matter what topology or which number of processors they have. Only the architecture of the
network has to be defined in a Resource Map which allows Helios to be distributed over the
network.
Another Helios tool helping the programmer to develop parallel algorithms is the 'Component
Distribution Language' (CDL). Usually an application is parallelized by dividing it into a number of
smaller parts or processes. The programmer has to describe these program components and
their interconnections. CDL offers the possibility to define these parallel structures in a Unix-like
syntax. The pipe constructor | defines a pipeline between two programs. 'A | B | B | B’ or 'A [3] | B'
for example describes the pipeline structure of Fig. 1. The interleave constructor ||| is used to
construct farms. 'A [5] ||| B' would produce a farm with five worker components which is illustrated
in Fig. 3. Using CDL the programmer will have no problems in synchronizing the multiple I/O
between the tasks running on different transputers. This job is done by the Task Force Mana
ger, a server which controls the network and handles the »load balancing« between network
components.
load balancer
logical links
(independent from physical links)
Fig. 3 Transputer farm
Most algorithms in photogrammetric image processing can easily work with geometrical paralle
lism, which is less difficult to implement than the algorithmic approach and promises a significant
steeper speed-up curve (HEALEY & DESA 1989). Due to this fact the TUB working group deci
ded to implement the time consuming algorithms for resampling and image matching in a com
mon sequential programming language like C which is the standard under Helios. The advan
tage of this approach is the possibility of using already existing algorithms running on several
transputers each of them doing the same work on different parts of an image. This will reduce ef
forts in software development since most of the work to be done is managing the data access
for each »worker« within the network. Whether Helios farms or user designed pipelines are the