Download Parallel Processing

Transcript
process is always fully loaded, so every
transputer is never idle.
The use of links also has the advantage that the pc_link and cp_link
processes are descheduled; they don't
consume processor time to check now
and then if a service is requested from
them. If the calculating process wants a
service, the processes are rescheduled.
Because we use internal links; and"be-:
cause both pc_link and cp_link will wait
on the calculating process, the calculating process will not be descheduled to
wait for a channel to become ready "and
it's able to keep on running.
The
Mandelbrot
messagepasser
demonstrates how we can combine
transputer features (e.g., internal channels, process priority levels, and characteristics of the hardware scheduler) into
an efficient whole.
A Generic Messagepasser
A network of transputers is just like
any other computer network. It cannot
A
network of
transputers is just
like any other
computer network.
It cannot claim
divine right or other
forms of exemption.
Figure 5 - Message Types
• general resource call
direct resource call
resource call acknowledge
general path call
direct path call
path call acknowledge
• message request
normal message
confirmed message
express message
• retransmit packet
check link
check node
claim divine right or other forms of exemption. As with other computer networks, it's best to keep the sending,
receiving, routing, error detection and
correction, etc., out of user sight.
One of the goals of a generic messagepasser is to support multitasking.
Multitasking for a system of transputers
is a minor extension, but it's of great use
to the user because he can run second
~sk.
"
For instance, in a control system, it
might be handy to start a statistical task
or a distributed database. In later stages,
dynamic load balancing "of the pr6cesses
on the transputers should be possible. So
let me give you an overview of a generic
messagepasser.
a
The ISO-OSI 7-Layer Model
The ISO-OSI network model provides
a good starting point for a general purpose messagepasser. If we look briefly at
the ISO-OSI model for a network, we can
see that it's divided into several layers
(see Figure 3).
Not all layers of the. ISO-OSI model
need to be implemented for a transputer
messagepasser since the model is general
and flexible in nature. The physical layer
is already implemented by the
transputer hardware. The wires of the
external channels form the Physical
layer.
The messagepasser on a single
transputer will roughly look like Figure
4.
The Data link layer consists of several
parallel processes - two each for the eight
hardware channels or four links of the
transputer.
The function of the Data link layer is
to receive message-packets, put them in
a message-block, check them for parity,
and pass a block pointer to the Network
layer.
The Network layer takes care of the
routing of the messages. This layer has
the following tasks. It interprets the message-blocks coming from the Data link
layer.
The Network layer looks at the type
of message and the destination of the
message. If the block is meant for
another node, the network layer will
look into a routing table to find the best
link to output the block on. In case of
obstruction of the best link, an alternative link may be chosen from the table.
Other things may also influence the
Network layer'S choice of a link. If the
block is meant for this node, the pointer
to the message-block is passed on to the
Transport layer.
Message-blocks coming from the
Transport layer are interpreted on their
destination address. The source address
is completed with the node ID (NID).
The Network layer then routes the block
to an appropriate link.
In case of receive or transmit errors
fro~ the Data link layer, the Network
layer issues a check on the erroneous
link/node.
The upper layers have identical
processes running for every task, so we
can keep the task administration simple.
The Transport layer takes data from"
the Session layer and splits it up into
message-blocks. It also determines the
message type. (The types of messages
currently defined are in Figure 5.)
The resource call types are used to
find a resource in the network (Le., disk
systems, screen if 0, etc.). The path calls
find and build a specific or general virtual channel to another process. The
message types are used when a virtual
channel between two processes is established and communication can take
place. The last are some miscellaneous
types used to check channels, etc.
The Transport layer splits up messages to be sent into message-blocks with
a maximum size of 255 bytes. This message-size is a compromise between the
performance advantage of long messages and the ability to send short, express messages through the network.
Smaller messages are allowed, so there's
little overhead in sending characters to a
screen on another node (a host computer, for example).
Received message-blocks are assembled into a singl~ message, and the
pointer to this messages is passed on to
the Session layer.
The higher layers (Session layer
through Application layer) implement
the interface to a kernel. The type,
length, and destination of messages are
determined here.
Thanks From Transputerland
A good discussion of a general messagepasser would fill a book. I hope my
brief discussion has given you at least a
little insight into the purpose and utility
of a messagepasser.
I wish to thank Prof. Andy Bakkers of
the University of Twente, The Netherlands, for guiding me into (parallel)
transputerland.
•••
MICRO CORNUCOPIA, #38, Nov-Dec 1987
13