WO2012151054A1 - Scheduling in mapreduce-like systems for fast completion time - Google Patents

Scheduling in mapreduce-like systems for fast completion time Download PDF

Info

Publication number
WO2012151054A1
WO2012151054A1 PCT/US2012/034191 US2012034191W WO2012151054A1 WO 2012151054 A1 WO2012151054 A1 WO 2012151054A1 US 2012034191 W US2012034191 W US 2012034191W WO 2012151054 A1 WO2012151054 A1 WO 2012151054A1
Authority
WO
WIPO (PCT)
Prior art keywords
jobs
job
lower bound
completion time
tasks
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.)
Ceased
Application number
PCT/US2012/034191
Other languages
French (fr)
Inventor
Sarit Mukherjee
Hyunseok Chang
Myung Jin Lee
Muralidharan Sampath Kodialam
Tirunell V. Lakshman
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.)
Alcatel Lucent SAS
Original Assignee
Alcatel Lucent SAS
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 Alcatel Lucent SAS filed Critical Alcatel Lucent SAS
Publication of WO2012151054A1 publication Critical patent/WO2012151054A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 is generally directed to scheduling tasks in a computing environment and more particularly to optimized scheduling of related sets of tasks across multiple processors.
  • MapReduce is a programming model used by these data centers for various applications such as indexing, mining, social networking, recommendation services, and advertising backends.
  • MapReduce includes a map phase and a reduce phase.
  • Map phase a dataset is partitioned into several smaller chunks that are assigned to individual nodes for partial computation of results. The results are computed at each node in the form of key-value pairs on the original data set.
  • reduce phase key-value pairs generated as a result of the map phase are aggregated based on the key-value pairs.
  • a centralized master program orchestrates the assignment and scheduling of jobs, each of which includes several map and reduce tasks.
  • the assignment and scheduling functions determine which tasks are assigned to a particular node.
  • the master keeps track of the progress of individual tasks in order to determine where to assign and when to schedule individual tasks. Since several MapReduce jobs are often performed in parallel, scheduling problems often arise due to varying workloads and job size distributions.
  • a method and system for scheduling tasks is provided.
  • a plurality of lower bound completion times using one or more computer processors and memory, is determined for each of a plurality of jobs, each of the plurality of jobs including a respective subset plurality of tasks.
  • a task schedule is determined for each of a plurality of processors based on the lower bound completion times.
  • tasks are scheduled at each processor based on the task schedule.
  • determining the lower bound completion times includes solving a linear program to determine the lower bound completion times.
  • the linear program is determined by the equation
  • Z LP is a minimum weighted completion time
  • j is a job in a plurality of jobs J
  • Wj represents a weight of each job
  • C j represents a calculated completion time of each job. Determining the lower bound completion times may be performed in response to the arrival of a new job or at a predetermined time in response to the arrival of new jobs during the predetermined time interval.
  • determining the task schedule includes determining a ranked order of the plurality of jobs based on the lower bound completion time of each of the plurality of jobs.
  • the lower bound completion times and task schedule are determined according to weighting factors assigned to each of the plurality of jobs.
  • FIG. 1 is an exemplary diagram of a computing environment in which tasks can be scheduled and assigned in accordance with an embodiment of the present invention
  • FIG. 2 is an exemplary diagram of a task schedule in accordance with an embodiment of the present invention.
  • Fig. 3 is a flowchart of a process for scheduling tasks in accordance with an embodiment of the present invention
  • Fig. 4 is a flowchart of an algorithm for scheduling tasks in accordance with an embodiment of the present invention.
  • Fig. 5 is a high level diagram of a computer which may be used to
  • Fig. 1 is an exemplary diagram of a computing environment in which tasks can be scheduled and assigned in accordance with an embodiment of the present invention.
  • Server 102 may reside at a data center 106, which is responsible for
  • Each job includes tasks, such as map and reduce tasks.
  • Server 102 is also responsible for generating a task schedule representing an order of tasks to be performed by each of the clients.
  • Server 102 may receive groups of jobs in bulk or receive individual jobs one at a time. As jobs arrive at server 102, the jobs are processed such that all tasks associated with each job are assigned to clients 104. The tasks may be assigned based on several factors, such as a current workload of a particular client or based on the capabilities of a particular client. After all tasks are assigned to clients 104, server 102 determines an optimal scheduling of the tasks with each client in order to minimize total job completion times across all of the clients 104. The completion time of a job is defined as the time needed for all tasks belonging to a respective job to be performed by clients 104.
  • server 102 determines a lower bound completion time for each job.
  • the lower bound completion time for a job represents the shortest possible completion time for
  • each lower bound completion time represents an ideal completion time.
  • the lower bound completion times are
  • a linear program is determined based on constraints such as the processing times of each job, release times of each job, and weights associated with each job specifying the importance of each job.
  • i time of each job represents the arrival time of the job at server 102. More specific information regarding the linear program is provided in the paragraphs below.
  • the lower bound completion times may be determined each time server 102 receives a new job or alternatively at predetermined time intervals as long as new jobs are received by server 102 during the predetermined time interval.
  • the lower bound completion times are used to determine a task schedule for any clients that have been assigned tasks associated with the jobs.
  • the task schedule is determined by ranking all jobs based on their lower bound completion times. Typically, to ensure that all jobs are performed in the shortest time, the jobs are ranked in order of shortest lower bound completion time to longest lower bound completion time.
  • the actual ranking of jobs is performed using an approximation algorithm that ensures that the actual summed weighted completion time of performing the jobs is less than or equal to a factor of the summed weighted lower bound completion time of jobs. More detail regarding the approximation algorithm is provided in the paragraphs below.
  • the task schedule is then used by server 102 to schedule tasks according to the order of jobs in the task schedule at each client 104A, 104-B, 104-C, 104-D, and 104-E.
  • client 104A, 104-B, 104-C, 104-D, and 104-E any number of clients may be utilized.
  • server 102 may represent a master processor of a computer and each client 104 may represent a processor in a parallel computing environment.
  • Fig. 2 is an exemplary diagram of a task schedule in accordance with an embodiment of the present invention.
  • An exemplary task schedule 202 is shown including a listing of jobs 204 and corresponding lower bound completion times 206, and a ranking 208.
  • the jobs are ranked based on shortest lower bound completion time to longest lower bound completion time. For example, job 25 has lower bound completion time of '5' and thus the highest task schedule ranking of ⁇ .'
  • job 1 has the longest corresponding lower bound completion time of '19' and has a task schedule ranking of '142.'
  • server 102 will schedule tasks based on the task schedule.
  • Task scheduling is based on task schedule 202. For example, if client 104-A is assigned certain tasks corresponding to jobs 25, 17, and 142, according to the task schedule, client 104-A will perform the tasks according to the job schedule ranking. This means that all tasks corresponding to job 25 are performed first, followed by the tasks corresponding to job 17, and then the tasks corresponding to job 142. Tasks will be performed in a similar order if, for example, client 104-B is assigned tasks corresponding to jobs 19, 2, and 8. Tasks corresponding to job 19 will be performed first, followed by tasks corresponding to job 2, and then tasks corresponding to job 8. It is understood that task schedule 202 is exemplary and may include more than or less than the number of jobs shown. It is also understood that each client 104 may be assigned tasks corresponding to any number of jobs.
  • Fig. 3 is a flowchart of a process for scheduling tasks in accordance with an embodiment of the present invention.
  • Server 102 is configured to schedule a plurality of tasks, wherein each task is assigned to one of a plurality of clients 104.
  • a plurality of lower bound completion times for each of a plurality of jobs is determined.
  • Each of the plurality of jobs includes a respective subset plurality of tasks.
  • the determination of the plurality of lower bounds may be performed either in response to server 102 receiving at least one new job including tasks that need to be assigned to clients 104, or in response to receiving at least one new job during a predetermined time interval. Determining the plurality of lower bounds includes solving a linear program to determine the lower bound completion times.
  • a task schedule for each of the plurality of clients is determined based on the lower bound completion times. Specifically, a ranked order of the plurality of jobs is determined using the lower bound completion times of each of the plurality of jobs. The ranked order is used as the task schedule.
  • tasks that have been assigned to each client are scheduled based on the task schedule.
  • M may be used to represent the set of processors and J to represent the set of jobs that need to be processed.
  • Each job 3 e J includes of n, tasks each of which is assigned to a processor.
  • M j M represents the set of processors required to process job It is assumed that each processor can process at most one task at a time. In practice, processors may run multiple tasks simultaneously and preempt each other.
  • Each job j is assumed to be available for processing at time ⁇ , the release time or arrival time of job / at server 102.
  • a weight Wj may also be applied to each job, which specifies its importance.
  • the finish time of job on a client or processor P € M i, is denoted by f jp , the time at which the task of job j is completed on processor p.
  • the completion time of a job, C j is defined as the time at which all tasks belonging to a job j are finished.
  • J p denotes the set of jobs that have a task assigned to processor p. Therefore
  • the objective of scheduling is to determine the ordering of tasks on each processor in order to minimize the weighted sum of the job completion times
  • the lower bound completion times are used in order to determine the resulting task schedule where the weighted completion time of completing the jobs according to the task schedule is within a factor of the weighted sum of the lower bound completion times.
  • Z LP represents an optimal solution to linear program (LP_OPT_SCHED) representing the lower bound completion time and f(S,p) represents the finish time of all jobs S on a particular processor p.
  • f(S, p) is symmetric in t jp and therefore its value is independent of the order in which the jobs in set S are processed. Moreover, ⁇ ies hv f jp only increases if some job in J p in a subset S is processed along with jobs in S. This holds for any subset S of J p . Since
  • the constraints in (2) states that the completion time of job j on cannot be less than the sum of the arrival time of the job and the maximum processing time of the job on any processor.
  • Equation (1 ) of the linear program there are an exponential number of constraints for each processor.
  • the polyhedron for each processor is a polymatroid.
  • the job completion times lie in the intersection of m
  • the three constraints on the left are for processor 1 and the three constraints on the right are for processor 2.
  • An optimal schedule is to schedule job 1 on both machines first, followed by job 2.
  • the completion time of job 1 is 2 and the completion time of job
  • Fig. 4 is a flowchart of an algorithm for scheduling tasks in accordance with an embodiment of the present invention. More specifically, Fig. 4 is a flowchart of the PRIMAL_DUAL algorithm. Given any e > 0, a combinatorial approach may be used to solve the maximization linear program to within a factor of (1- ef of the optimal solution.
  • This processor-subset combination represents a column in the linear program. This is equivalent to picking the entering variable in a standard simplex algorithm.
  • the blocking row a job j from set S is found.
  • the blocking row is the job that minimizes Pj .
  • step 408 representing the dual variables, is set.
  • step 410 the Q values are updated and the algorithm PRIMAL_DUAL outlined above may be repeated.
  • PRIMAL_DUAL outlined above
  • PRIMAL_DUAL computes an optimal solution to the linear program in at most iterations, where n is the number of jobs in the system. Each iteration represents a lower bound completion time for a particular job.
  • One aspect of solving the linear program is to determine a processor- subset combination that minimizes Equation (4).
  • completion time values Q are known, there may be an exponential number of subsets to be checked.
  • a straightforward brute force approach is not appropriate.
  • the structure of the scheduling polyhedron can be exploited to develop a simple polynomial time algorithm to solve the problem.
  • at most n sets need to be checked.
  • the running time of the algorithm is O(nm).
  • the primal-dual algorithm for solving LP_OPT_SCHED is similar to the primal-dual algorithm PRIMAL_DUAL outlined above. The only change is that there are n additional dual variables corresponding to the release time constraint for each job. These n additional variables are updated separately.
  • the solution of LP_OPT_SCHED can be used to design a 3- approximation algorithm. This algorithm is referred to as OFFA.
  • the superscript LP is used to denote the linear program solution and OFFA to denote the approximation algorithm. Letting denote job completion times corresponding to the optimal linear program solution, algorithm OFFA can be used to determine a task schedule representing the optimal ordering of jobs on processors.
  • J p are processed in the order output by the LP.
  • finish time of job j on machine p denoted by f v FFA
  • Z ⁇ and Z° FFA denote the objective function value of LP_OPT_SCHED and the sum weighted completion time from algorithm OFFA, respectively.
  • Jip denotes the finish time of job j on processor p and
  • LP_BULK_ARRIVAI_ is used. LP_BULK_ARRIVAL is represented by
  • Algorithm OFFB processes jobs in the order of linear program completion times and thus
  • release times or arrival times of jobs are not always known in advance.
  • all jobs currently in the system as well as the new job may be taken and used for LP_BULK_ARRIVAL.
  • An optimal task schedule can then be determined based on the lower bound completion times. This task schedule may be used until the arrival of the next job. Alternatively, groups of arrival jobs may be gathered and LP_BULK_ARRIVAL run periodically.
  • Computer 500 contains a plurality of processors 510 which controls the overall operation of computer 500 by executing computer program instructions which define such operations.
  • the computer program instructions may be stored in a storage device 520, or other computer readable medium (e.g., magnetic disk, CD ROM, etc.), and loaded into memory 530 when execution of the computer program instructions is desired.
  • the method steps of Figs. 3 and 4 can be defined by the computer program instructions stored in the memory 530 and/or storage 540 and controlled by processors 410 executing the computer program instructions.
  • the computer program instructions can be implemented as computer executable code programmed by one skilled in the art to perform an algorithm defined by the method steps of Figs. 3 and 4.
  • the processors 510 execute an algorithm defined by the method steps of Figs. 3 and 4.
  • Computer 500 has been described as being used for compensating for frequency dependent imbalances in a signal in accordance with the method steps shown in Figs. 3 and 4, computer 500 may also perform functionalities related to those described above in connection with the other Figures.
  • Computer 500 also includes one or more network interfaces 540 for communicating with other devices via a network.
  • Computer 500 further includes input/output devices 550 that enable user interaction with the computer 500 (e.g., display, keyboard, mouse, speakers, buttons, etc.)
  • input/output devices 550 that enable user interaction with the computer 500 (e.g., display, keyboard, mouse, speakers, buttons, etc.)
  • Fig. 5 is a high level representation of some of the components of such a computer for illustrative purposes.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

A method and system for scheduling tasks is provided. A plurality of lower bound completion times is determined, using one or more computer processors and memory, for each of a plurality of jobs, each of the plurality of jobs including a respective subset plurality of tasks. A task schedule is determined for each of the plurality of processors based on the lower bound completion times.

Description

SCHEDULING IN MAPREDUCE-LIKE SYSTEMS FOR FAST COMPLETION TIME FIELD OF THE INVENTION
[0001] The present invention is generally directed to scheduling tasks in a computing environment and more particularly to optimized scheduling of related sets of tasks across multiple processors.
BACKGROUND
[0002] Large-scale data processing needs are met using distributed and parallel computing data centers. MapReduce is a programming model used by these data centers for various applications such as indexing, mining, social networking, recommendation services, and advertising backends. MapReduce includes a map phase and a reduce phase. In the map phase, a dataset is partitioned into several smaller chunks that are assigned to individual nodes for partial computation of results. The results are computed at each node in the form of key-value pairs on the original data set. During the reduce phase, key-value pairs generated as a result of the map phase are aggregated based on the key-value pairs. Within a data center, a centralized master program orchestrates the assignment and scheduling of jobs, each of which includes several map and reduce tasks. The assignment and scheduling functions determine which tasks are assigned to a particular node. The master keeps track of the progress of individual tasks in order to determine where to assign and when to schedule individual tasks. Since several MapReduce jobs are often performed in parallel, scheduling problems often arise due to varying workloads and job size distributions.
SUMMARY
[0003] In accordance with an embodiment of the invention, a method and system for scheduling tasks is provided. A plurality of lower bound completion times, using one or more computer processors and memory, is determined for each of a plurality of jobs, each of the plurality of jobs including a respective subset plurality of tasks. A task schedule is determined for each of a plurality of processors based on the lower bound completion times. [0004] In an embodiment, tasks are scheduled at each processor based on the task schedule.
[0005] In an embodiment, determining the lower bound completion times includes solving a linear program to determine the lower bound completion times. The linear program is determined by the equation
Figure imgf000004_0001
wherein ZLP is a minimum weighted completion time, j is a job in a plurality of jobs J, Wj represents a weight of each job, and Cj represents a calculated completion time of each job. Determining the lower bound completion times may be performed in response to the arrival of a new job or at a predetermined time in response to the arrival of new jobs during the predetermined time interval.
[0006] In an embodiment, determining the task schedule includes determining a ranked order of the plurality of jobs based on the lower bound completion time of each of the plurality of jobs.
[0007] In an embodiment, the lower bound completion times and task schedule are determined according to weighting factors assigned to each of the plurality of jobs.
[0008] These and other advantages will be apparent to those of ordinary skill in the art by reference to the following detailed description and the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Fig. 1 is an exemplary diagram of a computing environment in which tasks can be scheduled and assigned in accordance with an embodiment of the present invention;
[0010] Fig. 2 is an exemplary diagram of a task schedule in accordance with an embodiment of the present invention;
[0011] Fig. 3 is a flowchart of a process for scheduling tasks in accordance with an embodiment of the present invention; [0012] Fig. 4 is a flowchart of an algorithm for scheduling tasks in accordance with an embodiment of the present invention; and
[0013] Fig. 5 is a high level diagram of a computer which may be used to
implement certain embodiments of the present invention described herein.
DETAILED DESCRIPTION
[0014] Fig. 1 is an exemplary diagram of a computing environment in which tasks can be scheduled and assigned in accordance with an embodiment of the present invention. Server 102 may reside at a data center 106, which is responsible for
receiving and assigning jobs within a distributed computing environment to clients 104- A, 104-B, 104-C, 104-D, and 104-E. Each job includes tasks, such as map and reduce tasks. Server 102 is also responsible for generating a task schedule representing an order of tasks to be performed by each of the clients.
[0015] Server 102 may receive groups of jobs in bulk or receive individual jobs one at a time. As jobs arrive at server 102, the jobs are processed such that all tasks associated with each job are assigned to clients 104. The tasks may be assigned based on several factors, such as a current workload of a particular client or based on the capabilities of a particular client. After all tasks are assigned to clients 104, server 102 determines an optimal scheduling of the tasks with each client in order to minimize total job completion times across all of the clients 104. The completion time of a job is defined as the time needed for all tasks belonging to a respective job to be performed by clients 104.
[0016] In order to determine the optimal scheduling of tasks for each client, server 102 determines a lower bound completion time for each job. The lower bound completion time for a job represents the shortest possible completion time for
performing a particular job across all clients 104. Thus, each lower bound completion time represents an ideal completion time. The lower bound completion times are
determined based on a linear program. A linear program is determined based on constraints such as the processing times of each job, release times of each job, and weights associated with each job specifying the importance of each job. The release
i time of each job represents the arrival time of the job at server 102. More specific information regarding the linear program is provided in the paragraphs below.
[0017] The lower bound completion times may be determined each time server 102 receives a new job or alternatively at predetermined time intervals as long as new jobs are received by server 102 during the predetermined time interval.
[0018] After the lower bound completion time for each job has been determined, the lower bound completion times are used to determine a task schedule for any clients that have been assigned tasks associated with the jobs. The task schedule is determined by ranking all jobs based on their lower bound completion times. Typically, to ensure that all jobs are performed in the shortest time, the jobs are ranked in order of shortest lower bound completion time to longest lower bound completion time. The actual ranking of jobs is performed using an approximation algorithm that ensures that the actual summed weighted completion time of performing the jobs is less than or equal to a factor of the summed weighted lower bound completion time of jobs. More detail regarding the approximation algorithm is provided in the paragraphs below.
[0019] The task schedule is then used by server 102 to schedule tasks according to the order of jobs in the task schedule at each client 104A, 104-B, 104-C, 104-D, and 104-E. It should be further understood that while the embodiment described herein is with respect to a particular number of clients, any number of clients may be utilized. It should be understood that while described with respect to a central server 102 and multiple separate clients 104, the present invention can be adapted to a multi-processor computer or combination of a distributed environment with multi-processor computers such that server 102 may represent a master processor of a computer and each client 104 may represent a processor in a parallel computing environment.
[0020] Fig. 2 is an exemplary diagram of a task schedule in accordance with an embodiment of the present invention. An exemplary task schedule 202 is shown including a listing of jobs 204 and corresponding lower bound completion times 206, and a ranking 208. As shown by task schedule 202, the jobs are ranked based on shortest lower bound completion time to longest lower bound completion time. For example, job 25 has lower bound completion time of '5' and thus the highest task schedule ranking of Ί .' In contrast, job 1 has the longest corresponding lower bound completion time of '19' and has a task schedule ranking of '142.'
[0021] As mentioned above, for each client 104, server 102 will schedule tasks based on the task schedule. Task scheduling is based on task schedule 202. For example, if client 104-A is assigned certain tasks corresponding to jobs 25, 17, and 142, according to the task schedule, client 104-A will perform the tasks according to the job schedule ranking. This means that all tasks corresponding to job 25 are performed first, followed by the tasks corresponding to job 17, and then the tasks corresponding to job 142. Tasks will be performed in a similar order if, for example, client 104-B is assigned tasks corresponding to jobs 19, 2, and 8. Tasks corresponding to job 19 will be performed first, followed by tasks corresponding to job 2, and then tasks corresponding to job 8. It is understood that task schedule 202 is exemplary and may include more than or less than the number of jobs shown. It is also understood that each client 104 may be assigned tasks corresponding to any number of jobs.
[0022] Fig. 3 is a flowchart of a process for scheduling tasks in accordance with an embodiment of the present invention. Server 102 is configured to schedule a plurality of tasks, wherein each task is assigned to one of a plurality of clients 104. At step 302, a plurality of lower bound completion times for each of a plurality of jobs is determined. Each of the plurality of jobs includes a respective subset plurality of tasks. The determination of the plurality of lower bounds may be performed either in response to server 102 receiving at least one new job including tasks that need to be assigned to clients 104, or in response to receiving at least one new job during a predetermined time interval. Determining the plurality of lower bounds includes solving a linear program to determine the lower bound completion times.
[0023] At step 304, a task schedule for each of the plurality of clients is determined based on the lower bound completion times. Specifically, a ranked order of the plurality of jobs is determined using the lower bound completion times of each of the plurality of jobs. The ranked order is used as the task schedule. At step 306, tasks that have been assigned to each client are scheduled based on the task schedule. [0024] In order to fully discuss the aforementioned linear program and approximation algorithm, the theoretical framework for scheduling jobs and tasks to clients or processors follows. If a server is responsible for m clients or a computer with m processors with n jobs assigned to the m processors, M may be used to represent the set of processors and J to represent the set of jobs that need to be processed. Each job 3 e J includes of n, tasks each of which is assigned to a processor.
Mj M represents the set of processors required to process job It is assumed that each processor can process at most one task at a time. In practice, processors may run multiple tasks simultaneously and preempt each other.
[0025] Each job j is assumed to be available for processing at time η , the release time or arrival time of job / at server 102. A weight Wj may also be applied to each job, which specifies its importance.
[0026] The finish time of job on a client or processor P € Mi, is denoted by fjp, the time at which the task of job j is completed on processor p. The completion time of a job, Cj is defined as the time at which all tasks belonging to a job j are finished.
Therefore the completion time of job j, is
Cj = ma peAi, fjP
where Jp denotes the set of jobs that have a task assigned to processor p. Therefore
3 e JP if and only if P e Mi.
[0027] The objective of scheduling is to determine the ordering of tasks on each processor in order to minimize the weighted sum of the job completion times
∑iej WjCj Assuming that scheduling takes place offline, all job arrival times, η are known in advance. Scheduling problems, however, arise online when jobs are released over time and the job release times are not known in advance. Also, while it is assumed that processing times are known processing times are generally estimated and thus estimation errors must be taken into account.
[0028] An algorithmic approach is ideal for solving the problem of scheduling tasks. As discussed a linear program is derived to determine a lower bound completion time for each job. However since the lower bound completion times represent the absolute minimum possible completion time, it is not always feasible that this
completion time be achieved. Thus, the lower bound completion times are used in order to determine the resulting task schedule where the weighted completion time of completing the jobs according to the task schedule is within a factor of the weighted sum of the lower bound completion times.
[0029] A linear program for determining the lower bound completion times for jobs will be described. Assuming tjp denotes the processing time of job j on processor p, and Jp denotes the set of jobs on processor p, the linear program (LP_OPT_SCHED) discussed below provides the lower bound on a minimum weighted completion time schedule.
[0030] The linear program is represented by:
ZLP = mm∑wjCj
ieJ ^ tjp Cj ≥ f(Stp) V S C jp Vp (1)
Cj > Tj A- hj V (2)
where
Figure imgf000009_0001
[0031] ZLP represents an optimal solution to linear program (LP_OPT_SCHED) representing the lower bound completion time and f(S,p) represents the finish time of all jobs S on a particular processor p.
[0032] A proof for the aforementioned linear program is described for
completeness. Fix a processor p and consider the set of jobs Jp that are assigned to processor p. Consider a subset s c Jp and let s = i1 ' 2> · · · > fc) Let fjp denote the finish time of job j on processor P E Mi. Assume that the jobs in S are processed before any job in Jp in a subset S. Assume that the jobs are processed in the order 1 , 2, . . . k. Since a lower bound is determined, rj is ignored, and in this case , ∑ *JP fiP =∑ v (∑ *ip) = f(S, P)
[0033] Note that f(S, p) is symmetric in tjp and therefore its value is independent of the order in which the jobs in set S are processed. Moreover,∑ies hv fjp only increases if some job in Jp in a subset S is processed along with jobs in S. This holds for any subset S of Jp. Since
Cj > f3-p _ !Cjgs tjp Cj >∑3es tip fjp
thus giving the constraints in (1 ). The constraints in (2) states that the completion time of job j on cannot be less than the sum of the arrival time of the job and the maximum processing time of the job on any processor.
[0034] Note that in Equation (1 ) of the linear program, there are an exponential number of constraints for each processor. The polyhedron for each processor is a polymatroid. In this case, the job completion times lie in the intersection of m
polymatroids, one belonging to each processor. The constraints in the linear program only represent necessary conditions, and therefore, 2LP , the optimal solution to the linear program, only represents a lower bound of the optimal solution, which is the lower bound completion time. We illustrate this by the following example: Consider a two job, two processor problem. The processing times are in = 1 ; 2 - 2; fei = 2; Xn = 1 ; Let W = w2 = 1 and Γι = r2 = 0. In this case the linear programming problem is
Figure imgf000010_0001
The three constraints on the left are for processor 1 and the three constraints on the right are for processor 2. The optimal solution to the linear program is Ci = C2 = 7/3 giving ZLP = 14/3 = 4.67. An optimal schedule is to schedule job 1 on both machines first, followed by job 2. The completion time of job 1 is 2 and the completion time of job
2 is 3 giving a total completion time of 5. Since the linear program does not give an actual schedule, an algorithm is necessary to produce a feasible ordering of jobs on different processors, which is discussed further in the paragraphs below.
[0035] One approach to solving the linear program involves using an ellipsoid algorithm with a separation oracle. Though this will result in a polynomial time algorithm, it is not a practical approach due to the high level of complexity associated with polynomial time algorithms. Thus, a primal dual algorithm is better suited for solving the linear program.
s
[0036] To solve the primal dual algorithm, the dual variable ^p is associated with equation (1 ) of the linear program. The dual variable is then used in the equation shown:
max∑ ∑ /(5' P)
Figure imgf000011_0001
represents dual variables and Q represents primal variables.
[0037] An outline of algorithm PRIMAL_DUAL is presented below:
1 ) Initialize Cj— for all jobs j.
2) Find the processor p and subset of jobs S C Jp that
minimizes Equation (4).
3) Find the job j€ S that minimizes
4) Set «f - *f + £.
5) + (! + ¾¾) .
[0038] Fig. 4 is a flowchart of an algorithm for scheduling tasks in accordance with an embodiment of the present invention. More specifically, Fig. 4 is a flowchart of the PRIMAL_DUAL algorithm. Given any e > 0, a combinatorial approach may be used to solve the maximization linear program to within a factor of (1- ef of the optimal solution.
[0039] The primal dual-algorithm initializes completion time c* = s/wJ lor all jobs j at step 402, where <5 is a parameter based on e.
[0040] At step 404, the processor subset combination
Figure imgf000011_0002
minimizes
Figure imgf000012_0001
is identified for current values of .
[0041] This processor-subset combination represents a column in the linear program. This is equivalent to picking the entering variable in a standard simplex algorithm.
[0042] At step 406, the blocking row, a job j from set S is found. The blocking row is the job that minimizes Pj .
[0043] ' At step 408, representing the dual variables, is set.
[0044] At step 410, the Q values are updated and the algorithm PRIMAL_DUAL outlined above may be repeated. The following paragraphs provide a theorem that serves as a proof for the primal dual algorithm described.
[0045] Given e > 0 and
δ = (l + e) ((1 + e)n) «
the algorithm PRIMAL_DUAL computes an optimal solution to the linear program in at most iterations, where n is the number of jobs in the system. Each iteration represents a lower bound completion time for a particular job.
[0046] One aspect of solving the linear program is to determine a processor- subset combination that minimizes Equation (4). Although completion time values Q are known, there may be an exponential number of subsets to be checked. Thus, a straightforward brute force approach is not appropriate. Instead, the structure of the scheduling polyhedron can be exploited to develop a simple polynomial time algorithm to solve the problem. Thus, on any processor, at most n sets need to be checked.
[0047] Since jobs Jp on processor p are configured such that c1 < c¾ < ...ct here |jp| = fc
Equation (4) is minimized by a set S of {1 , 2, ... , m} for m=2, 3, .... k. Assuming that S minimizes Equation (4) for processor p, a job k Ξ S jS found in order to determine what happens to Equation (4) when evaluating for S k Letting results in:
g(S\k,p) _ g(S,p) - tkp Ck
f(3\ksp) f(St m) - (∑iea
Since S minimizes Equation (4),
^ g{S,p)p(S,p)
Ch≤ /(S..P)
Where P(S'p) =jes *j considering that some fc e
g(S k,p) 5(5:p) + ifcp
f(Su k,p) /(5l P) + ^+ (E,estj ) tkp
Since S minimizes Equation (4), it can be shown that
r > 9(S,p)p{Slp) tkpg(S,p)
°fc - f(S,p) + f{S,P)
[0048] Note that k e S\f any only if
^ ^ g{S,p)p{S,p)
Ck≤ f(S,p)
This implies that if two jobs 3, k e Jp and ci≤ «=, then 3 e 5jf & 6 S
[0049] Since tasks of each job can potentially be assigned to all available processors, the running time of the algorithm is O(nm). The primal-dual algorithm for solving LP_OPT_SCHED is similar to the primal-dual algorithm PRIMAL_DUAL outlined above. The only change is that there are n additional dual variables corresponding to the release time constraint for each job. These n additional variables are updated separately. [0050] The solution of LP_OPT_SCHED can be used to design a 3- approximation algorithm. This algorithm is referred to as OFFA. The superscript LP is used to denote the linear program solution and OFFA to denote the approximation algorithm. Letting
Figure imgf000014_0001
denote job completion times corresponding to the optimal linear program solution, algorithm OFFA can be used to determine a task schedule representing the optimal ordering of jobs on processors.
[0051] Specifically, algorithm OFFA is described below.
Algorithm OFFA
1) Solve LP_OPT_SCHED and let C p denote the completion time of job j. On each processor p, the jobs in
Jp are processed in the order output by the LP.
2) Given a job j e Jp, let
P{j,p) = {k k < Jp , CtP≤ C p)
denote the set of jobs on p whose LP completion time
is lower than j. These are jobs that will be scheduled
before job j on processor p.
3) A job is started as soon as the previous job is complete
or the job becomes available whichever is later. The
finish time of job j on machine p denoted by f v FFA
is
Figure imgf000014_0002
4) The completion time of job j
[0052] Z^and Z°FFA denote the objective function value of LP_OPT_SCHED and the sum weighted completion time from algorithm OFFA, respectively. Thus,
ZOFFA ≤ 3 ZLP
(OFFA
[0053] Jip denotes the finish time of job j on processor p and
P(jl P) = {k : k z Jp s c P < C p} u {j) fOPFA < maXheP(j j)) rk +∑;fcgpf7-,pi tkp. prom Equation (2) of the linear program, note that r/c — and fc "~ j from the definition of P .p). Therefore,
fOFFA ≤ CLP+ (5)
[0054] Applying Equation (1 ) to the set S=P(j,p) on processor p, then
Figure imgf000015_0001
Based on the fact that CjPck Pfor all fc e ^'Ρ) th
Figure imgf000015_0002
Therefore, and applying these to Equation (5) results in
fOFFA ≤ 2 C P
This result holds for all v e ,-. since then
CO ^ < 3 CLP VFC
implying that the solution given by algorithm OFFA is less than three times the optimal solution.
[0055] When all jobs are available initially, a specific linear program
LP_BULK_ARRIVAI_ is used. LP_BULK_ARRIVAL is represented by
Figure imgf000015_0003
TiipC3. > f(S,p) V5 C Jp Vp This linear program provides lower bound completion times and is used to generate an approximation algorithm when all jobs are available at time zero. This approximation algorithm is referred to as OFFB. OFFB operates similarly to OFFA described above. Jobs are processed on processor p in the order of their LP_BLK_ARRIVAL completion times. Since job arrival times are not used
Figure imgf000016_0001
[0056] Letting ZBP and ZOFFB denote the objective function value of
LP_BULK_ARRIVAL and the sum weighted completion time from algorithm OFFB respectively. Then
ZOFFB < 2 Z LP
[0057] Algorithm OFFB processes jobs in the order of linear program completion times and thus
[0058] Applying Equation (1 ) to set S=PQ,p) on processor p, then
∑ +, < nl>i fOFFff ' - o ft LP fcePfi.pi Ifcp - Δ °ί . Applying these to Equation (6) results in v. - Δ . This result holds for all P e 3- since
then COFFB < 2 CLP
Figure imgf000016_0002
for all k implying that the solution given by algorithm OFFB is less than two times the optimal solution.
[0059] In practice, release times or arrival times of jobs are not always known in advance. Thus, when a new job arrives, all jobs currently in the system as well as the new job may be taken and used for LP_BULK_ARRIVAL. An optimal task schedule can then be determined based on the lower bound completion times. This task schedule may be used until the arrival of the next job. Alternatively, groups of arrival jobs may be gathered and LP_BULK_ARRIVAL run periodically.
[0060] The above-described methods and apparatus for scheduling tasks can be implemented on a computer using well-known computer processors, memory units, storage devices, computer software, and other components. A high-level block diagram of such a computer is illustrated in Fig. 5. Computer 500 contains a plurality of processors 510 which controls the overall operation of computer 500 by executing computer program instructions which define such operations. The computer program instructions may be stored in a storage device 520, or other computer readable medium (e.g., magnetic disk, CD ROM, etc.), and loaded into memory 530 when execution of the computer program instructions is desired.
[0061] Thus, the method steps of Figs. 3 and 4 can be defined by the computer program instructions stored in the memory 530 and/or storage 540 and controlled by processors 410 executing the computer program instructions. For example, the computer program instructions can be implemented as computer executable code programmed by one skilled in the art to perform an algorithm defined by the method steps of Figs. 3 and 4. Accordingly, by executing the computer program instructions, the processors 510 execute an algorithm defined by the method steps of Figs. 3 and 4.
[0062] While computer 500 has been described as being used for compensating for frequency dependent imbalances in a signal in accordance with the method steps shown in Figs. 3 and 4, computer 500 may also perform functionalities related to those described above in connection with the other Figures. Computer 500 also includes one or more network interfaces 540 for communicating with other devices via a network. Computer 500 further includes input/output devices 550 that enable user interaction with the computer 500 (e.g., display, keyboard, mouse, speakers, buttons, etc.) One skilled in the art will recognize that an implementation of an actual computer could contain other components as well, and that Fig. 5 is a high level representation of some of the components of such a computer for illustrative purposes.
[0063] The foregoing Detailed Description is to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the embodiments disclosed herein is not to be determined from the Detailed Description, but rather from the claims as interpreted according to the full breadth permitted by the patent laws. It is to be understood that the embodiments shown and described herein are only illustrative of the principles of the present embodiments and that various modifications may be implemented by those skilled in the art without departing from the scope and spirit of the embodiments described herein. Those skilled in the art could implement various other feature combinations without departing from the scope and spirit of the embodiments of the present disclosure.

