Nothing Special   »   [go: up one dir, main page]

US20120005682A1 - Holistic task scheduling for distributed computing - Google Patents

Holistic task scheduling for distributed computing Download PDF

Info

Publication number
US20120005682A1
US20120005682A1 US12/828,281 US82828110A US2012005682A1 US 20120005682 A1 US20120005682 A1 US 20120005682A1 US 82828110 A US82828110 A US 82828110A US 2012005682 A1 US2012005682 A1 US 2012005682A1
Authority
US
United States
Prior art keywords
complete
job
estimated time
task
processing
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.)
Abandoned
Application number
US12/828,281
Inventor
Ronald P. Doyle
David L. Kaminsky
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to US12/828,281 priority Critical patent/US20120005682A1/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: DOYLE, RONALD P., KAMINSKY, DAVID L.
Publication of US20120005682A1 publication Critical patent/US20120005682A1/en
Priority to US13/407,669 priority patent/US8595735B2/en
Abandoned legal-status Critical Current

Links

Images

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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Definitions

  • the present invention relates to distributed computing and more particularly to scheduling of tasks comprising a job in different nodes of a distributed computing system.
  • Distributed computing refers to the distribution of a computing tasks to one or more selected nodes amongst several nodes in a computing cluster within a network environment.
  • Early forms of the distributed computing model were embodied by a cluster of nodes—generally complete servers or server images—wholly within the control of a central operator.
  • Cloud computing generally refers to a collection of nodes disposed upon the global Internet with disparate controlling entities providing processing on demand as a service to different requestors usually for a fee. Irrespective of the nature of a distributed computing system, scheduling of jobs to different nodes remains paramount to the operation of a distributed computing system.
  • Task scheduling relates to the determination of one or more nodes in a cluster both able and also desired to process a selected task or tasks in a manner most likely to meet the processing objectives of the distributed computing system.
  • the distributed computing infrastructure completes the job comprised of the tasks.
  • the least taxed node in a cluster is assigned a pending task so as to perform the task in a most expedient manner.
  • the resources of available nodes can be matched to the task at hand to ensure efficient processing of a job, regardless of whether efficient processing refers to the fastest time to process the job, the most energy-efficient time to process the task, or the lowest cost to process the task.
  • the assignment of tasks to nodes in a cluster can be balanced to ensure that no one node receives a burdensome portion of the load.
  • the terms of a service level agreement (SLA) for a particular customer's job are associated with a task to be scheduled can be taken into account when selecting available nodes to process the task.
  • Map/Reduce has two main components a “Map” step and a “Reduce” step.
  • the master node accepts input, chops the input into smaller sub-problems (tasks), and distributes those smaller sub-problems to correspondingly different worker nodes. (A worker node may do this again in turn, leading to a multi-level tree structure). The worker node in turn processes that smaller problem, and passes the answer back to its master node. Thereafter, in the “Reduce” step, the master node then takes the answers to all the sub-problems and combines them in a way to get the output—the answer to the problem it was originally trying to solve.
  • Map/Reduce allows for distributed processing of the map and reduction operations. Provided each mapping operation is independent of the other, all maps can be performed in parallel—though in practice it is limited either or both of the data source and the number of central processing units (CPUs) near that data. Similarly, a set of ‘reducers’ can perform the reduction phase—all that is required is that all outputs of the map operation that share the same key are presented to the same reducer, at the same time. While this process can often appear inefficient compared to algorithms that are more sequential, Map/Reduce can be applied to significantly larger datasets than that which “commodity” servers can handle—a large server farm can use Map/Reduce to sort a petabyte of data in only a few hours.
  • the parallelism also offers some possibility of recovering from partial failure of servers or storage during the operation: if one mapper or reducer fails, the work can be rescheduled—assuming the input data are still available.
  • Embodiments of the present invention address deficiencies of the art in respect to scheduling tasks for parallel programming and provide a novel and non-obvious method, system and computer program product for holistic scheduling of tasks in a distributed computing environment.
  • a method for holistic task scheduling in a distributed computing environment includes selecting a first task for a first job and a second task for a different, second job, both jobs being scheduled for processing within a node a distributed computing environment by a task scheduler executing in memory by at least one processor of a computer.
  • the method also can include comparing an estimated time to complete the first and second jobs.
  • the first task can be scheduled for processing in the node when the estimated time to complete the second job exceeds the estimated time to complete the first job. Otherwise the second task can be scheduled for processing in the node when the estimated time to complete the first job exceeds the estimated time to complete the second job.
  • the task from the first job still can be preferred for scheduling in the node over the task from the second job if the time required to switch from executing tasks associated with the first job to tasks from the second job exceeds a threshold value thus negating the time advantage of the second job over the first job.
  • a task scheduling data processing system in another embodiment, includes a computer with at least one processor and memory and coupled to a distributed computing system of different nodes over a computer communications network.
  • the distributed computing system is a cloud computing cluster.
  • the system also includes a parallel processing module configured to perform parallel processing of a provided problem in the different nodes.
  • the parallel processing module is a map/reduce module configured to perform a map/reduce operation on a selected problem.
  • the system includes a task scheduler executing in the computer.
  • the task scheduler includes program code that when executed in the memory of the computer is enabled to select first and second tasks for respectively different first and second jobs scheduled for processing within a node of the distributed computing system by the task scheduler, to compare an estimated time to complete the first and second jobs, and to schedule the first task for processing in the node when the estimated time to complete the second job exceeds the estimated time to complete the first job, but otherwise scheduling the second task for processing in the node when the estimated time to complete the first job exceeds the estimated time to complete the second job.
  • FIG. 1 is pictorial illustration illustrating a process for holistic task scheduling in a distributed computing environment
  • FIG. 2 is a schematic illustration of a distributed computing system configured for holistic task scheduling in a distributed computing environment
  • FIG. 3 is a flow chart illustrating a process for holistic task scheduling in a distributed computing environment.
  • Embodiments of the invention provide for holistic task scheduling in a distributed computing environment, for example a cloud computing environment.
  • different tasks can evaluated for execution in a node of a distributed computing system such as a cloud computing cluster.
  • Each of the tasks can be associated with a different job.
  • the job can be associated with a sub-problem of a problem subject to map/reduce computing.
  • the time to complete the jobs for the corresponding tasks can be estimated. Thereafter, the task associated with the job most likely to complete soonest can be preferred and thus scheduled for execution in the node.
  • FIG. 1 pictorially shows a process for holistic task scheduling in a distributed computing environment.
  • a parallel processor 110 can sub-divide a computational problem 120 into different groupings of tasks 160 B for parallel processing in different nodes 130 of a distributed computing system 140 such as a cloud computing cluster.
  • a nodal assignment 170 can be established for the different groupings of tasks 160 B and provided to a task scheduler 300 configured to schedule different jobs in different ones of the nodes 130 of the distributed computing system 140 .
  • the task scheduler 300 in response to the receipt of the nodal assignment 170 for the grouping tasks 160 B can determine for jobs corresponding to the tasks 160 B slated for scheduling in a given one of the nodes 130 an estimated time to complete each job 150 A, 150 B. To the extent that tasks of the jobs 150 A, 150 B are presently executing in one or more nodes 130 of the distributed computing system 140 , monitor 180 can estimate a time necessary to complete the remaining tasks of the job. Job comparison module 190 subsequently can compare the estimated times to complete each job 150 A, 150 B. A particular one of the tasks 160 B associated with a job determined to complete soonest will be assigned by the task scheduler 300 to the given one of the nodes 130 .
  • FIG. 2 is a schematic illustration of a distributed computing system configured for holistic task scheduling in a distributed computing environment.
  • the system can include a host computer 210 with at least one processor and memory.
  • An operating system 240 can execute in the computer 210 and can host the operation of a parallel processing module 250 , for example a map/reduce module configured to implement map/reduce on a supplied problem.
  • the computer 210 can be communicatively coupled to a collection of nodes 270 in a distributed computing system 260 , for instance a cloud computing environment.
  • a task scheduler 300 can be coupled to the parallel processing module 250 .
  • the task scheduler 300 can include program code that when executed in memory by at least one processor of the computer 210 can schedule a grouping of tasks for a selected job 220 B for processing in nodes 270 .
  • the program code of the task scheduler 300 can compare the estimated time to complete different jobs 220 A, 220 B corresponding to different tasks vying for scheduling in a given one of the nodes 270 .
  • the task associated with the job most likely to complete soonest will be assigned by the program code to the given one of the nodes 270 .
  • the remaining tasks are then left scheduling in different ones of the nodes 270 .
  • FIG. 3 is a flow chart illustrating a process for holistic task scheduling in a distributed computing environment.
  • a first task corresponding to a first job can be selected for scheduling in the distributed computing environment.
  • a second task corresponding to a second job can be selected for scheduling in the in the distributed computing environment.
  • the tasks can be mapped to a particular node and in block 340 , an estimated time to complete each of the jobs can be computed.
  • decision block 350 if the time to complete processing of the first job exceeds that of the second job, in block 360 the second job can be scheduled for execution in the node. Otherwise, in block 370 the first job can be scheduled for execution in the node.
  • aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
  • the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
  • a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
  • a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof.
  • a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, radiofrequency, and the like, or any suitable combination of the foregoing.
  • Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language and conventional procedural programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • LAN local area network
  • WAN wide area network
  • Internet Service Provider an Internet Service Provider
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures.
  • each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams can be implemented by computer program instructions.
  • These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

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)
  • Hardware Redundancy (AREA)

