This invention relates, in general, to grid computing, and in particular, to managing the workload of a grid computing environment.
A grid computing environment allows the interconnection of a plurality of heterogeneous and/or geographically distant systems. To facilitate interconnecting the systems, in one example, a Globus toolkit offered by International Business Machines Corporation, Armonk, N.Y., is employed. Globus allows a user to specify which system of the plurality of systems is to run a job. The user submits a job to the selected system using a Resource Specification Language (RSL). In response to Globus receiving the RSL, Globus converts the RSL into a correct format for the scheduler on the target system. For example, if the scheduler is LoadLeveler offered by International Business Machines Corporation, then the RSL is converted into a command file.
Since users can select the one or more systems to run their jobs or despite the selections, the systems of a grid computing environment can become unbalanced. For instance, one system may have too much work, while another system may have too little. Thus, a need exists for a capability to balance the workload of a grid computing environment. A further need exists for a capability for determining the best fit for particular work.
The shortcomings of the prior art are overcome and additional advantages are provided through the provision of a method of balancing workload of a computing environment. The method includes, for instance, obtaining information regarding one or more systems of a plurality of systems of a grid computing environment; and balancing workload of at least two systems of the plurality of systems using at least a portion of the obtained information.
System and computer program products corresponding to the above-summarized method are also described and claimed herein.
Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.
The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
In accordance with an aspect of the present invention, workload balancing is performed in a grid computing environment. In one example, a manager daemon of the grid computing environment obtains information regarding one or more systems of the environment, and determines based on the obtained information placement of workload on those systems. The placement of workload can include, for instance, moving a job from one system to another or initially placing a job on a particular system, etc. As one example, the information is obtained from schedulers of the systems.
Grid computing enables the virtualization of distributed computing and data resources such as processing, network bandwidth and storage capacity to create a single system image, granting users and applications seamless access to vast information technology (IT) capabilities. Often, the systems of a grid computing environment are heterogeneous systems. That is, at least one system of the plurality of systems of the environment includes different hardware and/or software from at least one other system of the environment. Additionally or alternatively, the systems may be geographically distant from one another. Further details regarding grid computing may be found, for instance, at www-1.ibm.com/grid/about_grid/what_is.shtml.
One embodiment of a grid computing environment incorporating and using one or more aspects of the present invention is depicted in
System 102 includes, for instance, a scheduler 106 used in scheduling jobs on the system. A scheduler can be one of many types of schedulers and each system may have the same type of scheduler or different type of scheduler. As one example, scheduler 106 of System A includes LoadLeveler offered by International Business Machines Corporation, and scheduler 106 of System B includes the Portable Batch System (PBS) offered by Altair Grid Technologies, LLC. One example of LoadLeveler is described in an IBM publication entitled, “IBM LoadLeveler: Using and Administering,” V3R1, IBM Pub. No. SA22-7881-00, December 2001, which is hereby incorporated herein by reference in its entirety.
In one example, at least one scheduler performs backfill scheduling. Backfill scheduling allows an application to run out of order as long as it does not affect the start time of an application already scheduled to execute. One example of backfill scheduling is described in U.S. patent application Ser. No. 10/406,985 entitled “Backfill Scheduling Of Applications Based On Data Of The Applications,” filed Apr. 4, 2003, which is hereby incorporated herein by reference in its entirety.
Since, in one example, the systems of the grid computing environment are heterogeneous, a toolkit, offered by International Business Machines Corporation and referred to as Globus, is used to facilitate communication between the systems. The toolkit creates a common layer between the systems. For instance, for a Globus enabled system, information for a job passes through Globus, Globus converts it to a Globus format, passes the information to another Globus system, which then converts the information into a form known by the receiving system. This allows systems having one or more of different operating systems, different middleware and/or different schedulers to effectively communicate. Further details regarding Globus can be found, for instance, in “Enabling Applications for Grid Computing with Globus,” IBM publication no. SG24-6936-00, Jun. 18, 2003, which is hereby incorporated herein by reference in its entirety.
In accordance with an aspect of the present invention, one of the systems in the grid computing environment also includes a manager daemon 108. The manager daemon runs in the background and is responsible for balancing the workload among at least a portion of the systems of the environment. The manager daemon obtains (e.g., is provided, determines, etc.) information regarding a plurality of systems to be managed. This information includes, for instance, identification of the systems, manner in which to contact the systems, etc.
The manager daemon periodically executes logic to balance the workload of a grid computing environment. In one example, this logic is executed at configurable time intervals (e.g., every 5 minutes). As another example, execution of the logic is event based (e.g., upon startup and/or completion of a job, change in available system resources, etc.). One embodiment of the logic associated with balancing the workload of a grid computing environment is described with reference to
Referring initially to
Based on the information obtained, the manager daemon performs workload balancing, STEP 202. Further details regarding one example of workload balancing is described with reference to
Referring to
Returning to
Described in detail above is one embodiment of the logic associated with using a daemon to perform workload balancing in a grid computing environment. One embodiment of pseudo-code used to perform this workload balancing is presented below:
Described herein is a capability for balancing the workload of a grid computing environment. To balance the workload, in one example, work is moved from one system that is more heavily loaded to another system that is more lightly loaded. In other examples, workloads are balanced in other ways. For example, workload balancing may include initially determining which system is to run a particular job and submitting the job on that system. In that case, users submit jobs into a holding pen, which is visible to the daemon. Although the jobs in the holding pen are visible to the daemon, in this example, they are not visible to the schedulers on the individual systems. The daemon requests information from the schedulers and based on this information determines the best fit for a particular job. The daemon then submits the job to the selected system.
Although the initial submission of jobs is controlled, the systems can still become unbalanced. This imbalance may occur because of unpredictable events during job execution (e.g., job failure which causes the job to complete earlier than expected), which would disrupt previous queuing decisions, etc. Thus, the daemon also executes the above logic, in one example, to maintain workload balance.
The information used in balancing the workload can be different, less and/or in addition to that described above. As examples, job class and/or resource matches (such as memory or software licenses), as well as other information could be used to decide the placement of jobs.
The workload balancing capability of the present invention advantageously enables workload on two or more systems of a grid computing environment to be balanced. Again, although two systems are described herein, more than two systems with independent batch queuing capabilities could be controlled with a single daemon. The logic would be expanded to examine information from the additional systems. Further, although examples of systems are provided above, many other possibilities exist. As one example, the systems are homogeneous, but are geographically distant. Many other variations also exist.
In one aspect, the daemon can be deactivated. When it is deactivated, the users can still submit jobs on a plurality of systems, but automatic load balancing between two grid connected systems does not occur.
Further, although the above example uses a backfill scheduling technique, other scheduling techniques including those that do not backfill may be used. If a technique that does not use backfill is employed, then shadow time may not be included in the collected information. For example, in a FIFO scheduling technique, the daemon determines idle nodes, free jobs, and possibly idle job order, but it does not require shadow time. When deciding to move jobs to a system, the free resources are considered and there is no shadow time test. In a like manner, other batch scheduling techniques can be used in managing workloads.
Further, for those schedulers using backfill, in another embodiment, the list of which resources are protected by shadow time (and which are not) is employed to improve the decision making process. For example, a job can be transferred which has a wallclock estimate greater than the shadow time to nodes which are not protected by shadow time (hence, not limited to backfill timing constraints).
Moreover, although examples of schedulers are provided above, many other schedulers can be used without departing from the spirit of the present invention. Examples of other schedulers include, for instance, the Load Sharing Facility (LSF) offered by Platform Computing, and Maui, offered by the Maui Supercomputing Center.
As a further embodiment, more than one system may include a manager daemon. One may be backup of another and/or multiple daemons may work together to manage the workload of the grid computing environment, etc. Moreover, one or more systems of the environment may not have a scheduler, but instead, are scheduled by other schedulers, etc.
Advantageously, one or more aspects of the present invention enable a grid computing environment to be workload balanced. This increases efficiency and productivity. By being dynamic and automatic, the balancing is transparent to users. By obtaining the information from schedulers and maintaining the scheduling responsibilities with the schedulers, complexity of the manager daemon is minimized. Since the information obtained by the daemon comes from complex scheduling software, the amount of information input to the daemon is reduced. Further, the scheduler can send the results of an already executed algorithm to the daemon and the daemon does not have to perform the complex analysis (such as computation of shadow time, etc.).
Advantageously, one or more aspects of the present invention enable a plurality of parallel machines, in which each machine is independently administered, to combine resources under, for instance, a single Globus implementation.
The present invention can be included in an article of manufacture (e.g., one or more computer program products) having, for instance, computer usable media. The media has therein, for instance, computer readable program code means or logic (e.g., instructions, code, commands, etc.) to provide and facilitate the capabilities of the present invention. The article of manufacture can be included as a part of a computer system or sold separately.
Additionally, at least one program storage device readable by a machine embodying at least one program of instructions executable by the machine to perform the capabilities of the present invention can be provided.
The flow diagrams depicted herein are just examples. There may be many variations to these diagrams or the steps (or operations) described therein without departing from the spirit of the invention. For instance, the steps may be performed in a differing order, or steps may be added, deleted or modified. All of these variations are considered a part of the claimed invention.
Although preferred embodiments have been depicted and described in detail herein, it will be apparent to those skilled in the relevant art that various modifications, additions, substitutions and the like can be made without departing from the spirit of the invention and these are therefore considered to be within the scope of the invention as defined in the following claims.