Claims

I Claim:
1. A computer-implemented method for scheduling a plurality of tasks, wherein each task is assigned to one of a plurality of processors, the method comprising:
determining, using one or more computer processors and memory, a lower bound completion time for each of a plurality of jobs, each of the plurality of jobs comprising a respective plurality of tasks; and
determining, using one or more computer processors and memory, a task schedule for each of the plurality of processors based on the lower bound completion times.
2. The method of claim 1 , wherein determining the lower bound completion time comprises:
solving a linear program to determine the lower bound com letion time, wherein the linear program is determined by the equation
Figure imgf000019_0001
, wherein ZLP is a minimum weighted completion time, j is a job in a plurality of jobs J, w, represents the weight of each job, and Q represents a calculated completion time of each job.
3. The method of claim 1 , wherein determining the task schedule comprises:
determining a ranked order of the plurality of jobs based on the lower bound completion time of each of the plurality of jobs.
4. An apparatus for scheduling a plurality of tasks, wherein each task is assigned to one of a plurality of processors, the apparatus comprising one or more computer processors and memory, the one or more computer processors and memory configured to:
determine a lower bound completion time for each of a plurality of jobs, each of the plurality of jobs comprising a respective plurality of tasks; and
determine a task schedule for each of the plurality of processors based on the lower bound completion times.
3079109.1
5. The apparatus of claim 4, wherein the one or more computer processors and memory further configured to:
schedule, at each processor, tasks based on the task schedule.
6. The apparatus of claim 4, wherein the one or more computer processors and memory are further configured to:
solve a linear program to determine the lower bound completion time, wherein
ZLi = min lUjCj- the linear program is determined by the equation je J , wherein ZLP is a minimum weighted completion time, j is a job in a plurality of jobs J, Wj represents the weight of each job, and Q represents a calculated completion time of each job.
7. The apparatus of claim 4, wherein the one or more computer processors and memory are further configured to:
determine the lower bound completion time of each of the plurality of jobs in response to the arrival of a new job.
8. An article of manufacture including a tangible non-transitory computer-readable medium having instructions stored thereon, that in response to execution by a computing device cause the computing device to perform operations comprising:
determining a lower bound completion time for each of a plurality of jobs, each of the plurality of jobs comprising a respective plurality of tasks; and
determining a task schedule for each of the plurality of processors based on the lower bound completion times.
9. The article of manufacture of claim 8, wherein the operation of determining the lower bound completion time for each of the plurality of jobs is performed at a predetermined time interval in response to the arrival of new jobs during the
predetermined time interval.
10. The article of manufacture of claim 8, wherein the lower bound completion time for each of the plurality of jobs and task schedule are determined according to a weighting factor assigned to each of the plurality of jobs.
PCT/US2012/034191 2011-05-05 2012-04-19 Scheduling in mapreduce-like systems for fast completion time Ceased WO2012151054A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/101,626 US9104477B2 (en) 2011-05-05 2011-05-05 Scheduling in MapReduce-like systems for fast completion time
US13/101,626 2011-05-05