Abstract

Embodiments of the present invention provide a method, system and computer program product for holistic task scheduling in a distributed computing environment. In an embodiment of the invention, a method for holistic task scheduling in a distributed computing environment is provided. The method includes selecting a first task for a first job and a second task for a different, second job, both jobs being scheduled for processing within a node a distributed computing environment by a task scheduler executing in memory by at least one processor of a computer. The method also can include comparing an estimated time to complete the first and second jobs. Finally, the first task can be scheduled for processing in the node when the estimated time to complete the second job exceeds the estimated time to complete the first job. Otherwise the second task can be scheduled for processing in the node when the estimated time to complete the first job exceeds the estimated time to complete the second job.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • The present invention relates to distributed computing and more particularly to scheduling of tasks comprising a job in different nodes of a distributed computing system.
  • 2. Description of the Related Art
  • Distributed computing refers to the distribution of a computing tasks to one or more selected nodes amongst several nodes in a computing cluster within a network environment. Early forms of the distributed computing model were embodied by a cluster of nodes—generally complete servers or server images—wholly within the control of a central operator. With the advent of Web services and grid based computing, modern forms of distributed computing are embodied by the cloud computing model. Cloud computing generally refers to a collection of nodes disposed upon the global Internet with disparate controlling entities providing processing on demand as a service to different requestors usually for a fee. Irrespective of the nature of a distributed computing system, scheduling of jobs to different nodes remains paramount to the operation of a distributed computing system.
  • Task scheduling relates to the determination of one or more nodes in a cluster both able and also desired to process a selected task or tasks in a manner most likely to meet the processing objectives of the distributed computing system. By completing the tasks, the distributed computing infrastructure completes the job comprised of the tasks. In the most basic circumstance, the least taxed node in a cluster is assigned a pending task so as to perform the task in a most expedient manner. In a more sophisticated circumstance, the resources of available nodes can be matched to the task at hand to ensure efficient processing of a job, regardless of whether efficient processing refers to the fastest time to process the job, the most energy-efficient time to process the task, or the lowest cost to process the task. In an even more sophisticated circumstance, the assignment of tasks to nodes in a cluster can be balanced to ensure that no one node receives a burdensome portion of the load. Finally, the terms of a service level agreement (SLA) for a particular customer's job are associated with a task to be scheduled can be taken into account when selecting available nodes to process the task.
  • While the foregoing assumes discrete tasks scheduled for processing in different nodes of a computing cluster, not all computing can be related to the processing of discrete tasks. Rather, in some circumstances, a collection of tasks that alone lack stand-alone meaning, can combine as part of a larger job of meaning. A prime example includes tasks resulting from parallel computing in which a problem is subdivided into multiple tasks and assigned different nodes for processing the tasks in parallel. The result set from the processed tasks subsequently are combined to produce a result for the job. Map/Reduce computing is a technology outgrowth of parallel computing as it relates to computation processing.
  • As it is well known, Map/Reduce has two main components a “Map” step and a “Reduce” step. In the “Map” step, the master node accepts input, chops the input into smaller sub-problems (tasks), and distributes those smaller sub-problems to correspondingly different worker nodes. (A worker node may do this again in turn, leading to a multi-level tree structure). The worker node in turn processes that smaller problem, and passes the answer back to its master node. Thereafter, in the “Reduce” step, the master node then takes the answers to all the sub-problems and combines them in a way to get the output—the answer to the problem it was originally trying to solve.
  • One advantage of Map/Reduce is that Map/Reduce allows for distributed processing of the map and reduction operations. Provided each mapping operation is independent of the other, all maps can be performed in parallel—though in practice it is limited either or both of the data source and the number of central processing units (CPUs) near that data. Similarly, a set of ‘reducers’ can perform the reduction phase—all that is required is that all outputs of the map operation that share the same key are presented to the same reducer, at the same time. While this process can often appear inefficient compared to algorithms that are more sequential, Map/Reduce can be applied to significantly larger datasets than that which “commodity” servers can handle—a large server farm can use Map/Reduce to sort a petabyte of data in only a few hours. The parallelism also offers some possibility of recovering from partial failure of servers or storage during the operation: if one mapper or reducer fails, the work can be rescheduled—assuming the input data are still available.
  • Traditional modes of task scheduling in a distributed computing system as in the case of cloud computing can fail in the face of parallel programming methodologies like Map/Reduce. In this regard, traditional modes of task scheduling in distributed computing do not account for the interrelationship and interdependency of different tasks of a computational problem processed in parallel across different jobs. Rather, all decision making in respect to task scheduling is performed only with a view to the nature of an individual, atomic job to be assigned to a particular node. Consequently, the undesirable result can occur where an individual job estimated to require a duration of processing in a node that exceeds the duration of processing required for a different job will not be prioritized over the different job even though the completion of remaining tasks for the individual job will result in the completion of the job before a different job can complete.
  • BRIEF SUMMARY OF THE INVENTION
  • Embodiments of the present invention address deficiencies of the art in respect to scheduling tasks for parallel programming and provide a novel and non-obvious method, system and computer program product for holistic scheduling of tasks in a distributed computing environment. In an embodiment of the invention, a method for holistic task scheduling in a distributed computing environment is provided. The method includes selecting a first task for a first job and a second task for a different, second job, both jobs being scheduled for processing within a node a distributed computing environment by a task scheduler executing in memory by at least one processor of a computer. The method also can include comparing an estimated time to complete the first and second jobs. Finally, the first task can be scheduled for processing in the node when the estimated time to complete the second job exceeds the estimated time to complete the first job. Otherwise the second task can be scheduled for processing in the node when the estimated time to complete the first job exceeds the estimated time to complete the second job.
  • Optionally, even when an analysis of the estimated time needed to complete a first job exceeds the estimated time needed to complete a second job for two correspondingly different tasks vying for scheduling in the node, the task from the first job still can be preferred for scheduling in the node over the task from the second job if the time required to switch from executing tasks associated with the first job to tasks from the second job exceeds a threshold value thus negating the time advantage of the second job over the first job.
  • In another embodiment of the invention, a task scheduling data processing system is provided. The system includes a computer with at least one processor and memory and coupled to a distributed computing system of different nodes over a computer communications network. In one aspect of the embodiment, the distributed computing system is a cloud computing cluster. The system also includes a parallel processing module configured to perform parallel processing of a provided problem in the different nodes. In another aspect of the embodiment, the parallel processing module is a map/reduce module configured to perform a map/reduce operation on a selected problem. Finally, the system includes a task scheduler executing in the computer.
  • The task scheduler includes program code that when executed in the memory of the computer is enabled to select first and second tasks for respectively different first and second jobs scheduled for processing within a node of the distributed computing system by the task scheduler, to compare an estimated time to complete the first and second jobs, and to schedule the first task for processing in the node when the estimated time to complete the second job exceeds the estimated time to complete the first job, but otherwise scheduling the second task for processing in the node when the estimated time to complete the first job exceeds the estimated time to complete the second job.
  • Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
  • BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
  • The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein:
  • FIG. 1 is pictorial illustration illustrating a process for holistic task scheduling in a distributed computing environment;
  • FIG. 2 is a schematic illustration of a distributed computing system configured for holistic task scheduling in a distributed computing environment; and,
  • FIG. 3 is a flow chart illustrating a process for holistic task scheduling in a distributed computing environment.
  • DETAILED DESCRIPTION OF THE INVENTION
  • Embodiments of the invention provide for holistic task scheduling in a distributed computing environment, for example a cloud computing environment. In accordance with an embodiment of the invention different tasks can evaluated for execution in a node of a distributed computing system such as a cloud computing cluster. Each of the tasks can be associated with a different job. The job can be associated with a sub-problem of a problem subject to map/reduce computing. The time to complete the jobs for the corresponding tasks can be estimated. Thereafter, the task associated with the job most likely to complete soonest can be preferred and thus scheduled for execution in the node.
  • In illustration, FIG. 1 pictorially shows a process for holistic task scheduling in a distributed computing environment. As shown in FIG. 1, a parallel processor 110 can sub-divide a computational problem 120 into different groupings of tasks 160B for parallel processing in different nodes 130 of a distributed computing system 140 such as a cloud computing cluster. A nodal assignment 170 can be established for the different groupings of tasks 160B and provided to a task scheduler 300 configured to schedule different jobs in different ones of the nodes 130 of the distributed computing system 140.
  • The task scheduler 300 in response to the receipt of the nodal assignment 170 for the grouping tasks 160B can determine for jobs corresponding to the tasks 160B slated for scheduling in a given one of the nodes 130 an estimated time to complete each job 150A, 150B. To the extent that tasks of the jobs 150A, 150B are presently executing in one or more nodes 130 of the distributed computing system 140, monitor 180 can estimate a time necessary to complete the remaining tasks of the job. Job comparison module 190 subsequently can compare the estimated times to complete each job 150A, 150B. A particular one of the tasks 160B associated with a job determined to complete soonest will be assigned by the task scheduler 300 to the given one of the nodes 130.
  • The process described in connection with FIG. 1 can be implemented in a distributed computing data processing system. In further illustration, FIG. 2 is a schematic illustration of a distributed computing system configured for holistic task scheduling in a distributed computing environment. The system can include a host computer 210 with at least one processor and memory. An operating system 240 can execute in the computer 210 and can host the operation of a parallel processing module 250, for example a map/reduce module configured to implement map/reduce on a supplied problem.
  • The computer 210 can be communicatively coupled to a collection of nodes 270 in a distributed computing system 260, for instance a cloud computing environment. Further, a task scheduler 300 can be coupled to the parallel processing module 250. The task scheduler 300 can include program code that when executed in memory by at least one processor of the computer 210 can schedule a grouping of tasks for a selected job 220B for processing in nodes 270. In this regard, the program code of the task scheduler 300 can compare the estimated time to complete different jobs 220A, 220B corresponding to different tasks vying for scheduling in a given one of the nodes 270. The task associated with the job most likely to complete soonest will be assigned by the program code to the given one of the nodes 270. The remaining tasks are then left scheduling in different ones of the nodes 270.
  • In yet further illustration of the operation of the task scheduler 300, FIG. 3 is a flow chart illustrating a process for holistic task scheduling in a distributed computing environment. Beginning in block 310, a first task corresponding to a first job can be selected for scheduling in the distributed computing environment. In block 320, a second task corresponding to a second job can be selected for scheduling in the in the distributed computing environment. In block 330, the tasks can be mapped to a particular node and in block 340, an estimated time to complete each of the jobs can be computed. In decision block 350, if the time to complete processing of the first job exceeds that of the second job, in block 360 the second job can be scheduled for execution in the node. Otherwise, in block 370 the first job can be scheduled for execution in the node.
  • As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
  • Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, radiofrequency, and the like, or any suitable combination of the foregoing. Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language and conventional procedural programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • Aspects of the present invention have been described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. In this regard, the flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. For instance, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
  • It also will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • Finally, the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
  • The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
  • Having thus described the invention of the present application in detail and by reference to embodiments thereof, it will be apparent that modifications and variations are possible without departing from the scope of the invention defined in the appended claims as follows:

