Method and system for parallel operation and control of legacy computer clusters
Claim Score by NHIP
Abstract
A Method and System for Parallel Operation and Control of Legacy Computer Clusters is disclosed. Also disclosed is a system that permits the creation of a cluster computer using the legacy operating systems already existing on the computing devices. The system is further be able to seamlessly operate over a standard wide are network, such as the "Internet," as well as over local area networks. The system further permits the individual computers to operate either as part of the cluster, or on local operations, without any need for modification to the other computers involved in the cluster. Still further, the system utilizes standard TCP/IP format for all internodal messaging. Finally, the system maintains performance "grades" for each cluster node, either by node self-grading, or by node reporting, such that the user can select which nodes to participate in a particular parallel application.

Term
Term ended
Projected expiry passed 21 January 2024, 2.7 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
20 claims: 6 independent, 14 dependent
- 1A method of providing a cluster computer, the method being implemented in at least two programmed computers, each said programmed computer comprising a processor, a standard operating system, at least one data storage system, at least one input device, at least one output device, and at least one external network interface, said network interfaces of all said programmed computers interconnecting said programmed computers over a communications network, the method comprising the steps of:copying node control applications groups comprising applications defined by executable statements to said data storage systems of each said programmed computers;and executing a node control application, said application a member of said group on each said programmed computer;composing a grade message in one said programmed computer;and transmitting said grade message from one said computer to another said computer over said network.
- 7A method of converting a conventional programmed computer comprising a processor, a standard operating system, at least one data storage system, at least one input device, and at least one external network interface, the method comprising the steps of:copying a node control applications group comprising applications defined by executable statements to said data storage system of said programmed computers;and executing a node control application, said application a member of said group in said storage system of said programmed computer;composing a grade message in said programmed computer;and transmitting said grade message from said computer to another computer over a communications network.
- 12A cluster computing system, comprising:a first communications network;a first computing device, said first computing device comprising at least one processor, a standard operating system, at least one data storage system and at least one interface to said communications network;a second computing device, said second computing device comprising at least one processor, a standard operating system, at least one data storage system and at least one interface to said communications network, said second computing device in communication with said first computing device over said communications network;a first cluster node control and interface application comprising executable statements being executed on said first computing device;a second cluster node control and interface application comprising executable statements being executed on said second computing device;wherein said first and second cluster node control interface applications exchange data messages, said data messages comprise encrypted registration information;and whereby said first and second node control interface applications cooperate to share said processors and said storage systems of said first and second computing devices.
- 16A method of providing a cluster computer, the method being implemented in at least two programmed computers, each said programmed computer comprising a processor, a standard operating system, at least one data storage system, at least one input device, at least one output device, and at least one external network interface, said network interfaces of all said programmed computers interconnecting said programmed computers over a communications network, the method comprising the steps of:copying node control applications groups comprising applications defined by executable statements to said data storage systems of each said programmed computers;and executing a node control application, said application a member of said group on each said programmed computer;composing a capabilities message in one said programmed computer;transmitting said capabilities message from one said computer to another said computer over said network;and computing a performance grade responsive to the content of said capabilities message, said other computer performing said computing.
- 18Broadest claimClaim Score 65, broad(NHIP)A method of converting a conventional programmed computer comprising a processor, a standard operating system, at least one data storage system, at least one input device, and at least one external network interface, the method comprising the steps of:copying a node control applications group comprising applications defined by executable statements to said data storage system of said programmed computers;and executing a node control application, said application a member of said group in said storage system of said programmed computer;composing a capabilities message in one said programmed computer;and transmitting said capabilities message from one said computer to another said computer over said network.
- 20A cluster computing system, comprising:a first communications network;a first computing device, said first computing device comprising at least one processor, a standard operating system, at least one data storage system and at least one interface to said first communications network;a second communications network;a third communications network linking said first and second communications networks;a second computing device, said second computing device comprising at least one processor, a standard operating system, at least one data storage system and at least one interface to said second communications network, said second computing device in communication with said first computing device over said first, second and third communications network;a first cluster node control and interface application comprising executable statements being executed on said first computing device;a second cluster node control and interface application comprising executable statements being executed on said second computing device;wherein said first and second cluster node control interface applications exchange data messages, said data messages comprise encrypted registration information;and whereby said first and second node control interface applications cooperate to share said processors and said storage systems of said first and second computing devices.
Independent claims6
58 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
[0001] 1. Field of the Invention
[0002] This invention relates generally to parallel computing systems and, more specifically, to a Method and System for Parallel Operation and Control of Legacy Computer Clusters
[0003] 2. Description of Related Art
[0004] Parallel computation, the use of multiple processors (both within one computing device as well as between networked computing devices) to solve large computational tasks, has been an objective of the industry for quite some time. In seeking to serve these large computational tasks, scientists have often written their own software code—this code was historically written specifically for parallel computers (i.e. computers having multiple processors). While these “parallel applications” functioned adequately (when constructed well, of course), their utility was limited to the particular task (and many times hardware) for which they were specifically written; changes in hardware and/or software requirements typically would require substantial, costly, software revisions. Furthermore, these applications were typically unable to be used on other computing devices.
[0005] Large parallel computers are typically located at major supercomputing centers, the hardware consists of large parallel computers (e.g. Cray T3E, IBM SP, Fujitsu, etc.), the software is commonly proprietary vendor software (many time a Unix variant). These “supercomputers” are managed by large staffs of professional administrators, and the majority of their operations are not accessible directly by individual users (except through the administrators).
[0006] As personal computers led the hardware and software evolution to where substantial computing power became attainable by the individual, systems known as “Clusters” became prevalent. Computer clusters are a, type of parallel computation system where a network of computing devices' processors are tightly coupled to share computation tasks in parallel fashion. An early and fairly prevalent version of a cluster computer is the “Beowulf” system first assembled at a NASA site to solve Earth Sciences problems (NASA Goddard Space Flight Center). The Beowulf cluster is characterized by a set of personal computers connected by specialized network hardware and running a specialized version of the open-source Linux operating system.
[0007] A Beowulf class cluster computer is distinguished from a Network of Workstations by several subtle but significant characteristics. First, the nodes in the cluster are dedicated to the cluster in order to “ease load balancing problems,” by removing any external factors from affecting the performance of individual nodes. A second characteristic of these systems is that the interconnection network is isolated from any external network such that the network load is determined only by the application being run on the cluster. Along with this architecture, all the nodes in the cluster are within the administrative jurisdiction of the cluster. Since there is no external network access or participation, there is no need (or provisions for) network security.
[0008] While proponents of Beowulf systems (running on Linux operating systems) assert that they are extremely user-friendly to run parallel applications, it seems apparent that the clusters themselves are anything but simple to design and construct. In fact, it has been observed that at least two Beowulf clusters required approximately six months each to construct. Furthermore, the need for the computers to be captured (i.e. totally dedicated to use as a member of the cluster) in order to be a part of the cluster eliminates the possibility of making use of existing legacy networked computers.
[0009] If we turn to FIG. 1, we can review the general structure of a conventional (or legacy) computing device, such as a personal computer, so that we might next analyze how such a computing device might be modified in order to become part of a Beowulf cluster. FIG. 1 is a block diagram of pertinent functional components of a conventional computing device <b>10</b>.
[0010] As shown, the computing device <b>10</b> comprises one or more processors <b>12</b> for performing the computations that are the essence of the function for which the computer <b>10</b> is used. The device <b>10</b> will also include a conventional operating system <b>14</b> for controlling the computer's operation. In communication with (or at least controlled by) the operating system are one or more input-output sub-systems, such as a video monitor, a keyboard, a network portal, etc. Another important module controlled by the operating system <b>14</b> is the memory <b>18</b>. It is in the memory <b>18</b> (in this case random access memory, or RAM) that software applications reside while they are being executed; of course the memory <b>18</b> is closely coupled with the processor(s) <b>12</b>.
[0011] To say that a software application such as any of <b>20</b>A-<b>20</b>C is being executed on the computing device <b>10</b> is to actually say that the calculations that make up the applications are being operated upon by the processor(s) <b>12</b>. In the case of the typical application <b>20</b>, the operating system <b>14</b> is the “translator” between the application <b>20</b> written in a so-called high level language and the processor(s) <b>12</b>, although in the case of applications written in “machine language,” such as <b>20</b>C, the application <b>20</b>C interfaces directly with the processor(s). The operating system <b>14</b>, although heretofore described generally, actually includes a critical component known as the “kernel.”
[0012] The kernel is the central module of an operating system <b>14</b>. It is the part of the operating system <b>14</b> that loads first, and it remains in main memory <b>18</b>. Because it stays in memory <b>18</b>, it is important for the kernel to be as small as possible while still providing all the essential services required by other parts of the operating system and applications. Typically, the kernel is responsible for memory management <b>26</b>, process and task management <b>22</b>, I/O management <b>24</b> and disk management. In order to better understand the nuances of the present invention, the kernel is represented here as being discrete components responsible for the various functional areas of the operating system <b>14</b>; in fact, only a single kernel is run on a particular machine at a particular time. If we now turn to FIG. 2, we can examine one of the drawbacks of the prior methods and systems for creating cluster computers.
[0013]FIG. 2 is a block diagram of pertinent functional components of a conventional computing device <b>11</b> as it would be modified for operation as a node in a cluster computer under the prior art. In order for the cluster node control and interface software application <b>20</b>D to be able to operate on the conventional computing device <b>11</b> to give control of its processor(s) <b>12</b> to another computing device (which is necessary to cluster compute), it has always been necessary, at the very minimum, to replace the original operating system with a modified operating system <b>15</b>. The new operating system <b>15</b> is specifically designed to provide a kernel having the new functionality necessary to permit the cluster node control and interface application to offer the device's processor(s) up for control by an external computer (i.e. the control computer in the cluster).
[0014] This new kernel will typically require a revised CPU kernel <b>22</b>A to provide the cpu-sharing capability, a revised I/O kernel <b>24</b>A to exchange job messaging with the external computer(s), and a revised memory kernel <b>26</b>A to provide control, monitoring and access to the device's memory <b>18</b> to external computers. There are at least two problems with replacing the original operating system with a special-purpose operating system: (1) there is a much higher likelihood of instability in the operating system due to conflicts and/or errors, and (2) the revised operating system is unlikely to maintain its original functionality—this means that the device <b>11</b> would not be suitable for general use any time the modified operating system is “booted.” The result of this loss of original functionality is that the cluster will not be able to capitalize on existing (even idle) computer resources—the systems must be dedicated to the cluster and nothing else.
[0015] What is needed is a cluster node control software application that can operate with an existing, conventional or legacy operating system to provide shared processor resources to external computers in order to create a cluster computer without the need for computing resources dedicated to this task.
SUMMARY OF THE INVENTION
[0016] In light of the aforementioned problems associated with the prior systems and methods, it is an object of the present invention to provide a Method and System for Parallel Operation and Control of Legacy Computer Clusters. The system should permit the creation of a cluster computer using the legacy operating systems already existing on the computing devices. The system should further be able to operate over a standard wide are network, such as the “Internet,” as well as over local area networks, seamlessly. The system should further permit the individual computers to operate either as part of the cluster, or on local operations, without any need for modification to the other computers involved in the cluster. Still further, the system should utilize standard TCP/IP format for all internodal messaging. Finally, the system should maintain performance “grades” for each cluster node, either by node self-grading, or by node reporting, such that the user can select which nodes to participate in a particular parallel application.
BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The objects and features of the present invention, which are believed to be novel, are set forth with particularity in the appended claims. The present invention, both as to its organization and manner of operation, together with further objects and advantages, may best be understood by reference to the following description, taken in connection with the accompanying drawings, of which:
[0018]FIG. 1 is a block diagram of pertinent functional components of a conventional computing device;
[0019]FIG. 2 is a block diagram of pertinent functional components of a conventional computing device as it would be modified for operation as a node in a cluster computer under the prior art;
[0020]FIG. 3 is a block diagram of pertinent functional components of a conventional computing device as it would be modified for operation as a node in a cluster computer under an embodiment of the method and system of the present invention;
[0021]FIG. 4 is a flowchart depicting an embodiment of the method of the present invention for converting a legacy computing device to a cluster-enabled computing device;
[0022]FIG. 5 is three sequential “screen shots” of the installation process for one embodiment of the present invention on a proposed node in a cluster;
[0023]FIG. 6 is a flowchart depicting an embodiment of the method of the present invention wherein a cluster node is graded;
[0024]FIG. 7 is a flowchart depicting an embodiment of the method of the present invention for a node to be included in a parallel processing task;
[0025]FIG. 8 depicts a “screen shot” of an embodiment of the invention during the node task inclusion process;
[0026]FIG. 9 depicts an embodiment of a 3-node cluster computer of the present invention;
[0027]FIG. 10 is a flow diagram depicting an embodiment of the node family inclusion process of the present invention;
[0028]FIG. 11 is a flowchart of an embodiment of the I/O interface process to launch an application on a cluster computer of the present invention; and
[0029]FIG. 12 is a pair of “screen shots” of the launching of a parallel application using the system of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0030] The following description is provided to enable any person skilled in the art to make and use the invention and sets forth the best modes contemplated by the inventor of carrying out his invention. Various modifications, however, will remain readily apparent to those skilled in the art, since the generic principles of the present invention have been defined herein specifically to provide a Method and System for Parallel Operation and Control of Legacy Computer Clusters.
[0031] The present invention can best be understood by initial consideration of FIG. 3. FIG. 3 is a block diagram of pertinent functional components of a conventional computing device <b>10</b> as it would be modified for operation as a node in a cluster computer under an embodiment of the method and system of the present invention. It should be apparent that with the exception of the cluster node control and interface application <b>20</b>E, all of the components of the device <b>10</b> are identical to those found above in FIG. 1. As such, the device <b>10</b> will be fully functional as a legacy device, while also enabling the processor(s) <b>12</b> to be shared with external computers (or to “borrow” the processor(s) from external computers if the present device <b>10</b> were “node <b>0</b>,” or the computer controlling the cluster). Since the operating system <b>14</b> has remained the same, the CPU kernel <b>22</b>, I/O kernel <b>24</b> and memory kernel <b>26</b> are all just as they were prior to the installation of the application <b>20</b>E. If we examine the process of FIG. 4, we can understand how each node of a cluster computer might be created using the present invention.
[0032]FIG. 4 is a flowchart depicting an embodiment of the method <b>400</b> of the present invention for converting a legacy computing device to a cluster-enabled computing device. The initial step <b>402</b> includes obtaining a personal computer; the computer must be fully functional and include (in addition to those components discussed above in connection with FIG. 3) a hard drive and a network connection. The operating system must provide a a standard protocol for discovery of network services; a suitable example could be Apple Computer's Macintosh OS 9.0 or later wherein TCP/IP-based Services Location Protocol (SLP) libraries are maintained inside of the Apple Network Services Location Manager (NSLM) for discovery of other nodes over IP-based networks. It is expected that a network built from nodes having a standard network service discovery protocol will operate perfectly as described herein. It should be noted that, unlike the Beowulf systems described previously, there is no need for the operating system to maintain a library of the nodes in a cluster (or proposed cluster); as will be discussed further below, the node library is a dynamic list, rather than a fixed library. In other embodiments of the present system, a program (and process) module for discovering network services may be found; this module would be particularly desirable where the operating system does not include functionality such as the SLP and NSLM.
[0033] The next step <b>404</b> involves the copying of the cluster node control and interface (CNCI) group (of software applications) to the personal computer's hard drive. Next <b>406</b>, the CNCI main application is executed. Finally <b>408</b>, the CNCI application is set to start (in background) each time that the computer (and operating system) is started.
[0034] In order to create a computing cluster, the aforementioned steps are <b>410</b> repeated on additional computing devices similarly configured, and having network connectivity (as will be discussed more fully below). FIG. 5 is three sequential “screen shots” of the installation process for one embodiment of the present invention on a proposed node in a cluster.
[0035] If we now refer to FIG. 6, we can examine how the node control process of the present invention operates to optimize the selection of nodes for participation in a parallel computation. FIG. 6 is a flowchart depicting an embodiment of the method <b>600</b> of the present invention wherein a cluster node provides its status and/or grades itself.
[0036] After the CNCI application is started <b>602</b> (such as when the computer is started up), Node <b>0</b> begins the status-reporting process by sending a registration confirmation message <b>604</b> to all nodes that is “discovers,” such as via the aforementioned SLP capability. Next, Node <b>0</b> sends a broadcast message requesting status information from all nodes “in the family” <b>606</b> (see the discussion in connection with FIG. 10 to understand the adding of a node to “the family”). The CNCI family is a group of computers registered into the same cluster for the purposes of creating a cluster computer. Next, the computer detects its hardware capabilities <b>608</b>, such as memory size and processor speed (this is inherent capabilities data, and may be stored in an archived file). Next, the computer's available computing capacity is detected <b>610</b>, such as the available processor capacity and the available memory. Next <b>612</b>, Node n composes and transmits a message to Node <b>0</b>, wherein the message content are the results of measurement steps <b>608</b> and <b>610</b>. It should be understood that in other embodiments steps <b>604</b>, <b>606</b>, <b>608</b>, <b>610</b> and <b>612</b> might be modified, for example, step <b>610</b> might include the computer actually computing a grade for itself based upon the data of steps <b>608</b> and <b>610</b>. Furthermore, the message of step <b>612</b> might contain the measurement results, the grade computation, or both (or either). Upon receipt of the measurement message of step <b>612</b>, Node <b>0</b> breaks the active communications link with Node n <b>614</b>. Next, Node <b>0</b> computes (or simply displays) the grade information based upon the reported measurements <b>616</b>; where self-grades are reported to Node <b>0</b>, Node <b>0</b> may elect to use those grades and/or to compute its own grade for the purpose of monitoring the cluster's status.
[0037] When desired by Node <b>0</b> (this could be automatic, or on-demand) <b>616</b>, the process is either repeated <b>620</b>, until the CNCI application at Node n is halted <b>622</b>. Since the CNCI application can be run in the background while a user conceivably is using the computer for other tasking (i.e. other than computing in the cluster), it should be understood that the computing capacity will not be a constant, and therefore the performance grade will also be variable depending upon loading.
[0038] In another embodiment, each Node n may, on a periodic basis (i.e. on set time intervals), conduct steps <b>608</b>-<b>612</b> on its own (without being commanded by Node <b>0</b>).
[0039] By periodically sending the grade message (and being successfully authenticated as part of the family of nodes), the CNCI application has “registered a URL” and is now visible on the network (i.e. as a cluster resource); this mandates that the CNCI application run on all nodes at all times that the computer is running, often in the “background.” The CNCI application can be easily brought to the foreground when the user desires to query the status of a parallel job, the cluster in general, or to actually launch a parallel job. If we now turn to FIG. 7, we can examine how a particular node in the cluster might be included in a parallel processing job.
[0040]FIG. 7 is a flowchart depicting an embodiment of the method <b>700</b> of the present invention for a node to be included in a parallel processing task. It should be understood that this method is executed on the computer that we have been referring to as “Node <b>0</b>.” Node <b>0</b> is the computer that actually controls the queuing and launch of the parallel processing jobs on the cluster computer. Although we have been referring to Node <b>0</b> as if it was fixed as being a single computing device, in reality, any computer in the cluster can act as Node <b>0</b> if the user at that Node chooses.
[0041] Regarding message encryption, each message that is sent between nodes in the present system is encrypted, such as by a 512-bit encryption technique. Furthermore, the encryption key rotates for each message, and is based upon a unique identification for the particular family to which the node(s) belong. Since the encryption key changes for each message, cluster security over a non-secure network is sound.
[0042] After receiving the first grade message (in standard network messaging format, with the encryption discussed above) from Node “n” <b>702</b> (where n represents the node's arbitrary number), that Node is added to the “family” <b>704</b>. A “family” member is any Node that has the proper registration number for a particular cluster, and that is turned on and ready for job tasking (capacity-permitting, of course). Once added to the family, Node n is ranked by its grade <b>706</b>. Once given a rank, Node n may be selected for a particular computing task <b>708</b>. The specific interface steps involved in selecting Node n for a task will be discussed more fully below in connection with other figures.
[0043] When selected for a computing task, Node n is “added to the computing job” <b>710</b>, meaning it is one processing component in the job about to be performed by this cluster computer. The CNCI application running at Node <b>0</b> launches a job by copying the parallel application (to be run) from Node <b>0</b> to the selected Nodes <b>712</b> (upon passcode approval and encryption exchange, discussed above), after which the CNCI applications at each Node complete the job launch by each launching its copy of the parallel application <b>713</b> (in the sequence mandated by the parallel application itself), after which communications or network connections are established between the nodes in the environment of the parallel application. This passes control of all computing nodes to the parallel application, and the CNCI runs in the background to minimize its impact on the parallel application's performance.
[0044] Once the parallel application is executing (in the cluster), it uses the processors and network connections, as is appropriate for the particular parallel application. The pattern of computation and communication is application-specific. For example, Node <b>0</b> (where the original copy of the parallel processing application resides) can send out one or more task message(s) to the selected Nodes, after which each Node n completes its discrete task (sharing information or intermediate results with other nodes, as required) <b>714</b>. Upon completion of its respective task, Node n sends a result message to Node <b>0</b><b>716</b> (in the format discussed previously, including encryption, if desired).
[0045] In another example, it is known that other parallel applications compute in a peer-to-peer arrangement as well as between the Node n's and Node <b>0</b>. The CNCI is capable of operating with both example parallel application forms.
[0046] Once the tasking by the parallel application is complete, the parallel application shuts down its network connections and ceases execution. The CNCI application is then free for the user to select a new application to be run in parallel processing mode—the cluster is deactivated <b>718</b> until such time as a new application is to be run in parallel processing mode—at that time the Nodes will be queried for their grades and they will be ranked accordingly <b>706</b>. FIG. 8 depicts a “screen shot” of an embodiment of the invention during the node task inclusion process.
[0047] In fact, the CNCI application on any of the Nodes can be invoked to query the status of the computing clusters Nodes during the execution of the parallel application. Operation of the CNCI application, directly or remotely on another Node, can be performed as the parallel application is executing, but such queries may temporarily degrade computation and network performance. In any case, it is possible to use this information to choose nodes that are not currently running an application (i.e. for new tasking). If we examine FIG. 9, we can see how an example of how nodes in the cluster of the present invention might interconnect to one another.
[0048]FIG. 9 depicts an embodiment of a 3-node cluster computer of the present invention <b>28</b>. Starting with the first computing device <b>30</b>A, we can see that it comprises a processor <b>12</b>A and a user interface <b>16</b> (shown for aesthetics only). It is understood that the previously-mentioned CNCI applications are running in the background of each of the computing devices to be discussed. The first computing device <b>30</b>A is connected to a Wide Area Network Conduit <b>32</b> (e.g. the world wide web or “Internet”) via a WAN connectivity conduit <b>34</b>. The WAN connectivity conduit is virtually any conventional hardware system for connecting to a wide area network.
[0049] The second computing device <b>30</b>B, comprising a processor <b>12</b>B is connected to a Local Area Network Conduit <b>36</b> via a LAN connectivity conduit <b>38</b>. The LAN connectivity conduit is virtually any conventional hardware system for connecting via wire to a local area network. The Local Area Network Conduit <b>36</b>, in turn, is connected to the Wide Area Network Conduit <b>32</b> via a WAN connectivity conduit <b>34</b>. In this manner, there is communications connectivity between the first computing device <b>30</b>A and the second computing device <b>30</b>B.
[0050] The third computing device <b>30</b>C, also comprising a processor <b>12</b>C is connected to the Local Area Network Conduit <b>36</b>—in this case by a WIRN Connectivity Conduit <b>40</b>, such as via RF or even Infrared or other conventional system for wirelessly connecting to a local area network.
[0051] Since the system and method of the present invention use standard operating systems, standard messaging protocols, and robust encryption methods for security, it should be apparent that the power and flexibility of the present invention is immense. In particular, virtually any computing device that is network-capable, has the necessary standard operating system installed, and executes the CNIC application can participate in a computing cluster.
[0052] The present system can operate over the World Wide Web (and other wide-area networks). From any connection to the WAN, it is possible for all functions of the system to operate on any other computer running the cluster node application. Although discovery using Services Location Protocol is limited to local networks, a remote node can be commanded to discover other nodes on its local network, after which these remote nodes (discovered locally by SLP) can be added to the cluster for tasking. The implication is that existing computer networks can provide added functionality that was not previously available without hardware or operating system modification! By reviewing FIG. 10, we can understand how nodes are included in the family in the system of the present invention.
[0053]FIG. 10 is a flow diagram depicting an embodiment of the node inclusion process <b>1000</b> of the present invention. The left-side column of the drawing depicts those actions being conducted by Cluster Node <b>0</b><b>30</b>A in the process <b>1000</b>; the right-side column depicts those actions being conducted by another (slave) Cluster Node, called Node n <b>30</b>N.
[0054] Now turning to FIG. 11, we see a flowchart of an embodiment of the I/O interface process <b>1100</b> to launch an application on a cluster computer of the present invention. The steps in this process should be viewed in combination with the representation of the user screen interface shown below in FIG. 12.
[0055] First, the user selects a parallel application for execution by “dragging” an icon from a “folder” window to a “job” window <b>1102</b>. Next the user selects “select nodes” option <b>1104</b>. Next, the user either: selects at least one node listed in the “node scan window” <b>1106</b>, or selects “add best” in node scan window <b>1108</b>. Finally, the user selects “launch job” option <b>1110</b>. Certainly, it should be apparent that the job launching process of the present invention is extremely efficient, intuitive, and easy to administrate—none of these attributes apply to the prior art parallel computing systems.
[0056] Furthermore, in order to prevent “bottlenecks” or overloads, the system maintains a queue of parallel jobs; if a parallel job is running, the next job could be held from operation until the first job has been completed. Also, the launch of the parallel application could be set for a particular time, such as when computer resources are generally idle.
[0057]FIG. 12 is a pair of “screen shots” of the launching of a parallel application using the system of the present invention.
[0058] Those skilled in the art will appreciate that various adaptations and modifications of the just-described preferred embodiment can be configured without departing from the scope and spirit of the invention. Therefore, it is to be understood that, within the scope of the appended claims, the invention may be practiced other than as specifically described herein.
Contents4
13 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US8782231B2 | Cited by | United States of America | Search report |
| US10885012B2 | Cited by | United States of America | Applicant |
| US10977090B2 | Cited by | United States of America | Applicant |
| US8849889B1 | Cited by | United States of America | Applicant |
| US2006212333A1 | Cited by | United States of America | Pre-grant |
| WO2007146731A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US8402080B2 | Cited by | United States of America | Applicant |
| US8631130B2 | Cited by | United States of America | Applicant |
| US2006212334A1 | Cited by | United States of America | Pre-grant |
| WO2006107531A2 | Cited by | World Intellectual Property Organization (WIPO) | Search report |
| US9979672B2 | Cited by | United States of America | Applicant |
| US9413687B2 | Cited by | United States of America | Applicant |
| US10333768B2 | Cited by | United States of America | Applicant |
| US2007255782A1 | Cited by | United States of America | Pre-grant |
| US8140612B2 | Cited by | United States of America | Applicant |
| US10333862B2 | Cited by | United States of America | Applicant |
| US10437648B2 | Cited by | United States of America | Search report |
| US7577959B2 | Cited by | United States of America | Search report |
| US2010122065A1 | Cited by | United States of America | Pre-grant |
| US10445146B2 | Cited by | United States of America | Applicant |
| US10296500B2 | Cited by | United States of America | Applicant |
| US2006212332A1 | Cited by | United States of America | Pre-grant |
| US2006212333A1 | Cited by | United States of America | Pre-grant |
| US10986037B2 | Cited by | United States of America | Applicant |
| US8402083B2 | Cited by | United States of America | Applicant |
| US2008148244A1 | Cited by | United States of America | Pre-grant |
| US9396036B2 | Cited by | United States of America | Applicant |
| JP2009540764A | Cited by | Japan | Examiner |
| WO2006107531A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US9612883B2 | Cited by | United States of America | Applicant |
| US8676877B2 | Cited by | United States of America | Applicant |
| US9047141B2 | Cited by | United States of America | Applicant |
| US10608949B2 | Cited by | United States of America | Applicant |
| US9961013B2 | Cited by | United States of America | Applicant |
| US8082289B2 | Cited by | United States of America | Applicant |
| US9830357B2 | Cited by | United States of America | Applicant |
| US10277531B2 | Cited by | United States of America | Applicant |
| US9542177B1 | Cited by | United States of America | Search report |
| US9886325B2 | Cited by | United States of America | Applicant |
| US8612510B2 | Cited by | United States of America | Search report |
| US2005289540A1 | Cited by | United States of America | Pre-grant |
| US7698430B2 | Cited by | United States of America | Applicant |
| US2001056461A1 | Cites | United States of America | Pre-grant |
| US2002087886A1 | Cites | United States of America | Pre-grant |
| US2003005068A1 | Cites | United States of America | Pre-grant |
| US5944779A | Cites | United States of America | Pre-grant |
| US6009455A | Cites | United States of America | Pre-grant |
| US6307837B1 | Cites | United States of America | Pre-grant |
9 members in 4 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 12380202 | United States of America | A | |
| US20020123802 | – | – | – |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| US2003195931A1 | United States of America | A1 | |
| WO03090079A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU2003228547A1 | Australia | A1 | |
| AU2003228547A8 | Australia | A8 | |
| WO03090079A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP1497727A2 | European Patent Office (EPO) | A2 | |
| US7136924B2 | United States of America | B2 | |
| US2007061483A1 | United States of America | A1 | |
| US7472193B2 | United States of America | B2 |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Fee payment procedurePATENT HOLDER CLAIMS MICRO ENTITY STATUS, ENTITY STATUS SET TO MICRO (ORIGINAL EVENT CODE: STOM); ENTITY STATUS OF PATENT OWNER: MICROENTITYFEPP | FEPP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF |
Numbers
- Publication, DOCDB
- 2003195931
- Publication, EPODOC
- US2003195931
- Application
- 10123802
- Application, DOCDB
- 12380202
- Application, EPODOC
- US20020123802
Titles
- English
- Method and system for parallel operation and control of legacy computer clusters
Classification
- CPC, 2
- H04L41/18
- H04L41/0213
- IPC, 6
- G06F9 46
- G06F9 50
- G06F15 16
- G06F15 177
- H04L12 24
- H04L29 06
- USPC, 2
- 709205000
- 709220000