Publications (1)

Publication Number Publication Date
WO2012151054A1 true WO2012151054A1 (en) 2012-11-08

Family

ID=46085153

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/034191 Ceased WO2012151054A1 (en) 2011-05-05 2012-04-19 Scheduling in mapreduce-like systems for fast completion time

Country Status (2)

Country Link
US (1) US9104477B2 (en)
WO (1) WO2012151054A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309984A (en) * 2013-06-17 2013-09-18 腾讯科技(深圳)有限公司 Data processing method and device
CN103455613A (en) * 2013-09-06 2013-12-18 南京大学 Interest aware service recommendation method based on MapReduce model

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201690B2 (en) 2011-10-21 2015-12-01 International Business Machines Corporation Resource aware scheduling in a distributed computing environment
US20130268941A1 (en) * 2012-04-09 2013-10-10 Ludmila Cherkasova Determining an allocation of resources to assign to jobs of a program
US9141430B2 (en) * 2012-04-30 2015-09-22 Hewlett-Packard Development Company, L.P. Scheduling mapreduce job sets
US8924977B2 (en) 2012-06-18 2014-12-30 International Business Machines Corporation Sequential cooperation between map and reduce phases to improve data locality
US9336058B2 (en) * 2013-03-14 2016-05-10 International Business Machines Corporation Automated scheduling management of MapReduce flow-graph applications
US10235649B1 (en) 2014-03-14 2019-03-19 Walmart Apollo, Llc Customer analytics data model
US9354938B2 (en) 2013-04-10 2016-05-31 International Business Machines Corporation Sequential cooperation between map and reduce phases to improve data locality
US9342355B2 (en) 2013-06-20 2016-05-17 International Business Machines Corporation Joint optimization of multiple phases in large data processing
US9766940B2 (en) 2014-02-10 2017-09-19 International Business Machines Corporation Enabling dynamic job configuration in mapreduce
US9563697B1 (en) 2014-02-24 2017-02-07 Amazon Technologies, Inc. Calculating differences between datasets having differing numbers of partitions
US10565538B1 (en) 2014-03-14 2020-02-18 Walmart Apollo, Llc Customer attribute exemption
US10733555B1 (en) 2014-03-14 2020-08-04 Walmart Apollo, Llc Workflow coordinator
US10235687B1 (en) 2014-03-14 2019-03-19 Walmart Apollo, Llc Shortest distance to store
US10346769B1 (en) 2014-03-14 2019-07-09 Walmart Apollo, Llc System and method for dynamic attribute table
US9047246B1 (en) 2014-07-31 2015-06-02 Splunk Inc. High availability scheduler
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
EP3032416A1 (en) * 2014-12-10 2016-06-15 Gemalto SA Method to execute a sensitive computation using multiple different and independent branches
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9852012B2 (en) * 2015-08-26 2017-12-26 International Business Machines Corporation Scheduling mapReduce tasks based on estimated workload distribution
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10366084B2 (en) 2016-09-15 2019-07-30 Microsoft Technology Licensing, Llc Optimizing pipelining result sets with fault tolerance in distributed query execution
US11119813B1 (en) * 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10929177B2 (en) * 2016-10-28 2021-02-23 Synopsys, Inc. Managing resources for multiple trial distributed processing tasks
US10607484B2 (en) * 2017-12-28 2020-03-31 Intel Corporation Privacy-preserving distributed visual data processing
DE112018006630T5 (en) 2017-12-28 2020-09-24 Intel Corporation VISUAL FOG
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
WO2020078567A1 (en) * 2018-10-19 2020-04-23 Telefonaktiebolaget Lm Ericsson (Publ) Synchronization of data processing in a calculating system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US12327133B1 (en) 2019-03-22 2025-06-10 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
CN113867922B (en) * 2021-12-02 2022-02-22 武汉格蓝若智能技术有限公司 Task scheduling method suitable for mutual inductor metering performance online monitoring system
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution
US12381878B1 (en) 2023-06-27 2025-08-05 Amazon Technologies, Inc. Architecture for selective use of private paths between cloud services
US12476978B2 (en) 2023-09-29 2025-11-18 Amazon Technologies, Inc. Management of computing services for applications composed of service virtual computing components

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7165252B1 (en) * 1999-06-21 2007-01-16 Jia Xu Method of scheduling executions of processes with various types of timing properties and constraints
US7590620B1 (en) 2004-06-18 2009-09-15 Google Inc. System and method for analyzing data records
US7756919B1 (en) 2004-06-18 2010-07-13 Google Inc. Large-scale data processing in a distributed and parallel processing enviornment
US8190610B2 (en) 2006-10-05 2012-05-29 Yahoo! Inc. MapReduce for distributed database processing
US7523123B2 (en) 2006-11-16 2009-04-21 Yahoo! Inc. Map-reduce with merge to process multiple relational datasets
US20080133474A1 (en) 2006-11-30 2008-06-05 Yahoo! Inc. Bioinformatics computation using a maprreduce-configured computing system
WO2009059377A1 (en) 2007-11-09 2009-05-14 Manjrosoft Pty Ltd Software platform and system for grid computing
US8402449B1 (en) * 2008-01-10 2013-03-19 The Mathworks, Inc. Technique for automatically assigning placement for pipeline registers within code generated from a program specification
US20100205075A1 (en) 2009-02-11 2010-08-12 Yahoo! Inc. Large-scale item affinity determination using a map reduce platform
US8713038B2 (en) 2009-04-02 2014-04-29 Pivotal Software, Inc. Integrating map-reduce into a distributed relational database
US9268815B2 (en) 2009-08-20 2016-02-23 Hewlett Packard Enterprise Development Lp Map-reduce and parallel processing in databases
US8788499B2 (en) 2009-08-27 2014-07-22 Yahoo! Inc. System and method for finding top N pairs in a map-reduce setup
US20110055559A1 (en) 2009-08-27 2011-03-03 Jun Li Data retention management
US8572575B2 (en) 2009-09-14 2013-10-29 Myspace Llc Debugging a map reduce application on a cluster
US9250962B2 (en) * 2011-01-10 2016-02-02 International Business Machines Corporation Optimizing energy use in a data center by workload scheduling and management

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HYUNSEOK CHANG ET AL: "Scheduling in mapreduce-like systems for fast completion time", INFOCOM, 2011 PROCEEDINGS IEEE, IEEE, 10 April 2011 (2011-04-10), pages 3074 - 3082, XP031953538, ISBN: 978-1-4244-9919-9, DOI: 10.1109/INFCOM.2011.5935152 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309984A (en) * 2013-06-17 2013-09-18 腾讯科技(深圳)有限公司 Data processing method and device
CN103455613A (en) * 2013-09-06 2013-12-18 南京大学 Interest aware service recommendation method based on MapReduce model
CN103455613B (en) * 2013-09-06 2016-03-16 南京大学 Based on the interest aware service recommendation method of MapReduce model