Claims (11)

1. A method for holistic task scheduling in a distributed computing environment, the method comprising:
selecting first and second tasks associated with respectively different first and second jobs scheduled for processing within a node a distributed computing environment by a task scheduler executing in memory by at least one processor of a computer;
comparing an estimated time to complete each of the first and second jobs; and,
scheduling the first task for processing in the node when the estimated time to complete the second job exceeds the estimated time to complete the first job, but otherwise scheduling the second task for processing in the node when the estimated time to complete the first job exceeds the estimated time to complete the second job.
2. The method of claim 1, wherein the first and second jobs individually comprise a set of tasks for a sub-problem for a problem processed according to map/reduce.
3. The method of claim 1, wherein the distributed computing environment is a cloud computing cluster.
4. The method of claim 1, wherein scheduling the first task for processing in the node when the estimated time to complete the second job exceeds the estimated time to complete the first job, but otherwise scheduling the second task for processing in the node when the estimated time to complete the first job exceeds the estimated time to complete the second job comprises, scheduling the second task for processing in the node when the estimated time to complete the second job exceeds the estimated time to complete the first job but a time required to switch from executing tasks associated with the second job to tasks from the first job exceeds a threshold value, and otherwise scheduling the first task for processing in the node.
5. A task scheduling data processing system comprising:
a computer with at least one processor and memory and coupled to a distributed computing system of different nodes over a computer communications network;
a parallel processing module configured to perform parallel processing of a provided problem in the different nodes; and,
a task scheduler executing in the computer, the task scheduler comprising program code that when executed in the memory of the computer is enabled to select first and second tasks associated with respectively different first and second jobs scheduled for processing within a node of the distributed computing system by the task scheduler, to compare an estimated time to complete the first and second jobs, and to schedule the first task for processing in the node when the estimated time to complete the second job exceeds the estimated time to complete the first job, but otherwise scheduling the second task for processing in the node when the estimated time to complete the first job exceeds the estimated time to complete the second job.
6. The system of claim 5, wherein the parallel processing module is a map/reduce module configured to perform a map/reduce operation on a selected problem.
7. The system of claim 4, wherein the distributed computing system is a cloud computing cluster.
8. A computer program product for holistic task scheduling in a distributed computing environment, the computer program product comprising:
a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising:
computer readable program code for selecting first and second tasks associated with respectively different first and second jobs scheduled for processing within a node a distributed computing environment by a task scheduler executing in memory by at least one processor of a computer;
computer readable program code for comparing an estimated time to complete the first and second jobs; and,
computer readable program code for scheduling the first task for processing in the node when the estimated time to complete the second job exceeds the estimated time to complete the first job, but otherwise scheduling the second task for processing in the node when the estimated time to complete the first job exceeds the estimated time to complete the second job.
9. The computer program product of claim 8, wherein the first and second jobs individually comprise a set of tasks for a sub-problem for a problem processed according to map/reduce.
10. The computer program product of claim 8, wherein the distributed computing environment is a cloud computing cluster.
11. The computer program product of claim 8, wherein the computer readable program code for scheduling the first task for processing in the node when the estimated time to complete the second job exceeds the estimated time to complete the first job, but otherwise scheduling the second task for processing in the node when the estimated time to complete the first job exceeds the estimated time to complete the second job comprises, computer readable program code for scheduling the second task for processing in the node when the estimated time to complete the second job exceeds the estimated time to complete the first job but a time required to switch from executing tasks associated with the second job to tasks from the first job exceeds a threshold value, and otherwise scheduling the first task for processing in the node.
US12/828,281 2010-06-30 2010-06-30 Holistic task scheduling for distributed computing Abandoned US20120005682A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/828,281 US20120005682A1 (en) 2010-06-30 2010-06-30 Holistic task scheduling for distributed computing
US13/407,669 US8595735B2 (en) 2010-06-30 2012-02-28 Holistic task scheduling for distributed computing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/828,281 US20120005682A1 (en) 2010-06-30 2010-06-30 Holistic task scheduling for distributed computing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/407,669 Division US8595735B2 (en) 2010-06-30 2012-02-28 Holistic task scheduling for distributed computing

