Parallel computer system

Abstract: A parallel computer system comprises a number of processing elements (PE), at least one communication element (CE), an internal network (12) interconnecting the communications and processing elements, at least one external network (16) connected to the communications element, and a number of services resident in the elements. Each of the elements includes a protocol stack comprising transport (20), network (22), logical link (24) and MAC (26) (media access control) layers. Routing messages between services (18) and the external network (16) is performed in the MAC layer (26), rather than by a relay service at application level as in conventional systems. This improves the efficiency of the system, by obviating the need to pass messages up the stack to the routing function and then to pass them back down the stack again.

Description: Background to the Invention This invention relates to parallel computer systems. A parallel computer system comprises a number of processing nodes interconnected by an internal network which enables the nodes to send messages to each other. In such a system, interconnection between application programs running in different nodes is conventionally handled by means of a multi-layer protocol stack, for example based on the well known Reference Model for Open Systems Interconnection (OSI). Such a protocol stack typically includes transport, network, logical link and media access control (MAC) layers. For example, US-A-5088090 describes a computer system comprising a number of local area networks, each of which connects a number processing nodes. The local area networks are interconnected at MAC-layer level, based upon information contained in the MAC-layer header. It has been proposed that one or more of the nodes should act as communications elements (CE) providing connection to the outside world by way of one or more external networks, while the other nodes act as processing elements (PE). The PEs communicate with the outside world by way of the CE. In this case, some means must be provided for routing messages between the external network and the individual applications within the PEs. This may be achieved by means of a relay service, which runs at application level within the CE. However, a problem with this is that it imposes a large processing load on the CE since all incoming messages must be passed up the protocol stack within the CE the to relay service, and then, if they are destined for a PE rather than for the CE, passed back down the stack to be transmitted over the internal network to the PE in which the target application is located. This problem becomes more severe as the number of PEs is increased, and as a result the CE can become a bottleneck, slowing down the operation of the whole system. The object of the present invention is to overcome this problem. Summary of the Invention According to the invention computer apparatus comprises the features specified in claim 1. It can be seen that, because the routing function is performed at the level of the MAC layer, it is not necessary for message to be passed up the stack to a relay function, and passed down again. Hence, the amount of processing within the CE is substantially reduced. Brief Description of the Drawings Figure 1 is a block diagram of a parallel computer system in accordance with the invention. Figure 2 is a schematic diagram of a message transmitted within the system. Figure 3 is a block diagram showing a MAC-relay component in more detail. Figures 4-6 are flow charts showing the operation of the MAC-relay component. Description of an Embodiment of the Invention One parallel computer system in accordance with the invention will now be described by way of example with reference to the accompanying drawings. Overall Description of the System Referring to Figure 1, the system comprises a number of processing nodes 10, including a plurality of processing elements PE and a plurality of communications elements CE. The PEs and the CEs are interconnected by means of an internal network 12 which may, for example, be a delta-switch network, which allows any one of the nodes to pass a message to any other node. Each communications element CE is connected by means of one or more couplers 14 to a number of external local area networks (LANs) 16. These LANs may, for example, be standard FDDI (fibre distributed data interface) networks. All communications between the system and the outside world take place by way of one of the CEs, over one of the external LANs. Thus, if one of the PEs requires to communicate with the outside world it must do so by way of a CE. Each node (PE or CE) includes one or more services 18, ie applications programs which provide a particular service for a user, such as for example a database service. A given service may have multiple instances, these instances being distributed across a number of nodes. Each node (PE or CE) also includes a protocol stack, comprising a transport layer 20, a network layer 22 and a logical link layer 24. These layers 20-24 may all be conventional. Instead of a conventional MAC layer, however, each node includes a special layer referred to herein as the MAC-relay layer 26, which will be described in detail below. The MAC-relay layer in each node is connected to the internal network 12 by way of a network link 28. Each node's MAC-relay layer can communicate with every other nodes MAC-relay layer via this internal network. The MAC-relay in each CE also communicates with the external LAN couplers 14 by way of respective external MAC layers 30. These external MAC layers may be conventional. The MAC-relay in each PE presents a virtual MAC interface 31 for every external MAC that is available in the CEs. As will be described, the MAC-relays provide a mechanism for routing messages between the nodes, avoiding the need for any relay function at application level. Message Format Figure 2 shows the format of a message passed over the internal network 12. The message comprises message data 32 which is generated at application level, a transport header 34 added by the transport layer, a network header 36 added by the network layer, a logical link header 38 added by the logical link layer, and a MAC-relay header 40 added by the MAC-relay layer. The MAC-relay header includes a destination element address, indicating which of the nodes (PE or CE) the message is to be routed to by the internal network. It also contains an identifier which indicates the type of message. Possible message types include: internal, external and management message types. MAC-Relay Referring now to Figure 3, this shows the MAC-relay layer 26 in one of the CEs in more detail. The MAC-relays in the PEs are similar, but have fewer functions since they do not communicate with the external MACs 30. The MAC-relay includes a message processing module 42 which receives messages from and passes messages to the internal network, external MAC and the logical link layer of the local protocol stack. The MAC-relay also includes a mapping function 44, which is used for routing messages. The mapping function 44 uses a set of routing tables 46, and a load balancing function 48, the purpose of which will be explained. Message Processing Figure 4 shows the operation of the MAC-relay in a CE when it receives a message from the external MAC component. (4-1) The MAC-relay snoops at the message type within the transport header 34 (Figure 2) of the message, and extracts either the destination transport address or the transport reference as described below. (4-2) The MAC-relay then checks whether this is a connection establishment request (ie a request from a user to be connected to a particular service). (4-3) If so, the service mapping function is called, to determine which of the nodes the required service resides in. If there are several instances of the service, resident in different nodes, the load balancing function is called to select one of these instances. This selection may be based, for example, on a simple round-robin algorithm, or may use a more sophisticated algorithm for ensuring even load-balancing and resource sharing between the nodes. The mapping function returns the identity of the selected element. The service mapping function uses a service location table (Figure 9). (4-4) In the case of OSI transport messages that are not connection establishment requests, the transport reference is used to determine which node the message is routed to. It is arranged that, whenever a connection is established between a user and a service instance, the service allocates a structured transport reference (Figure 11) to that connection. Part of this reference indicates which node the service is resident in. Thus, the MAC-relay can use this transport reference to determine directly the destination of the message, without having to consult any tables. In the case of TCP/IP transport messages, local tables are maintained, in the CEs, by MAC-relay to steer incoming messages. (4-5) The MAC-relay then checks whether the destination node is the local node, or some other node. (4-6) If the destination node is the local node, the message is passed to the local protocol stack, and it will then be passed up this stack to the required service. (4-7) If, on the other hand, the message is intended for another node, the MAC-relay builds a MAC-relay message by adding a MAC-relay header (see Figure 2) and passes it to the network link 28, for transmission over the internal network 12. Figure 5 shows the operation of the MAC-relay in a CE when it receives non-management message from the internal network. (5-1) The MAC-relay checks to see if the message is an internal message or if it is destined for the external LAN. (5-2) If it is an internal message, the MAC-relay header is removed, and the message is passed to the local protocol stack. It is then passed up this stack to the target service. (5-3) If it is an external message, the MAC-relay header is removed, and the message is passed to the designated external MAC 30 for transmission on the LAN. Figure 6 shows the operation of the MAC-relay in a PE or CE when it receives a message from the local protocol stack. (6-1) The MAC-relay uses the virtual MAC identifier over which the message is sent to deduce whether the message is to be sent on the internal network, or on one of the external LANs. (6-2) If the destination is internal the destination MAC address is used to determine the destination element number. (6-3) If the destination is external, the route mapping function is called to translate the virtual MAC identifier into an element number (identifying one of the CEs) and a coupler number (identifying a particular LAN coupler attached to that CE). (6-4) A MAC-relay message is then built, by adding a MAC-relay header. The message is then passed to the network link 28 for transmission over the internal network 12. Figure 7 shows the operation of the MAC-relay in a CE when it receives a management message, or a management notification. The MAC-relay in each CE contains a service location table (Figure 9) that allows it to route connection requests for particular services to the nodes which offer the nominated service. This table is used by the service mapping function described in (4-3). If the message indicates the availability of a service upon a particular node then the node's address is added to the service's entry in the service location table. If the message indicates that the service has ceased to be available, then the node is removed from the service's entry in the service location table. If the MAC-relay receives a management notification which indicates that particular node is no longer available, then the specified node is removed from every entry in the service location table. When the local MAC-relay in a PE is informed that a service has changed its status (become available) it builds a management message indicating the service identifier and the node address, which it sends to each CE. Figure 8 shows the operation of the MAC-relay in a PE when it receives a management message. The MAC-relay in each PE maintains a coupler location table (Figure 10) which it uses to map virtual MAC indentifiers onto element numbers (identifying CEs) and coupler numbers (identifying a particular LAN coupler attached to the CE). The table also identifies which LAN couplers are attached to the same physical LAN, this is used to identify resilient LAN routes in case of failure. The coupler location table is used by the route mapping function described in (6-3). If the MAC-relay receives a message indicating the availability of a particular coupler it adds it to the table and makes it available for use by the route mapping function (6-3). If the MAC-relay receives a message indicating the failure of a particular coupler it logically removes it from the table, making it unavailable to the route mapping function (63).

