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