Publications (1)

Publication Number Publication Date
US20120005682A1 true US20120005682A1 (en) 2012-01-05

Family

ID=45400766

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/828,281 Abandoned US20120005682A1 (en) 2010-06-30 2010-06-30 Holistic task scheduling for distributed computing
US13/407,669 Expired - Fee Related US8595735B2 (en) 2010-06-30 2012-02-28 Holistic task scheduling for distributed computing

Family Applications After (1)

Application Number Title Priority Date Filing Date
US13/407,669 Expired - Fee Related US8595735B2 (en) 2010-06-30 2012-02-28 Holistic task scheduling for distributed computing

Country Status (1)

Country Link
US (2) US20120005682A1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103347055A (en) * 2013-06-19 2013-10-09 北京奇虎科技有限公司 System, device and method for processing tasks in cloud computing platform
US20140157038A1 (en) * 2012-12-04 2014-06-05 International Business Machines Corporation Using separate processes to handle short-lived and long-lived jobs to reduce failure of processes
CN104657217A (en) * 2015-02-04 2015-05-27 南京理工大学紫金学院 Heterogeneous granularity classification-based cloud environment task scheduling method
US20160103705A1 (en) * 2014-10-14 2016-04-14 National Applied Research Laboratories Operational-task-oriented system and method for dynamically adjusting operational environment
EP2825953A4 (en) * 2012-03-15 2016-08-03 Hewlett Packard Entpr Dev Lp Determining a schedule for a job to replicate an object stored on a storage appliance
US9846596B1 (en) * 2013-06-24 2017-12-19 Hrl Laboratories, Llc System and method for cloud control operations plane based on proactive security algorithms
CN109614211A (en) * 2018-11-28 2019-04-12 新华三技术有限公司合肥分公司 Distributed task scheduling pre-scheduling method and device
CN110032444A (en) * 2019-02-25 2019-07-19 阿里巴巴集团控股有限公司 A kind of distributed system and distributed task scheduling processing method
CN111158896A (en) * 2018-11-08 2020-05-15 中国移动通信集团上海有限公司 Distributed process scheduling method and system
CN111427679A (en) * 2020-03-25 2020-07-17 中国科学院自动化研究所 Computing task scheduling method, system and device facing edge computing
CN112035238A (en) * 2020-09-11 2020-12-04 曙光信息产业(北京)有限公司 Task scheduling processing method and device, cluster system and readable storage medium
CN112817712A (en) * 2021-01-26 2021-05-18 广州欢网科技有限责任公司 Distributed scheduling method and device and advertisement system

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120005682A1 (en) * 2010-06-30 2012-01-05 International Business Machines Corporation Holistic task scheduling for distributed computing
US9471390B2 (en) 2013-01-16 2016-10-18 International Business Machines Corporation Scheduling mapreduce jobs in a cluster of dynamically available servers
US9779374B2 (en) * 2013-09-25 2017-10-03 Sap Se System and method for task assignment in workflows
US11023330B2 (en) * 2016-09-02 2021-06-01 Vmware, Inc. Efficient scheduling of backups for cloud computing systems

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193186A (en) * 1990-02-05 1993-03-09 Hitachi, Ltd. Processor system for executing processes in parallel under multitask, control method of waiting for event of process
US5452461A (en) * 1989-04-28 1995-09-19 Hitachi, Ltd. Program parallelizing apparatus capable of optimizing processing time
US5867704A (en) * 1995-02-24 1999-02-02 Matsushita Electric Industrial Co., Ltd. Multiprocessor system shaving processor based idle state detection and method of executing tasks in such a multiprocessor system
US6212544B1 (en) * 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6944736B2 (en) * 2001-06-28 2005-09-13 Hewlett-Packard Development Company, L.P. Managing latencies in accessing memory of computer systems
US20060265712A1 (en) * 2005-05-18 2006-11-23 Docomo Communications Laboratories Usa, Inc. Methods for supporting intra-document parallelism in XSLT processing on devices with multiple processors
US20090241117A1 (en) * 2008-03-20 2009-09-24 International Business Machines Corporation Method for integrating flow orchestration and scheduling for a batch of workflows
US7793294B2 (en) * 2005-02-22 2010-09-07 Northrop Grumman Corporation System for scheduling tasks within an available schedule time period based on an earliest possible end time of the task
US20100269116A1 (en) * 2009-04-17 2010-10-21 Miodrag Potkonjak Scheduling and/or organizing task execution for a target computing platform
US20120216203A1 (en) * 2010-06-30 2012-08-23 International Business Machines Corporation Holistic task scheduling for distributed computing

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7480913B2 (en) * 2003-09-09 2009-01-20 International Business Machines Corporation Method, apparatus, and program for scheduling resources in a penalty-based environment
WO2009059377A1 (en) * 2007-11-09 2009-05-14 Manjrosoft Pty Ltd Software platform and system for grid computing

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452461A (en) * 1989-04-28 1995-09-19 Hitachi, Ltd. Program parallelizing apparatus capable of optimizing processing time
US5193186A (en) * 1990-02-05 1993-03-09 Hitachi, Ltd. Processor system for executing processes in parallel under multitask, control method of waiting for event of process
US5867704A (en) * 1995-02-24 1999-02-02 Matsushita Electric Industrial Co., Ltd. Multiprocessor system shaving processor based idle state detection and method of executing tasks in such a multiprocessor system
US6212544B1 (en) * 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6944736B2 (en) * 2001-06-28 2005-09-13 Hewlett-Packard Development Company, L.P. Managing latencies in accessing memory of computer systems
US7793294B2 (en) * 2005-02-22 2010-09-07 Northrop Grumman Corporation System for scheduling tasks within an available schedule time period based on an earliest possible end time of the task
US20060265712A1 (en) * 2005-05-18 2006-11-23 Docomo Communications Laboratories Usa, Inc. Methods for supporting intra-document parallelism in XSLT processing on devices with multiple processors
US20090241117A1 (en) * 2008-03-20 2009-09-24 International Business Machines Corporation Method for integrating flow orchestration and scheduling for a batch of workflows
US20100269116A1 (en) * 2009-04-17 2010-10-21 Miodrag Potkonjak Scheduling and/or organizing task execution for a target computing platform
US20120216203A1 (en) * 2010-06-30 2012-08-23 International Business Machines Corporation Holistic task scheduling for distributed computing

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2825953A4 (en) * 2012-03-15 2016-08-03 Hewlett Packard Entpr Dev Lp Determining a schedule for a job to replicate an object stored on a storage appliance
US20140157038A1 (en) * 2012-12-04 2014-06-05 International Business Machines Corporation Using separate processes to handle short-lived and long-lived jobs to reduce failure of processes
US9043644B2 (en) * 2012-12-04 2015-05-26 International Business Machines Corporation Using separate processes to handle short-lived and long-lived jobs to reduce failure of processes
CN103347055A (en) * 2013-06-19 2013-10-09 北京奇虎科技有限公司 System, device and method for processing tasks in cloud computing platform
US9846596B1 (en) * 2013-06-24 2017-12-19 Hrl Laboratories, Llc System and method for cloud control operations plane based on proactive security algorithms
US20160103705A1 (en) * 2014-10-14 2016-04-14 National Applied Research Laboratories Operational-task-oriented system and method for dynamically adjusting operational environment
US9612875B2 (en) * 2014-10-14 2017-04-04 National Applied Research Laboratories Operational-task-oriented system and method for dynamically adjusting operational environment
CN104657217A (en) * 2015-02-04 2015-05-27 南京理工大学紫金学院 Heterogeneous granularity classification-based cloud environment task scheduling method
CN111158896A (en) * 2018-11-08 2020-05-15 中国移动通信集团上海有限公司 Distributed process scheduling method and system
CN109614211A (en) * 2018-11-28 2019-04-12 新华三技术有限公司合肥分公司 Distributed task scheduling pre-scheduling method and device
CN110032444A (en) * 2019-02-25 2019-07-19 阿里巴巴集团控股有限公司 A kind of distributed system and distributed task scheduling processing method
CN110032444B (en) * 2019-02-25 2023-01-10 创新先进技术有限公司 Distributed system and distributed task processing method
CN111427679A (en) * 2020-03-25 2020-07-17 中国科学院自动化研究所 Computing task scheduling method, system and device facing edge computing
CN112035238A (en) * 2020-09-11 2020-12-04 曙光信息产业(北京)有限公司 Task scheduling processing method and device, cluster system and readable storage medium
CN112817712A (en) * 2021-01-26 2021-05-18 广州欢网科技有限责任公司 Distributed scheduling method and device and advertisement system

