Abstract:
Apparatus for providing a cluster processing system including a plurality of processing nodes, each node having a processor and associated local memory, each node being capable of responding to software commands to execute operations on data and to store the results of the operations locally, one of the processing nodes further comprising devices for furnishing external inputs to and receiving outputs from the cluster processing system; a first network fixedly joining the processing nodes for communication of data and software among the nodes; and a second network joining the processing nodes for control of the nodes.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     This invention relates to computer systems and, more particularly, to apparatus for providing clusters of computers capable of easy administration and economic operation.  
         [0003]     2. History of the Prior Art  
         [0004]     Computers have developed along a number of different but similar lines. In general, each such line has begun with a relatively simple processor capable of manipulating bits of information stored in some particular format. Storage for control software and data being manipulated is provided. Circuitry for providing input and output to the processor and for viewing and controlling the operation is also provided.  
         [0005]     As the hardware for each type of digital computer is being developed to a useful state, various forms of software are usually being developed to make use of its capabilities. When one generation of software proves economically useful, more software is developed to make use of more of the capabilities of the computer hardware. When the software has stretched the capability of the hardware to its limits, the hardware must be improved and memory increased so that more, larger, and more capable programs may be run. With each new development, additional uses are visualized and newer generations of the computer are developed. This increase in computer capabilities seems to take place whatever the particular computer type may be until that type of computer reaches some practical limit.  
         [0006]     Recently, even the most advanced computer architectures seemed to have been developed to a point at which increases in their capabilities do not provide an increased return in overall proficiency. For example, in order for a typical processor to handle more information faster, the number of transistors utilized by the processor and its memory are typically increased. This requires putting more transistors on the processor chip and placing the various components closer together. An increase of four times the number of processing transistors along with a commensurate increase in local memory is generally thought to increase speed of performance by ten to fifteen percent. Theoretically, a larger number of smaller transistors with shorter interconnections may be operated more rapidly with the expenditure of less power along the shorter current paths. However, the larger numbers of paths and transistor devices operating more rapidly expends more power; and a point seems to be rapidly approaching (or to have been reached already with some architectures) at which the proximity of the transistors devices and associated connecting circuitry increases interference and current leakage to a point at which overall operation deteriorates.  
         [0007]     Various architectural changes have been attempted to obviate this limiting difficulty. Newer designs have tended to utilize a large number of processors which share the internal memory and other components of a single computer. Utilizing a number of processors tends to reduce the need to place so many transistors on a single chip thereby reducing individual processor complexity. This method of approaching the problem seems to work but only up to a limit; then a new set of problems arises. More particularly, the ability to control the access by a large number of processors to common memory reaches a limit fairly rapidly. Consequently, this method of development also appears to present an architectural dead end.  
         [0008]     Another approach which has been taken to overcome the limitations posed by the known computer architectures is called clustering. In clustering, a large number of what may be relatively unsophisticated computers are joined by switches and cabling in a form of network by which those computers may share data. Then an operating system is provided by which all of the individuals computers may cooperate in handling large problems. Clustering offers a number of advantages. It allows controlling software to assign individual portions of a particular operation being undertaken to individual computers of the cluster, those portions to be handled by those individual computers, and the results of the individual portions to be furnished to the other computers of the cluster when they become available. This essentially allows a large operation to be broken into smaller operations which can be conducted in parallel.  
         [0009]     Clustering is especially advantageous in allowing the use of a large number of inexpensive individual computers to handle a problem typically requiring a much more sophisticated and expensive computer. This allows the basic hardware of a cluster to be relatively inexpensive when contrasted to the hardware cost of advanced computers in which a number of processors share memory. Clustering does not seem to reach the computational limits of shared-memory multiprocessor machines since each individual computer of the cluster controls its own internal memory and computing operations. Moreover, for various reasons, clustering has been adopted by researchers who believe that software design is advanced when the software is freely available to those who might contribute to its improvement; consequently, a great deal of useful software is available inexpensively. For example, system software for clustering is available through the “Beowulf” project.  
         [0010]     Because of these advantages, clustering has been increasingly used as a method for handling large problems.  
         [0011]     In general, however, clustering has a number of inherent difficulties which have limited its use to a research tool. First, the operation of clusters has been restricted to highly capable computer scientists. This results because of the large amount of knowledge required for the operation of a cluster. For example, to set up a cluster requires that the individual computers all be joined together in some form of network by which cooperation can be coordinated; this requires a sophisticated knowledge of networks and their connections. Once the physical network is established, the various switches of the network must be configured before the cluster can be brought into operation. Once the switches have been configured, each individual computer must be booted and its correct operation in the network tested; this typically requires a local operator and a coordinating administrator at a selected controlling one of the computers. Bringing a cluster into operation typically requires a large staff of engineers and may take days. Because of the difficulty of start-up, once a cluster is running, it is typically kept running at all costs.  
         [0012]     Keeping a cluster running is also quite difficult and time consuming. Once in operation and handling a particular problem, any failure of an individual computing unit requires that the failure be known to and its handling be coordinated with all of the other units. The system software controlling the cluster must be able to indicate to all of the units that a particular unit has malfunctioned and take steps to obviate the problem. This requires advising each individual unit that a particular unit has malfunctioned, taking steps to see that any incorrect data is isolated, and handing the function of that computing unit to some other unit. This often requires a significant amount of operating time. A full time staff is needed to coordinate the operation of a cluster, to keep the cluster functioning, and to handle problems as they arise.  
         [0013]     Clusters have other problems. Like other computers, the individual units of a cluster require power to operate and because of that generate heat. The power required to operate the individual computers of a cluster, the switches connecting the units of the cluster, and associated air conditioning is similar to that required to operate super computers of similar processing power.  
         [0014]     The power requirements for operating and the staffing needed have rendered the actual costs of using clusters similar to those for computer systems of similar capabilities. All of these problems have limited the use of clusters to high end laboratory use.  
         [0015]     It is desirable to provide new apparatus for providing clusters of computers capable of easy administration and economic operation.  
       SUMMARY OF THE INVENTION  
       [0016]     The present invention is realized by apparatus providing a cluster processing system including a plurality of processing nodes, each node having a processor and associated local memory, each node being capable of responding to software commands to execute operations on data and to store the results of the operations locally, one of the processing nodes further comprising devices for furnishing external inputs to and receiving outputs from the cluster processing system; a first network fixedly joining the processing nodes for communication of data among the nodes; and a second network joining the processing nodes for control of the nodes.  
         [0017]     These and other objects and features of the invention will be better understood by reference to the detailed description which follows taken together with the drawings in which like elements are referred to by like designations throughout the several views. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0018]      FIG. 1  is a diagram illustrating a computer cluster designed in accordance with the prior art.  
         [0019]      FIG. 2  is a diagram illustrating a computer cluster designed in accordance with the present invention.  
         [0020]      FIG. 3  is a diagram illustrating a first network for a computer cluster designed in accordance with the present invention.  
         [0021]      FIG. 4  is a diagram illustrating a second network for a computer cluster designed in accordance with the present invention.  
         [0022]      FIG. 5  is a flow chart illustrating the operation of a system in accordance with the invention.  
         [0023]      FIG. 6  is a diagram illustrating a portion of the computer cluster shown in  FIG. 2 . 
     
    
     DETAILED DESCRIPTION  
       [0024]      FIG. 1  illustrates a typical computer cluster  10  designed in accordance with the prior art. The cluster  10  essentially comprises a plurality of individual computers  12  associated with one another over a network  14 . Each of the computers  12  is capable of individual operation and for this purpose includes a processor, local memory, and various input and output devices. Among those input and output devices may be a monitor for viewing operations being conducted utilizing the processor, a keyboard, a mouse, compact disk (CD), DVD, and floppy disk drives by which operations of the processor may be controlled. Each of the computers  12  may also include devices associated with the processor for providing graphic presentations on the monitor, for providing sound outputs, for connecting to the network  14 , and the like. The individual computers  12  in the cluster  10  are all shown with monitors, keyboards, and mice although only a few of these devices are typically used in an actual cluster; and those used are often moved about and shared among computers.  
         [0025]     The network  14  by which the individual computers  12  are associated in a typical computer cluster  10  may be an Ethernet network or other type of network (including one of various proprietary networks) by which individual computers  12  may be linked for the transfer of data. In order to allow the individual computers  12  to function together as a cluster, the network  14  includes a plurality of switches  16  (only one of which is illustrated) and various cables  18  joining network connectors (not shown) at the individual computers  12  to the switches  16 . Before the cluster  10  can be operated, the individual switches  16  must each be configured to function with the individual computers  12 . This configuring includes, among other things, the assignment of network addresses to each of the individual computers. These network addresses are then utilized by control software running on one of the processors to generate lists by which the individual computers  12  may be identified and assigned particular operations in the cluster.  
         [0026]     A typical cluster  10  has no arrangement for controlling the individual computers  12  of the cluster  10  other than the controls normally offered by any individual computer; consequently, control of the cluster  10  must be exercised by transferring software commands among the individual computers  12  via the network  14  once all of the individual computers  12  have been brought into operation.  
         [0027]     Because a typical cluster  10  has no means other than the network  14  for overall control, the individual computers  12  of the cluster  10  must be brought into operation individually. That is, each individual computer must be turned on and booted into operation.  
         [0028]     A typical cluster  10  has no means by which the status of any computer in the cluster may be determined other than over the network. Therefore, in bringing a cluster into operation, it is necessary for an operator at each individual computer to establish network communications with an operator on a central one of the computers and assure that operations over the network are taking place correctly before the cluster can be operated as a cluster.  
         [0029]     It will be apparent to those skilled in the art that the initialization and operation of a computer cluster  10  is a demanding process requiring a significant amount of skilled manpower. In fact, the initialization of a large cluster  10  in accordance with the prior art may require days of time before all of the individual computers  12  are enabled and communicating effectively with the central one of the computers  12 . Because of this, a large staff of skilled computer scientists is typically provided to assure that a cluster  10 , once in operation, continues to function correctly.  
         [0030]     In order to keep a cluster  10 , once functioning, in operation, it is necessary to provide software by which any failure at a particular computer  12  may be detected and corrected. This requires that when an individual computer  12  malfunctions, the fact of the malfunction be communicated to all of the other computers  12 , any operations dependent on the results of the operations by the malfunctioning computer  12  be suspended, and the malfunction corrected. The control software necessary to this end is quite extensive in the typical cluster  10 .  
         [0031]     Each of the switches  16  typically includes processors and other devices necessary to allow the correct configuration of those switches  16  for association with the individual computers  12 . Associated with each of the switches and each of the computers  12  in the cluster  10  (although not shown) is equipment such as air conditioning for cooling and maintaining the correct temperature for operation of the cluster system. For a cluster  10  capable of significant operations such as those provided by supercomputers, the power required for operation of the cluster  10  and its associate air conditioning is of the same magnitude as that required for operation by similarly capable supercomputers.  
         [0032]      FIG. 2  is a diagram illustrating a computer cluster  20  designed in accordance with the present invention. The cluster  20  includes a plurality of individual processor nodes  21  which in a preferred embodiment are selected to be identical. For example, to assure that each processor node executes software identically, the various components of each node are selected to have identical version numbers. Each processor node  21  includes a processor  25 , typical connecting circuitry, and local memory  23  which in a preferred embodiment may include long term memory such as a local hard disk drive  24 . One of the processors  21   a  is also provided input and output devices such as a monitor  26 , a keyboard  27 , a mouse  28 , and a DVD or CD device  29 .  
         [0033]     It should be noted that the individual processor nodes  21  are typically comprised of individual parts which are purchased for the construction of typical personal computers. However, the individual processor nodes  21 , apart from node  21   a,  include only the minimum of components necessary to turn on and process data. These individual nodes do not include components normally found on a personal computer such as video display circuitry; input and output devices (other than as noted herein) such as monitors, keyboards, mice, DVD or other disk devices; sound circuitry; and the like. The elimination of these devices greatly reduces the power required to operate the individual nodes and the cooling equipment which would be necessary to dissipate the heat generated by such power. Moreover, in a preferred embodiment, those components which are included in the individual nodes are selected from those offering low power operation. For example, low power processors are preferred. Hard disks  33  are included at processor node  21   a  but are optional at the other processor nodes; and, if included, low-power-consuming disks such as those used in portable computers are preferred.  
         [0034]     In order to arrange the processor nodes  21  to function as a cluster, first and second networks  30  and  31  are provided. The first network  30  is a command and control network. The second network  31  is in function a more typical cluster network such as an Ethernet network over which data may be transferred among the various processor nodes  21  of the cluster.  
         [0035]     In a preferred embodiment of the invention, the second network  31  differs from those networks typically utilized by clusters in that it includes only those attributes of such a network required for operation. For example, a typical Ethernet network utilized in a cluster arrangement includes a plurality of programmable switches and removable cabling connecting the switches to the individual computer nodes of the cluster in the manner shown in  FIG. 1 .  
         [0036]     In the present invention, processors used for configuring the switches and the removable cabling joining the switches to the nodes of a cluster have been eliminated. Instead of configurable switches, the switches of the network  31  are non-configurable switches hardwired to network connector circuitry at each processor node  21  by simple traces on a printed circuit board (or similar connections) rather than the usual long plugged network cabling (see  FIG. 6 ). Each processor node  21  on the first network  30  has a preselected processor node identifier which may be used for various purposes including as a basis for its network address. Thus, the switches  32  are configured in manufacture of the cluster to connect to the correct processor node in response to a correct address for that node. Utilizing this form of connection eliminates the network configuration problems which are a large part of start-up problems in a cluster. Moreover, utilizing printed circuit or similar network cabling so shortens that cabling and reduces its energy expenditure that it allows the signaling techniques utilized by the network to be of a type typically utilized in optical transfers of data. This greatly reduces the power required to operate the second network  31  and, consequently, the cluster itself.  
         [0037]     The use of low power components reduced to the minimum necessary to provide processing functions coupled with the reduction of network components to a minimum with power-saving cabling allows a large plurality of processor nodes to be physically placed within an enclosure of a size which would be considered typical for a work station of the prior art. In fact, one embodiment of the present invention includes ninety-six processor nodes within such an enclosure and is powered by a simple power plug into a socket which might normally power a personal computer. Obviously, the power expenditure is drastically less than that required to operate a typical cluster.  
         [0038]     The command and control network  30  is a unique arrangement which has never been used in a cluster arrangement before the present invention. The use of this new network allows a significant portion of the software usually necessary to control a cluster to be eliminated and thereby effectively eliminates the problems attendant on starting a cluster and maintaining a cluster in operation.  
         [0039]     In a preferred embodiment, the command and control network  30  (illustrated in  FIG. 4  and  FIG. 6 ) is essentially a hardwired bus providing slots into which individual circuit boards  34  each supporting a plurality of processor nodes  21  and associated circuitry may be positioned. Each such circuit board with its processor nodes  21  is positioned in a slot on the network  30  where the nodes may be addressed for example by using the individual processor node identifiers. This eliminates a significant portion of the software control normally needed in order to utilize a cluster arrangement in accordance with the prior art.  
         [0040]     As shown in  FIG. 4 , the bus of the network  30  includes conductors for selecting a particular processor node, for controlling the operation of the selected processor node  21 , for signaling the operating condition of the selected processor node, and for communicating with the selected processor node.  
         [0041]     The network  30  allows a single operator at the processor node  21   a  to start up and operate the cluster without other operating personnel. This is to be contrasted with prior art clusters which require the constant attendance by a staff of computer scientists during both start-up and operation.  
         [0042]     Starting the cluster requires a minimum of time rather than the days typical of starting large prior art clusters. Since the switches of the network  31  of the preferred embodiment are hardwired, no initial configuration is required. Power is simply provided to the processor node  21   a,  and that processor node boots up cluster operating system software. Once the node  21   a  has booted and is running the cluster operating system, the node  21   a  runs a process which boots each of the processors of the individual nodes  21  in sequence. This is accomplished in each case by addressing the particular node  21  on the network  30  with one of the available commands (ON, OFF, RESET), in this case “ON.” In a preferred embodiment, the network  30  provides an indication of the status of the processor node selected over conductors indicating processor condition. When the selected processor node has turned on, it communicates with the head node by communication conductors on the network  30  that it is ready to boot. In response to this signal from the selected processor, the processor node  21   a  runs a process which distributes the operating system boot image to the selected processor node over communication conductors of the network  30 . The boot image is placed into memory on the selected node and the selected node boots. This continues in sequence for each of the nodes of the cluster. It should be noted that a broadcast process of booting may be utilized instead of a sequential process.  
         [0043]     A distinct advantage of the invention is that the control network  30  allows the processor node  21   a  to provide the same boot image to each of the other processor nodes  21  of the cluster. Consequently, each processor node is forced to run identical software each time the cluster is booted. This is to be contrasted to the typical cluster in which each individual computer boots itself from locally stored system software making that particular processor subject to the peculiarities of the software stored and the various versions of hardware utilized in the individual computers. Providing a single boot image to all processor nodes overcomes one of the major difficulties to which clusters of the prior art have been subject; that is, software differences between the different computers of the clusters generate interferences which ultimately interfere with the operation of the cluster and require the need for constant administration by large staffs.  
         [0044]     Moreover, in contrast to prior art arrangements, the present invention eliminates the need to keep a cluster running. If a malfunction occurs, the cluster may simply be shut down and rebooted thereby providing identical operating system software to each of the processing nodes. In a presently operating embodiment of the invention, the process of booting or rebooting takes only slightly more than two minutes, significantly less than the hours or days required by prior art clusters.  
         [0045]     Although the present invention has been described in terms of a preferred embodiment, it will be appreciated that various modifications and alterations might be made by those skilled in the art without departing from the spirit and scope of the invention. It should be that the preferred embodiment utilizes long term memory associated with the head processing node in order to provide an identical boot image to each of the processing nodes. However, there are a number of different ways in which providing an identical image might be accomplished. For example, the particular long term memory might be read-only memory rather than hard disk memory. It would be possible to utilize other than the head node to run the boot image software initially while monitoring the operation at the head node. The invention should therefore be measured in terms of the claims which follow.