Claims: Computer apparatus comprising: a/ a plurality of processing nodes (PE,CE) interconnected by an internal network (12) enabling the nodes to send messages to each other; b/ each of the processing nodes (PE, CE) running application programs (18) providing a plurality of services which are resident in the processing nodes; c/ each of the processing nodes (PE, CE) being organized internally in accordance with a protocol stack comprising a transport layer (20), network layer (22), logical link layer (24), and media access control (MAC) layer (26); d/ each of the processing nodes (PE, CE) being arranged to communicate with the other processing nodes at the level of the MAC layer (26), by way of the internal network (12); and e/ at least one of the processing nodes (CE) being arranged to act as a communication element for connection of the apparatus to an external network (16); characterised in that: f/ the MAC layer (26) in the communication element (CE) is arranged to receive service request messages from the external network (16) and to determine, for each service request message, whether the application program for providing the requested service is resident in the communication element (CE) or in another one of the processing nodes (PE); g/ the MAC layer (26) in the communication element is arranged to pass the service request message up the protocol stack (24, 22, 20) within the communication element to the application program, if the application program (18) for providing the requested service is resident in the communication element (CE) ; and h/ the MAC layer (26) in the communication element is arranged to route the service request message over the internal network (12) to the processing node (PE) in which the application program for providing the requested service resides, if the application program (18) for providing the requested service is not resident in the communication element (CE). Computer apparatus according to Claim 1 wherein the communication element (CE) includes a route mapping function for determining which of the processing nodes (PE, CE) the application program for providing the requested service resides in. Computer apparatus according to Claim 2 wherein communication element (CE) includes a load balancing function for selecting between a plurality of application programs capable of providing the requested service Computer apparatus according to any preceding claim wherein the internal network (12) comprises a delta-switch network. Computer apparatus according to any preceding claim wherein each service request message received from the external network (16) includes a transport header (34), a network header (36), and a logical link header (38), and wherein the MAC layer (26) in the communication element (CE) is arranged to extract a destination transport address from the transport header (34).

Inventors: REDDIN TIMOTHY GERARD, ROUND JEREMY SIMON, WALSH DAVID STEPHEN, REDDIN, TIMOTHY GERARD, ROUND, JEREMY SIMON, WALSH, DAVID STEPHEN
Applicants: INT COMPUTERS LTD, INTERNATIONAL COMPUTERS LIMITED
Application year: 1993
Main classification: H04L12
IPC codes: G06F15, H04L12