Also Published As

Publication number Publication date
US8595735B2 (en) 2013-11-26
US20120216203A1 (en) 2012-08-23

Similar Documents

Publication Publication Date Title
US8595735B2 (en) Holistic task scheduling for distributed computing
US10621004B2 (en) Resource control stack based system for multiple domain presentation of cloud computing resource control
US11709704B2 (en) FPGA acceleration for serverless computing
US9916183B2 (en) Scheduling mapreduce jobs in a cluster of dynamically available servers
US9277003B2 (en) Automated cloud workload management in a map-reduce environment
US8719833B2 (en) Adaptive demand-driven load balancing
US9367359B2 (en) Optimized resource management for map/reduce computing
US9396028B2 (en) Scheduling workloads and making provision decisions of computer resources in a computing environment
US8671134B2 (en) Method and system for data distribution in high performance computing cluster
CN109992407B (en) YARN cluster GPU resource scheduling method, device and medium
US20120284730A1 (en) System to provide computing services
US20120158451A1 (en) Dispatching Tasks in a Business Process Management System
US20140380320A1 (en) Joint optimization of multiple phases in large data processing
US20090282413A1 (en) Scalable Scheduling of Tasks in Heterogeneous Systems
WO2013107012A1 (en) Task processing system and task processing method for distributed computation
US9104491B2 (en) Batch scheduler management of speculative and non-speculative tasks based on conditions of tasks and compute resources
CN111198754B (en) Task scheduling method and device
US8612991B2 (en) Dynamic critical-path recalculation facility
CN111026519A (en) Distributed task priority scheduling method and system and storage medium
CN104598304B (en) Method and apparatus for the scheduling in Job execution
US7970884B1 (en) Distribution of intermediate data in a multistage computer application
US10320708B2 (en) Latency reduction with pre-moving of distributed data and adaptive allocating of compute operations
CN118860566A (en) GPU virtualization and AI combined computing power fusion method

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DOYLE, RONALD P.;KAMINSKY, DAVID L.;SIGNING DATES FROM 20100720 TO 20100907;REEL/FRAME:024978/0301

STCB Information on status: application discontinuation

Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION