GB2454497A - Task Scheduling Method with a Threshold Limit on Task Transfers between Resources - Google Patents

Task Scheduling Method with a Threshold Limit on Task Transfers between Resources Download PDF

Info

Publication number
GB2454497A
GB2454497A GB0721967A GB0721967A GB2454497A GB 2454497 A GB2454497 A GB 2454497A GB 0721967 A GB0721967 A GB 0721967A GB 0721967 A GB0721967 A GB 0721967A GB 2454497 A GB2454497 A GB 2454497A
Authority
GB
United Kingdom
Prior art keywords
task
resource
suitability
resources
scheduling method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB0721967A
Other versions
GB0721967D0 (en
GB2454497B (en
Inventor
David Snelling
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to GB0721967.8A priority Critical patent/GB2454497B/en
Publication of GB0721967D0 publication Critical patent/GB0721967D0/en
Publication of GB2454497A publication Critical patent/GB2454497A/en
Application granted granted Critical
Publication of GB2454497B publication Critical patent/GB2454497B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • G06F9/4875Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with migration policy, e.g. auction, contract negotiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

The invention relates to a method for scheduling tasks in a system having interconnected resources that can be organised into groups. The method comprises the following steps: <UL ST=" $ " COMPACT=COMPACT> <LI> select a task to be executed, <LI>perform an initial evaluation function at a first resource to generate a first suitability value indicating its ability to execute the task, <LI>transfer the task to another of the resources in the group (that resource becoming the active resource) and perform the same evaluation function at that resource, to produce an active suitability value; until either: <UL ST=" ¼ " COMPACT=COMPACT> <LI> the active suitability value is better than the first suitability value, or <LI>a pre-determined limit to the number of times which the task is transferred is reached; <LI>whence the active resource is chosen to execute the task. Factors taken into account by the evaluation function are resource load, power consumption, and communication distance between the task and the resource.

Description

TASK SCHEDULING METHOD, APPARATUS AND COMPUTER PROGRAM
Field of the Invention
The present invention relates to scheduling of tasks using a computer system. This scheduling is relevant to a large variety of tasks, whether created by a user of the computer system, automatically generated by programs running on a computer system or provided in any other way. Tasks may be generated as subtasks which are created by tasks already in operation, for example a higher level task may create a simple subtask to count clock cycles or iterations of a procedure. Higher level tasks can be highly complex, such as carrying out iterations of a molecular dynamics model of a molecular system. In any of these cases, when more than one resource is available in the computer system, the tasks must be scheduled between the available resources.
Scheduling becomes more complex when a computer system is distributed, that is the resources are separated in terms of communication distance from each other and from any scheduling entity. In this case, it might also be necessary to take into consideration the time required to transfer a task to the chosen resource. The present invention is particularly suitable for distributed environments.
Background
In its simplest form job (or task) scheduling allocates tasks to resources according to a set pattern. However, even this use case has hidden complexities in the form of the constituent resources necessary to run a job, e.g. a time slot, a memory segment, a license key for the software, etc. Efficient use of computational (and other) resources has for many years been a critical aspect of IT environments. Therefore, a basic allocation of tasks to resources using a fixed order of resources and first-come, first-served principles for the tasks to send the next task to the resource which is currently being locked by the scheduling method is long since outdated. IT providers, particularly hardware providers, have sought to enhance their offerings with software systems capable of making more efficient use of the provided resources by assessing each task and/or resource and scheduling more intelligently.
A (widely) distributed environment increases the complexity of the problem.The properties and complexities of distribution in a computational environment exhibit self-similar characteristics as they scale in both space and time. For example, a computer cluster where things happen very fast exhibits the same characteristics as a widely distributed Web services Grid. In both cases, it is not necessarily possible to have an exact picture of the state of the system, due to the time lag for information dissemination relative to the rate at which the environment is changing. In various distributed systems the technological reasons may be different, but the effect on the scheduler is the same -the scheduler must make decisions based on partial and possibly erroneous information. The environment is therefore rife with uncertainty.
In these circumstances, complex scheduling methods of assessing each available resource in turn and finally choosing the most appropriate resource can be overly time consuming and may even produce an incorrect result due to changes in the system while the scheduling method is being carried out. This disadvantage can be particularly true of a centralized scheduling method, in which the central scheduler may be widely spaced from each of the resources being assessed.
It is desirable to overcome or at least mitigate the disadvantages in the prior art scheduling methods.
The invention is defined in the independent claims, to which reference should now be made.
Advantageous embodiments are set out in the sub claims.
Embodiments of the invention practice a method which is particularly suitable for scheduling the resources necessary to perform some task in an uncertain distributed environment.
In one preferred embodiment there is provided a scheduling method for scheduling tasks in a system having inter-connected resources, comprising: selecting a task to be executed; initially performing an evaluation function at at least a first resource to generate a first suitability value indicating suitability to execute the task; transferring the task to another resource, that resource becoming the active resource, and performing the same evaluation function at the active resource (and repeating the transfer and evaluation as necessary), until either: the active suitability value indicating the suitability of the active resource to execute the task is better than the first suitability value indicating the suitability of the first resource to execute the task, or a pre-determined limit to the number of times which the task is transferred is reached; and then choosing the active resource to execute the task.
According to invention embodiments, there is a benchmarking process against a first resource and the first subsequent resource which is more suitable to execute the task is chosen, unless a limit to the number of times the task should be transferred is reached, in which case the active resource is chosen as a default. Once the resource has been chosen using the method described, the task can be executed using that resource.
There are several advantages to such a method. The scheduling method is a simple one, so that computational and transfer times for the method are kept to a minimum. At the same time, the scheduling results will usually be acceptable, also when scheduling with the presence of uncertainty. The shorter the method, the better the chance that the information compared to choose the resource for executing the task is still accurate. When the situation is uncertain and changing, it may well be that the present invention embodiments can provide a better result than a slower scheduler which is designed to produce optimal scheduling, but hampered by transfer times and changing suitability of the resources.
Against the backdrop of many such more complicated scheduling algorithms currently in use, it may seem counterintuitive to turn to a method which is simple and does not guarantee the best result. However, the inventor has come to the surprising realisation that using an extremely simple scheduling method can lead to good overall scheduling decisions, particularly in a distributed computing system with a changing environment which can lead to erroneous information. The benchmarking process of invention embodiments should prevent the "worst" resource being chosen in a large percentage of cases, even if factors affecting the evaluation function change whilst the scheduling method is being carried out. Especially when an underlying scheduling problem is NP-Complete, with no predictable termination time for a full solution, it can be advantageous to turn away from complex solutions to the other end of the spectrum and generate a scheduling solution from deliberately restricted selection options, accepting that there is a possibility of using the worst case scheduling option.
The method may be performed using any of the inter-connected resources in the system. In some preferred embodiments, the method includes selecting a group of resources. For example, a group of resources capable of executing the particular task may be selected after the task has been selected.
Factors influencing the evaluation function may change over time, at a rate such that the suitability values generated may become out of date during the execution of the scheduling method (or during the transfer time between resources). The suitability value of the previous resource may even become out of date during the transfer time of the task to the current resource. Under such conditions, it is advantageous to choose a suitable resource in as short a time as possible.
The evaluation function can be selected by the method designer to incorporate various evaluation factors, in particular those relevant to system performance in the computer system in question. For instance, the evaluation function may be at least partially dependent on one or more of the following: loading at the resource being evaluated (or relative loading in comparison to other resources); total system energy considerations (for example if it is required to run a resource at a lower capacity for a period time to avoid overheating or shut down the node); and the communication distance between the task and the resource in question, (taking into account the migration cost of transferring the task to the selected resource and potentially also extracting data from a remote database situated for example at the task original location) as well as other suitable factors.
Communication distance (or simply "distance") is taken herein to refer to a relevant quantity for the system in consideration. Although the communication distance could be simply expressed in terms of a length between resources, or nodes including those resources, other suitable measurements could take different factors into consideration, such as the communication link between the task and the resource (such as bandwidth, most usually in a wireless system) and/or time taken for information to be transferred as well as or instead of physical distance measurement.
The notion of task transfer is intended to cover the case in which a description of the task is sent which is sufficient to carry out the evaluation, as well as the case in which the task itself (with sufficient information to start to execute the task) is sent so that it can be immediately executed rather than being subsequently sent to the resource if and when the resource is chosen.
The scheduling method can take place on one or more levels in the hierarchy of tasks. In some situations, a higher-level scheduling service is required for top-level tasks, such as running an application program, with these top-level tasks spawning intermediate level tasks, for example performing a certain function within the application program and such intermediate level tasks subsequently spawning low-level tasks, such as basic data manipulation. In these hierarchical situations, the method according to invention embodiments can take place separately at two or more levels in the task hierarchy.
Scheduling on the different levels can be linked, but preferably and for simplicity, the method takes place separately without communication between the schedulers at the different levels.
Thus preferably there is no communication as to the scheduling method and its results at one level to another level, for example a lower level.
If a plurality of tasks is scheduled, these tasks can be scheduled centrally, for example effectively being sent to a central scheduling entity and redistributed, or scheduled in a distributed fashion. To avoid unnecessary data transfer, embodiments of the present invention schedule tasks locally where they are created (by the computer system or any other method). This allows distributed scheduling and scheduling in parallel of a plurality of tasks.
For a simple way of selecting the next task for scheduling, the tasks can be selected from a list of ready tasks. Such lists can be held at several locations. The selection could be random, or related to task priority or size or any other relevant criterion.
During the scheduling method of preferred embodiments, the task is transferred from the current active resource to another resource. Where the task is transferred to can be adjusted to suit the particular system in question. In one preferred embodiment, the choice of which resource to transfer the task to next is at least partially dependent on proximity (in terms of communication distance) to the current resource. This avoids burdening the method with unnecessarily long transfers.
The scheduling method includes a predetermined limit to the number of times which the task is transferred. This limit can be determined in dependence upon the ratio between the expected time taken to transfer the task and the expected time taken to execute the task.
For example, if the task is short but the transfer time relatively long, then the predetermined limit could be a low number, such as two or three; otherwise it could be four to six or higher.
Thus the predetermined limit can be set according to system and task parameters.
Alternatively, the predetermined limit can be set at an arbitrary limit for any situation, such as four or five. In general, whether the limit is set arbitrarily or in dependence upon system and task parameters, we would expect the limit to be up to ten transfer times, or more preferably between three and six transfer times. One of the benefits of invention embodiments is to minimise computational requirements of the scheduling method while still achieving a satisfactory scheduling solution, so that a high predetermined limit of say, 100 transfer times, is unlikely to be suitable in many circumstances.
Although the basic scheduling method of invention embodiments has clear advantages associated with the limited transfer times, there may be some occasions on which it does not produce satisfactory results and it can be appropriate to take such situations into account.
Therefore, in some preferred embodiments, if the chosen active resource has a suitability value worse than a predetermined "poor-case" suitability value, the scheduling method is restarted for the same task, using the evaluated resource having the highest suitability value as the first resource in the new iteration. In effect, a new benchmark is set and the method carried out again. This variation does have the disadvantage that the suitability values generated must be stored and accessed. In another variation, the scheduling method is restarted for the same task, using the chosen active resource as the first resource. Such a method would usually have enhanced results over carrying out the method only once unless the chosen active resource is finally chosen only because the predetermined limit to the task transfers has been reached and the chosen active resource is therefore less suitable than the previously chosen active resource.
The method of some invention embodiments requires selection of a group of resources. Any method may be used to select the group of resources and one particularly beneficial method takes into account both the proximity (in terms of communication distance) of each resource to the task as well as its acceptability for executing the task. In a simpler selection method, only acceptability of executing the task is taken into consideration. The number of resources evaluated will in any case be limited by the predetermined limit to the number of times that the task is transferred.
The scheduling method of invention embodiments may be implemented entirely by the resources at which the task is evaluated themselves. In this case, the resources form a scheduling entity. In one example, the first resource can select the task to be executed and optionally the group of resources capable of executing the task. In such a case, the scheduling is carried out initially by the first resource. Later, when the task is transferred, responsibility for scheduling can rest with the resource to which the task is transferred. It a thus becomes the responsibility of the current resource to carry out the necessary comparison and either pass the task on to the next resource or execute the task. Thus the comparison is carried out locally, with the attendant advantages in accuracy of information within a changing environment. For comparison purposes, the current resource merely requires the first suitability value which can be sent on from the previous active resource, along with the task. According to a variation of this embodiment, the first resource can carry out the entire scheduling method, however this variation loses some of the advantages of distributed scheduling.
In an alternative to the resources themselves forming a scheduling entity, a separate scheduling entity can be provided. In this case, the entity should be close (in terms of communication distance) to the location of the task and/or selected group of resources.
If a separate scheduling entity is provided, information about the resources and task which is necessary to perform the evaluation function may be sent to the scheduling entity.
Furthermore, advantageously, after the task is executed, selected execution parameters can be fed back to the scheduling entity so that it can monitor and optionally improve its scheduling performance.
The foregoing description relates to embodiments in which the evaluation function is initially performed at a single first resource to generate a first suitability value. However, it can be advantageous to assess more than one resource and generate a better or best suitability value out of this group of first resources for use as a comparison. According to one example, the ratio of the predetermined limit to task transfers to the number of first resources is approximately three to one, and more preferable e (2.718281...), which is in line with some statistical models. This variation of the method provides a higher benchmark against which to compare the later suitability values, but there is a cost involved in this move towards process centralisation.
The invention also provides apparatus and computer program aspects which correspond directly to the method aspects set out above. Method aspects can apply to corresponding apparatus and computer program aspects and vice versa.
Assumptions and Prerequisites The following list contains assumptions and prerequisites used by the inventor in arriving at the invention. These assumptions and prerequisites apply equally to conventional task scheduling as well as to distributed environments.
1. It can be determined which set of resources, taken from a larger set of resources, is capable of executing the task that needs to be scheduled. This information is generally available globally and is relatively static.
2. There exists a function, evaluated at or near a resource, that determines the relative value (suitability value") of using that resource to perform the task. This local definition of value has the same units throughout the distributed environment and is therefore comparable.
Since information quality is key to making high quality scheduling decisions and since information quality is highest nearest the resource (in the sense that the information is relatively fresh and reliable), embodiments of the invention allow the entity making the scheduling decision to be close to the resource.
-
Preferred features of the present invention will now be described, purely by way of example, with reference to the accompanying drawings, in which:-Figure 1 is a schematic diagram of a distributed computing environment; Figure 2 is a schematic diagram of a stand-alone computer which can be connected as a node in a distributed computing environment to provide a resource; Figure 3 is a schematic diagram of a hierarchy of tasks and their allocation to resources
using a prior art centralized scheduler;
Figure 4 is a schematic diagram of a simple scheduling method using the scheduler of the present invention embodiments; Figure 5 is a flow chart of an invention embodiment; and Figure 6 is a graph showing results of scheduling according to an embodiment of the invention.
Figure 1 is a diagram of one constellation of a distributed computing environment 1. Here, nodes 10 to 16, each providing a resource, are connected in a particular exemplary structure (a tree). The structure will vary according to the environment. The environment may be closely or loosely coupled.
Some of the characteristics identified by the inventor that make loosely coupled, distributed environments complex problems for scheduling or resource optimization are listed below.
1. Uncertainty -Imperfect information at the scheduler arises because of the continuously changing environment and the lack of instantaneous communication -11 between the resources and the scheduler. Information can be out of date (erroneous) or missing.
2. NP-Completeness -The underlying scheduling problem is NP-Complete and therefore only heuristic solutions are possible in the general case.
3. Hot spots -Driven by localized demand services (such bank clients in the same time zone performing transactions simultaneously, or a hot spot in a forest fire), loading on resources is also localized. As a result, schedulers must distribute load as well as find local solutions.
4. Opaqueness of Policy -Scheduling is a hierarchical problem and at some point in the hierarchy, the higher-level scheduler may not have control of (or even know) the scheduling policies farther down the hierarchy.
5. Bottleneck -There is a trade off between a centralized scheduler having a possibly better (but not perfect) view of the load than multiple independent (possibly competing) schedulers. However, a centralized scheduler becomes a bottleneck and a single point of failure in the system.
In an example of a loosely coupled distributed environment, each node is a PC 20 (for example as shown in Figure 2), which is connected to the other nodes via the internet 25 using an ISP 26. Another environment could be considered to be PC 20 and the other elements on the total network 22, with host 23.
In a basic centralized first-come first-served scheduling system for the internet environment, the ISP or even one of the PCs would be responsible for the scheduling decisions. A highly simplified version of such a methodology is shown in Figure 3. Here, a hierarchy of tasks is depicted with Ti as the top level task which spawns tasks 13 and T2 which in turn give rise to subtasks. A centralized scheduler is shown, which operates simply to schedule tasks to resource Ri until the resource is fully loaded before scheduling to R2 to R5 in turn until each is fully loaded. When the final resource is fully loaded, the simple centralized scheduler returns to Ri, R2 and so on. Of course, central scheduling decisions are usually made according to much more complex scheduling algorithms.
In contrast, Figure 4 shows a simplified distributed scheduling method according to embodiments of the present invention to illustrate the distributed environment. The predetermined limit to task transfers is taken to be 3. Resources Ri to R4 are shown distributed spatially. Task Ti is evaluated at Ri as the first resource generating a first suitability value. It is subsequently transferred to R2, which has a worse suitability value and then to R3. Here, it has a higher active suitability value, so it is executed, as indicated by Ti shown in a circle within R3.
Task T2 is initially evaluated at R4 as the first resource and subsequently evaluated at R3, where a lower value of the evaluation function is obtained, and then at Ri where a higher suitability value is generated. 12 is therefore executed at Ri.
T3 is initially evaluated at R2 and executed at R4. Finally, 14 is initially evaluated at R4 and passes through evaluation at both Ri and R2 before being evaluated and executed at R3, because R3 is the only more suitable resource than R4 or because the predetermined limit to the number of times which the task is transferred has been reached. In this latter case, R3 may even be the least suitable resource. 13. -
Figure 5 is a flow diagram illustrating an invention embodiment. At step 31, a task is selected. The tasks are likely to be heterogeneous, but unlikely to change description during their execution. Steps 31 to 37 are shown.
31. Select Task: A task is identified for execution. The task may be selected from a list of ready tasks or some other process. There may be some priority associated with this step.
32. Evaluate Task: Evaluate the local resource for its potential to execute the task using the chosen evaluation function. Call this value V1. Note the function is chosen to be suitable for a particular system. Simple examples include current load on the resource.
33. Dispatch Task: Send the task to another resource for evaluation and possible execution. The choice of which resource is chosen to be dependent on system parameters. Random or nearest strategies are typical.
34. Re-evaluate Task: Evaluate the local resource for its potential to execute the task using the same function as used in step 32. Call this value V,.
35. Check Evaluation: If V, is better than V1 proceed to step 37, otherwise proceed to step 36.
36. Check Count: If i is equal to N, proceed to step 37, otherwise proceed to step 33. The value of N is an implementation choice. In the following evaluation, cases for N=4 and N=5 are examined.
37. Execute Task: Execute the task at the local resource.
The steps are performed anywhere a task is made available, thus this process is performed in parallel through the environment.
Table 1 summarises the probability of making the right choice based on this approach relative to making the theoretical best choice. Note that the reference case is making the best choice assuming that the global information is exactly the same quahty as the local information with respect to a specific resource.
N=4 N=5 Best 45.83% 41.67% 2 Best 29.17% 26.67% 3rd Best 16.67% 16.66% 4th Best 0.00% 10.00% Worst 8.33% 5.00% Table 1: Probability of making the right choice.
Note that under perfect conditions global evaluation of all resources chooses the best resource 100% of the time. The importance of the method of invention embodiments lies in not choosing the worst case. The following is an analysis of the potential of this method under non-ideal (realistic) conditions.
Evaluation Figure 6 presents results of simple set of simulations capturing several aspects of the value of this scheduler using a simple program. Figure 6 shows the throughput of lOOK tasks on 1 K resources. Throughput is measured in tasks/time unit, where a time unit is the time required to make a scheduling decision. The degraded case assumes that some scheduling information is missing from 20% of resources.
The value achieved by distributing the process of selecting the resource on which to schedule a task is visible toward the left hand side. Compare Distributed to both Centralized and Degraded. The effect of poor load balancing is apparent to the right hand side of the chart, compare Degraded to Distributed, although the effect is less pronounced. The graph is parameterised by adjusting the load associated with the tasks relative to the load associated with actually making the scheduling decision. For coarse-grained (larger) tasks, the benefit is masked (right hand side). However, for fine grain (smaller) tasks the benefit is significant (left hand side). Note that although scheduling is not computationally intensive, comparing a complex task description with a complex resource description and evaluating it, is non trivial when thousands of resources are considered. See Figure 6 for an indication of the value of distribution.
Notice that in no case is the distributed method worse than the centralized approach and the distributed method is generally close to the ideal except for very small tasks.
Resource optimization applies not simply to job or task management for tasks internal to a computer system, but also to a wide variety of other complex activities. For example, emergency personnel and equipment are critical resources, the deployment of which must be optimized in a crisis situation. Particularly when communication is slow relative to the state of change in the environment, the environment exhibits the same characteristics as a classic IT distributed system. In this proposal, the entity responsible for making decisions about resource optimization or scheduling is called a scheduler or scheduling entity, but this scheduler is a much broader concept than a simple job scheduler for a computer. The method can be a simulation, using a computer system to simulate the tasks, resources and task transfer. Thus, the term resource as used herein can be synonymous with a node in a computer cluster or, for example, a fire bomber in a forest fire. In the latter case, the method is a simulation of a fire fighting situation, which can be carried out in real time.
In any of the above aspects, the various features may be implemented in hardware, or as software modules running on one or more processors. Features of one aspect may be applied to any of the other aspects.
The invention also provides a computer program or a computer program product for carrying out any of the methods described herein, and a computer readable medium having stored thereon a program for carrying out any of the methods described herein. A computer program embodying the invention may be stored on a computer-readable medium, or it could, for example, be in the form of a signal such as a downloadable data signal provided from an Internet website, or it could be in any other form.

Claims (19)

  1. CLAIMS: 1. A computer-implemented scheduling method for scheduling tasks in a system having inter-connected resources, comprising: selecting a task to be executed; initially performing an evaluation function at at least a first resource to generate a first suitability value indicating suitability to execute the task; transferring the task to another of the group of resources, that resource becoming the active resource, and performing the same evaluation function at the active resource, until either: the active suitability value indicating the suitability of the active resource to execute the task is better than the first suitability value indicating the suitability of the first resource to execute the task, or a pre-determined limit to the number of times which the task is transferred is reached; and then choosing the active resource to execute the task.
  2. 2. A computer-implemented scheduling method according to claim 1, further including selecting a group of resources capable of executing the task after the task is selected.
  3. 3. A computer-implemented scheduling method according to claim 1 or 2, wherein factors influencing the evaluation function change over time, at a rate such that the suitability values generated may become out of date during the execution of the scheduling method.
  4. 4. A computer-implemented scheduling method according to any of the preceding claims, wherein the evaluation function is dependent upon at least one of the following factors: loading at the resource being evaluated; total system energy considerations; and communication distance between the task and the resource;
  5. 5. A computer-implemented scheduling method according to any of the preceding claims, wherein the method takes place separately at two levels in a hierarchy of tasks, without communication as to the scheduling method and its results between the two.
  6. 6. A computer-implemented scheduling method according to any of the preceding claims, wherein a plurality of tasks is scheduled, each task being scheduled locally where it has been created, so that distributed scheduling takes place.
  7. 7. A computer-implemented scheduling method according to any of the preceding claims, wherein the task is selected from a list of ready tasks.
  8. 8. A computer-implemented scheduling method according to any of the preceding claims, wherein the transfer of the task from a current resource to a subsequent resource to be evaluated is at least partially dependent upon mutual proximity of the resources in question.
  9. 9. A computer-implemented scheduling method according to any of the preceding claims, wherein the pre-determined limit to the number of times which the task is transferred is determined in dependence upon the ratio between the expected time taken to transfer the task and the expected time taken to execute the task.
  10. 10. A computer-implemented scheduling method according to any of the preceding claims, wherein if the chosen resource has a suitability value worse than a predetermined poor-case suitability value, the scheduling method is restarted using the same task and the chosen active resource as the first resource.
  11. 11. A computer-implemented scheduling method according to any of the preceding claims 2 to 10, wherein the group of resources is selected at least partially in dependence upon proximity to the task and acceptability for executing the task.
  12. 12. A computer-implemented scheduling method, wherein the method is implemented entirely by the resources where the task is evaluated, which form a scheduling entity.
  13. 13. A computer-implemented scheduling method according to any of the preceding claims, wherein the first resource selects the task to be executed and optionally the group of resources capable of executing the task and preferably wherein each subsequent resource to which the task is transferred in turn carries out the corresponding part of the subsequent procedure.
  14. 14. A computer-implemented scheduling method according to any of the preceding claims 2 to 11, wherein the method is implemented using a separate scheduling entity which is close in terms of communication distance to the location of the task and/or selected group of resources.
  15. 15. A computer-implemented scheduling method according to claim 14, further including the step of executing the task and optionally feeding back selected execution parameters to the scheduling entity.
  16. 16. A computer-implemented scheduling method according to any of the preceding claims, wherein the evaluation function is initially performed at a group of more than one first resources and the first suitability value is taken as the best suitability value generated from this first resource group.
  17. 17. A scheduling entity for scheduling tasks in a system having inter-connected resources, comprising: selection means operable to select a task to be executed; initial evaluation means operable to initially perform an evaluation function at at least a first resource to generate a first suitability value indicating suitability to execute the task; transfer means operable to transfer the task to another of the group of resources, that resource becoming the active resource, active evaluation means operable to perform the same evaluation function at the active resource, comparison means operable to check whether the active suitability value indicating the suitability of the active resource to execute the task is better than the first suitability value indicating the suitability of the first resource to execute the task, and counting means operable to determine the number of times which the task is transferred and compare this with a pre-determined limit; and control means operable to choose the active resource to execute the task if the active suitability value is better than the first suitability value or if the predetermined limit has been reached, or to activate the transfer means if neither of these conditions is fulfilled.
  18. 18. A scheduling computer program, which when executed in a system having inter-connected resources, causes it to carry out a task scheduling method, comprising: selecting a task to be executed; initially performing an evaluation function at at least a first resource to generate a first suitability value indicating suitability to execute the task; transferring the task to another of the group of resources, that resource becoming the active resource, and performing the same evaluation function at the active resource, until either: the active suitability value indicating the suitability of the active resource to execute the task is better than the first suitability value indicating the suitability of the first resource to execute the task, or a pre-determined limit to the number of times which the task is transferred is reached; and then choosing the active resource to execute the task.
  19. 19. A scheduling method, entity, or computer program according to an embodiment set out in the description or shown in the drawings.
GB0721967.8A 2007-11-08 2007-11-08 Task scheduling method apparatus and computer program Expired - Fee Related GB2454497B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0721967.8A GB2454497B (en) 2007-11-08 2007-11-08 Task scheduling method apparatus and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0721967.8A GB2454497B (en) 2007-11-08 2007-11-08 Task scheduling method apparatus and computer program

Publications (3)

Publication Number Publication Date
GB0721967D0 GB0721967D0 (en) 2007-12-19
GB2454497A true GB2454497A (en) 2009-05-13
GB2454497B GB2454497B (en) 2012-01-11

Family

ID=38858387

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0721967.8A Expired - Fee Related GB2454497B (en) 2007-11-08 2007-11-08 Task scheduling method apparatus and computer program

Country Status (1)

Country Link
GB (1) GB2454497B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158906A (en) * 2011-05-19 2011-08-17 北京工业大学 Service quality sensory system and task scheduling method thereof
US9201701B2 (en) 2010-07-16 2015-12-01 Nokia Technologies Oy Method and apparatus for distributing computation closures
US9396040B2 (en) 2010-12-27 2016-07-19 Nokia Technologies Oy Method and apparatus for providing multi-level distributed computations
CN111353927A (en) * 2018-12-21 2020-06-30 想象技术有限公司 Scheduling tasks in a processor

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112311525B (en) * 2020-10-26 2024-03-12 深圳供电局有限公司 Resource matching method for distributed terminals in power grid

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055694A1 (en) * 2003-09-04 2005-03-10 Hewlett-Packard Development Company, Lp Dynamic load balancing resource allocation
WO2005088443A2 (en) * 2004-03-16 2005-09-22 Sony Computer Entertainment Inc. Methods and apparatus for reducing power dissipation in a multi-processor system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055694A1 (en) * 2003-09-04 2005-03-10 Hewlett-Packard Development Company, Lp Dynamic load balancing resource allocation
WO2005088443A2 (en) * 2004-03-16 2005-09-22 Sony Computer Entertainment Inc. Methods and apparatus for reducing power dissipation in a multi-processor system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201701B2 (en) 2010-07-16 2015-12-01 Nokia Technologies Oy Method and apparatus for distributing computation closures
US9396040B2 (en) 2010-12-27 2016-07-19 Nokia Technologies Oy Method and apparatus for providing multi-level distributed computations
CN102158906A (en) * 2011-05-19 2011-08-17 北京工业大学 Service quality sensory system and task scheduling method thereof
CN102158906B (en) * 2011-05-19 2014-02-26 北京工业大学 Service quality sensory system and task scheduling method thereof
CN111353927A (en) * 2018-12-21 2020-06-30 想象技术有限公司 Scheduling tasks in a processor

Also Published As

Publication number Publication date
GB0721967D0 (en) 2007-12-19
GB2454497B (en) 2012-01-11

Similar Documents

Publication Publication Date Title
Bhattacharjee et al. Barista: Efficient and scalable serverless serving system for deep learning prediction services
Zhong et al. A cost-efficient container orchestration strategy in kubernetes-based cloud computing infrastructures with heterogeneous resources
Carrión Kubernetes scheduling: Taxonomy, ongoing issues and challenges
Ghahramani et al. Toward cloud computing QoS architecture: Analysis of cloud systems and cloud services
Rodriguez et al. A taxonomy and survey on scheduling algorithms for scientific workflows in IaaS cloud computing environments
Jarvis et al. Performance prediction and its use in parallel and distributed computing systems
Rao et al. QoS guarantees and service differentiation for dynamic cloud applications
Yusoh et al. Composite saas placement and resource optimization in cloud computing using evolutionary algorithms
Ko et al. Design and application of task administration protocols for collaborative production and service systems
CN104123189A (en) Web multilayer application dynamic resource adjustment method based on IaaS layer application perception
Senjab et al. A survey of Kubernetes scheduling algorithms
Lebre et al. Putting the next 500 vm placement algorithms to the acid test: The infrastructure provider viewpoint
GB2454497A (en) Task Scheduling Method with a Threshold Limit on Task Transfers between Resources
Ataie et al. Modeling and evaluation of dispatching policies in IaaS cloud data centers using SANs
Ferreira da Silva et al. Controlling fairness and task granularity in distributed, online, non‐clairvoyant workflow executions
WO2016201161A1 (en) Computing resource management system
Keerthika et al. A hybrid scheduling algorithm with load balancing for computational grid
Lim et al. On the analysis of satisfaction for web services selection
WO2020206699A1 (en) Predicting virtual machine allocation failures on server node clusters
Zhang Scheduling algorithm for real-time applications in grid environment
Nazeri et al. A predictive energy-aware scheduling strategy for scientific workflows in fog computing
Marchese et al. Application and Infrastructure-Aware Orchestration in the Cloud-to-Edge Continuum
Majid et al. A Review of Deep Reinforcement Learning in Serverless Computing: Function Scheduling and Resource Auto-Scaling
Sun et al. Quality of service of grid computing: resource sharing
Chen et al. Interference-aware Multiplexing for Deep Learning in GPU Clusters: A Middleware Approach

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20151108