Also Published As

Publication number Publication date
US9104477B2 (en) 2015-08-11
US20120284727A1 (en) 2012-11-08

Similar Documents

Publication Publication Date Title
WO2012151054A1 (en) Scheduling in mapreduce-like systems for fast completion time
US10896372B2 (en) Speculative asynchronous sub-population evolutionary computing
US11989647B2 (en) Self-learning scheduler for application orchestration on shared compute cluster
Jiang et al. Distributed dynamic scheduling for cyber-physical production systems based on a multi-agent system
US9218210B2 (en) Distributed processing system
Muthuvelu et al. A dynamic job grouping-based scheduling for deploying applications with fine-grained tasks on global grids
Cai et al. Elasticsim: A toolkit for simulating workflows with cloud resource runtime auto-scaling and stochastic task execution times
WO2017176333A1 (en) Batching inputs to a machine learning model
Khajemohammadi et al. Efficient workflow scheduling for grid computing using a leveled multi-objective genetic algorithm
Bader et al. Leveraging reinforcement learning for task resource allocation in scientific workflows
Gong et al. Chic: Experience-driven scheduling in machine learning clusters
Denden et al. Clustering-based resource management for consumer cost optimization in IoT edge computing environments
Vincent et al. Differential evolution variants to schedule flexible assembly lines
Park et al. Practical Human Resource Allocation in Software Projects Using Genetic Algorithm.
CN120950212A (en) A Cluster Job Planning Method and System Based on a Dual Time Window Mechanism
Abrishami et al. Scheduling in hybrid cloud to maintain data privacy
Li et al. Explsched: Maximizing deep learning cluster efficiency for exploratory jobs
Farid et al. Weighted-adaptive Inertia Strategy for Multi-objective Scheduling in Multi-clouds.
CN113254200A (en) Resource arrangement method and intelligent agent
Do et al. Co-scheduling ensembles of in situ workflows
Byrappa et al. A novel task scheduling scheme for computational grids-greedy approach
CN111813525B (en) Heterogeneous system workflow scheduling method
JP7461378B2 (en) Optimizing reserve crew patterns
Gąsior et al. Metaheuristic approaches to multiobjective job scheduling in cloud computing systems
Jin et al. Bridging Speed and Optimality in Job Scheduling: A Hybrid Ant Colony Optimization Approach for Distributed Systems

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12721037

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12721037

Country of ref document: EP

Kind code of ref document: A1