WO2018198745A1 - 計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体 - Google Patents
計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体 Download PDFInfo
- Publication number
- WO2018198745A1 WO2018198745A1 PCT/JP2018/014959 JP2018014959W WO2018198745A1 WO 2018198745 A1 WO2018198745 A1 WO 2018198745A1 JP 2018014959 W JP2018014959 W JP 2018014959W WO 2018198745 A1 WO2018198745 A1 WO 2018198745A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- tasks
- calculation
- execution
- relationship
- task
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Definitions
- the present invention relates to a computing resource management device and a computing resource management method for optimizing the allocation of computing resources to each task in a clustering system that executes a plurality of tasks, and further to realize these.
- the present invention relates to a computer-readable recording medium.
- an analysis system that analyzes a large amount of data and provides a user with an optimal solution under a predetermined condition, for example, a material input amount in a plant, an operation amount in an operation device, or a set price of a product. Yes.
- a predetermined condition for example, a material input amount in a plant, an operation amount in an operation device, or a set price of a product.
- Such an analysis system can also provide information for a user to make a final selection, for example, a determination index.
- the cluster system executes tasks in a distributed and parallel manner.
- Patent Document 1 discloses a system that can determine the number of cores for efficiently executing a task.
- the system disclosed in Patent Document 1 calculates the number of cores that minimize the task execution time within the range of the number of cores that can execute parallel processing for each task that is executed in parallel. Perform each task with a number.
- the above-described task for optimizing the set price of a product is actually performed by a plurality of tasks having dependency relationships such as a feature amount extraction task from past data, a demand prediction task, and a set price optimization task. It is configured. These tasks may also be performed separately for different types of data. Typically, two feature quantity extraction tasks with different input data are performed separately.
- the two feature quantity extraction tasks can be executed in parallel, but the demand prediction task and the set price optimization task need to be executed later.
- the dependency relationship is usually given to the task as a workflow, it is necessary to optimize the calculation resource allocated to the task in consideration of such dependency relationship.
- An example of an object of the present invention is to solve the above-described problem and execute a plurality of tasks having a dependency relationship, a calculation resource management device and a calculation resource capable of optimizing the calculation resource allocated to each task based on the dependency relationship
- a management method and a computer-readable recording medium are provided.
- a computing resource management device is a device for managing a cluster system that executes a plurality of tasks, A condition specifying unit for specifying the relationship between the calculation resources and calculation time of the cluster system, the dependency between each of the plurality of tasks, and the execution deadline of each of the plurality of tasks; Based on the specified relationship and the dependency relationship, an execution order and a calculation resource to be allocated among the calculation resources of the cluster system are determined for each of the plurality of tasks so that the execution deadline is observed.
- Scheduling part It is characterized by having.
- a computational resource management method is a method for managing a cluster system that executes a plurality of tasks, (A) specifying a relationship between a calculation resource and a calculation time of the cluster system, a dependency between each of the plurality of tasks, and an execution deadline of each of the plurality of tasks; (B) Based on the relationship specified in the step (a) and the dependency relationship, the execution order and the computing resources of the cluster system so that the execution deadline is observed for each of the plurality of tasks. Determining a computing resource to be allocated, and Having It is characterized by that.
- a computer-readable recording medium that records a program for managing a cluster system that executes a plurality of tasks by a computer.
- the computer In the computer, (A) specifying a relationship between a calculation resource and a calculation time of the cluster system, a dependency between each of the plurality of tasks, and an execution deadline of each of the plurality of tasks; (B) Based on the relationship specified in the step (a) and the dependency relationship, the execution order and the computing resources of the cluster system so that the execution deadline is observed for each of the plurality of tasks. Determining a computing resource to be allocated, and A program including an instruction for executing is recorded.
- calculation resources allocated to each task can be optimized based on the dependency relationship.
- FIG. 1 is a diagram illustrating an example of a plurality of tasks having a dependency relationship.
- FIG. 2 is a diagram illustrating an example of a relationship between a calculation resource and a calculation time.
- FIG. 3 is a diagram illustrating a first example of core allocation.
- FIG. 4 is a diagram illustrating a second example of core allocation.
- FIG. 5 is a diagram illustrating a third example of core allocation.
- FIG. 6 is a diagram illustrating a fourth example of core allocation.
- FIG. 7 is a block diagram showing a schematic configuration of the computing resource management apparatus according to the embodiment of the present invention.
- FIG. 8 is a block diagram showing a specific configuration of the computing resource management apparatus according to the embodiment of the present invention.
- FIG. 9 is a flowchart showing the operation of the computing resource management apparatus according to the embodiment of the present invention.
- FIG. 10 is a diagram showing the relationship between the calculation resource and the calculation time used in the specific example of the embodiment of the present invention.
- FIG. 11 is a block diagram illustrating an example of a computer that implements the computing resource management apparatus according to the embodiment of the present invention.
- FIG. 1 is a diagram illustrating an example of a plurality of tasks having a dependency relationship.
- a plurality of tasks and dependency relationships between tasks are given in the form of a workflow.
- task w1 is a feature quantity extraction task used for forecasting
- task w2 is the next day demand forecasting task
- task w3 is today's demand forecasting task
- task w4 is price strategy optimization based on the next day demand forecasting It corresponds to a task.
- each task is given the calculation time f (x_w) when the calculation resource x_w is given.
- the calculation resource x_w is only the number of CPU (Central (Processing Unit) cores, but in the present invention, the calculation resource is not limited to only the number of cores.
- FIG. 2 is a diagram illustrating an example of a relationship between a calculation resource and a calculation time.
- the calculation time shown in FIG. 2 is estimated based on past data. The estimation of the calculation time will be further described.
- the latest calculation time can be estimated based on the calculation time taken in the past.
- an estimation process is performed based on different data every week using a machine learning engine. Normally, when a machine learning engine is used, the calculation time is determined depending on the amount of data, not the detailed contents of the data. Therefore, by assuming various combinations of the data amount and the number of cores, the calculation time corresponding to the number of cores can be estimated by moving the machine learning engine in advance. Such estimation requires that sufficient time is available.
- FIG. 3 is a diagram illustrating a first example of core allocation.
- FIG. 4 is a diagram illustrating a second example of core allocation.
- FIG. 5 is a diagram illustrating a third example of core allocation.
- FIG. 6 is a diagram illustrating a fourth example of core allocation. In each figure, a graph showing the task execution order is displayed in the upper part.
- calculation is performed using all four cores for each task in the order of tasks w 1 , w 3 , w 2 , and w 4 .
- the first computing tasks w 1 is 4-core
- each task w 2 and w 3 are calculated by the second core, after the end of the task w 2 calculation task w 4 is calculated with 2 cores.
- the calculation time is not shortened to the order of 1 / x compared to when the number of cores is 1. This is because when a task is executed by a plurality of cores, it is necessary to perform sequential processing and data communication that cannot be performed in parallel. Therefore, the calculation efficiency per core is generally better when the task is calculated with a smaller number of cores. Therefore, as shown in FIG. 5, when one core is the minimum unit, the calculation efficiency per core is the best, and conversely, in the example of FIG. 3, the calculation efficiency per core is the worst. .
- the execution deadline set for the task is not satisfied. Therefore, it is ideal to assign a core to each task as shown in FIG. 4 or 6 in terms of both calculation efficiency and compliance with the execution deadline.
- the final end time (the end time of task 4) is the fastest.
- the final end time is not the fastest, but the high end time is maintained while maintaining high calculation efficiency. A sufficient margin can be secured. In the present invention, such a schedule can be obtained.
- FIG. 7 is a block diagram showing a schematic configuration of the computing resource management apparatus according to the embodiment of the present invention.
- the computing resource management apparatus 10 includes a condition specifying unit 11 and a scheduling unit 12.
- the condition specifying unit 11 specifies the relationship between the calculation resources and the calculation time of the cluster system 20, the dependency between the plurality of tasks, and the execution deadline of each of the plurality of tasks.
- the scheduling unit 12 determines the execution order and the calculation resources of the cluster system 20 so that the execution deadline is observed for each task based on the relationship between the specified calculation resource and the calculation time and the dependency between tasks. Determine the computing resources to be allocated.
- the computing resource management apparatus 10 performs task scheduling based on the relationship between the computing resource and the computation time, the dependency between tasks, and the execution deadline of each task. For this reason, in this embodiment, when a plurality of tasks having a dependency relationship are executed, it is possible to optimize the computing resource allocated to each task based on the dependency relationship.
- FIG. 8 is a block diagram showing a specific configuration of the computing resource management apparatus according to the embodiment of the present invention.
- the condition specifying unit 11 obtains the relationship between the calculation resources and the calculation time of the cluster system 20, the dependency between tasks, and the execution deadline of each task from the outside. . Specifically, when such information is transmitted from an external terminal device, the condition specifying unit 11 acquires the transmitted information. In addition, when such information is input by an input device such as a keyboard, the input information is acquired. In addition, the condition specifying unit 11 passes the acquired information to the scheduling unit 12.
- the scheduling unit 12 includes an execution order determination unit 13, an allocation unit 14, and a determination unit 15 in the present embodiment.
- the execution order determination unit 13 determines the execution order of each task based on the dependency between tasks and the execution deadline for each task.
- the assigning unit 14 assigns an arbitrary computing resource to each task based on the execution order determined by the execution order determining unit 13.
- the determination process by the execution order determination unit 13 and the allocation process by the allocation unit 14 are performed a plurality of times as a series of processes. Thereafter, the determination unit 15 determines an execution order and a calculation resource to be allocated for each task based on a result of a series of processes.
- the execution order determination unit 13 first determines an initial execution order for each task, and then the allocation unit 14 allocates a core to each task. Subsequently, the execution order determination unit 13 changes the execution order of each task. In addition, the assigning unit 14 changes the number of cores based on the changed execution order. That is, the scheduling unit 12 executes scheduling multiple times.
- the determination unit 15 determines whether each task is completed within the execution deadline each time a series of processes is executed, and assigns the final execution order of each task based on the determination result. Determine the number of cores. Further, the determination unit 15 can select a series of processes in which the execution end time of each task satisfies the setting condition among the series of processes determined to have completed each task within the execution deadline.
- the computing resource management apparatus 10 includes an output unit 16 in addition to the condition specifying unit 11 and the scheduling unit 12 described above.
- the output unit 16 creates data for visualizing the scheduling result, and transmits the created data to an external terminal device.
- the output unit 16 can also visualize the scheduling result on the screen of the display device.
- the relationship between the calculation resources and the calculation time of the cluster system 20 includes, for example, the relationship between the number of cores for each task and the calculation time.
- a specific example of the relationship between the number of cores and calculation time will be described later with reference to FIG.
- FIG. 9 is a flowchart showing the operation of the computing resource management apparatus according to the embodiment of the present invention.
- FIGS. 7 and 8 are referred to as appropriate.
- the computational resource management method is implemented by operating the computational resource management apparatus. Therefore, the description of the calculation resource management method in the present embodiment is replaced with the following description of the operation of the calculation resource management apparatus 10.
- the number of cores is used as computing resources, the total number of cores is C, the number of cores to assign x w to task w.
- tw be the calculation time when the task w ends.
- ⁇ be a substitution
- ⁇ (w) represents the order in which the calculation of w ends.
- the replacement means rearrangement of 1, 2,..., N.
- ⁇ (w) i
- the task w means that the calculation ends i-th.
- t 0 is a calculation start time for convenience.
- ⁇ (w) represents a task immediately before starting to calculate task w.
- the following formula 2 holds from the definition. This means that the calculation end order ⁇ (w) of the task w is larger than the calculation end order ⁇ ( ⁇ (w)) of the immediately preceding task ⁇ (w).
- the above formula 3 shows the property that the calculation end order of the task ⁇ (w) immediately before the calculation of the task w must be equal to or higher than the calculation end order of any preceding task p.
- the execution order determination unit 13 first determines the execution order for each task (step A2).
- step A2 the scheduling unit 12 uses ⁇ and ⁇ determined in the previous process as the initial execution order when the process has already been performed. On the other hand, in a state where no processing is performed yet, the scheduling unit 12 calculates ⁇ and ⁇ as an initial execution order as follows.
- the execution order determination unit 13 the most select execution deadline earlier task w1 (see FIG. 1), the task of calculation before the execution start time of w 1 must be completed, so as to satisfy dependencies They are arranged as w 11 , w 12, ..., w1 n1 , w 1 .
- the execution order determination unit 13 sets w 2 as the task that has the earliest execution deadline among tasks that have not been selected yet, and satisfies the dependency relationship for the task whose calculation must be completed before that. As shown, w 21 , ... , W 2n2 , w 2 are arranged.
- the allocation unit 14 allocates a core to each task based on the execution order determined in Step A2 (Step A3).
- the scheduling unit 12 determines whether or not an end condition of the iterative process is satisfied. If not satisfied, the scheduling unit 12 executes Step A2 again, and if satisfied, executes Step A5. Note that the termination conditions include that steps A2 and A3 have been performed a predetermined number of times, that all tasks have been completed within the execution deadline, and the like.
- step A3 will be specifically described.
- the execution order is determined, there is a constraint expressed by the following linear inequality (4) between the number of cores and the dependency between tasks.
- W (w, ⁇ , ⁇ ) is a set of workflows calculated simultaneously, and sw is a new variable corresponding to each task w.
- sw is a new variable corresponding to each task w.
- the allocation unit 14 calculates the number of cores to be allocated and the calculation time for each task under the execution order determined in step A2 and the constraint shown in the above equation 4.
- the end time of the task w matches the end time of the task ⁇ (w). That is, it is assumed that the following formula 6 or 7 is established.
- the i-th task and the i + 1-th task have the same end time.
- the calculation of the i + 1-th task can be completed earliest, but in order to satisfy the order constraint, i + 1 It holds that the calculation of the second task is waiting.
- the task ⁇ (w) is replaced with a task whose end time is earlier than the task ⁇ (w), that is, ⁇ ⁇ 1 ( ⁇ ( ⁇ (w)) ⁇ 1), or It is expected that the solution will be improved by exchanging ⁇ ⁇ 1 (i) and ⁇ ⁇ 1 (i + 1). Therefore, in the next step A2, the execution order determination unit 13 performs task replacement to determine the execution order of each task.
- step A2 how to select a task to be replaced is not particularly limited.
- the execution order determination unit 13 selects a task w having the lowest core efficiency, that is, f w (x w ) / f w (1), and changes ⁇ or ⁇ of the selected task w by the method described above. .
- step A5 the determination unit 15 determines the final execution order of each task and the number of cores to be assigned. Specifically, the determination unit 15 determines whether each task is completed within the execution deadline each time Steps A2 and A3 are executed. Then, the determination unit 15 determines the final execution order of each task and the number of cores to be assigned based on the obtained determination results.
- the output unit 16 outputs the scheduling result obtained by the processing from step A1 to step A5 to the outside (step A6). Thus, the processing in the computing resource management device 10 is finished.
- FIG. 10 is a diagram showing the relationship between the calculation resource and the calculation time used in the specific example of the embodiment of the present invention. In the example of FIG. 10, the calculation time is shown when the number of cores assigned to each task is 1, 2, 3, 4.
- step A2 the execution order determination unit 13 determines the initial execution order of each task in the order of tasks 1, 3, 2, 4 for example.
- t 2 t 3 holds for task 2 and task 3.
- the actual calculation time of task 2 (f 2 (1)) is 4 seconds (see FIG. 10), whereas in FIG. 6, the calculation time of task 2 is 5 seconds. This is because the task 2 needs to end after the task 3 due to the restriction by the execution order of each task (the upper part of FIG. 6). Therefore, the execution order determination unit 13 eliminates this restriction and replaces ⁇ (2) and ⁇ (3).
- the determination unit 15 selects a series of processes in which the execution end time of each task satisfies the setting condition from among a series of processes determined that each task has been completed within the execution deadline. For example, when the margin from the final end time is to be maximized, the lower example in FIG. 6 is the optimal solution, and therefore the determination unit 15 uses the execution order and calculation resources shown in the lower example in FIG. decide.
- the computing resource management apparatus 10 changes the optimization objective variable and selects the best result from the iterative processing. For this reason, when a plurality of tasks having a dependency relationship are executed, calculation resources allocated to each task can be optimized based on the dependency relationship.
- the program in the present embodiment may be a program that causes a computer to execute steps A1 to A6 shown in FIG.
- a central processing unit (CPU) of the computer functions as the condition specifying unit 11, the scheduling unit 12, and the output unit 16, and performs processing.
- each computer may function as any one of the condition specifying unit 11, the scheduling unit 12, and the output unit 16, respectively.
- FIG. 11 is a block diagram illustrating an example of a computer that implements the computing resource management apparatus according to the embodiment of the present invention.
- the computer 110 includes a CPU 111, a main memory 112, a storage device 113, an input interface 114, a display controller 115, a data reader / writer 116, and a communication interface 117. These units are connected to each other via a bus 121 so that data communication is possible.
- the CPU 111 performs various operations by developing the program (code) in the present embodiment stored in the storage device 113 in the main memory 112 and executing them in a predetermined order.
- the main memory 112 is typically a volatile storage device such as a DRAM (Dynamic Random Access Memory).
- the program in the present embodiment is provided in a state of being stored in a computer-readable recording medium 120. Note that the program in the present embodiment may be distributed on the Internet connected via the communication interface 117.
- the storage device 113 includes a hard disk drive and a semiconductor storage device such as a flash memory.
- the input interface 114 mediates data transmission between the CPU 111 and an input device 118 such as a keyboard and a mouse.
- the display controller 115 is connected to the display device 119 and controls display on the display device 119.
- the data reader / writer 116 mediates data transmission between the CPU 111 and the recording medium 120, and reads a program from the recording medium 120 and writes a processing result in the computer 110 to the recording medium 120.
- the communication interface 117 mediates data transmission between the CPU 111 and another computer.
- the recording medium 120 include general-purpose semiconductor storage devices such as CF (Compact Flash (registered trademark)) and SD (Secure Digital), magnetic recording media such as a flexible disk, or CD- Optical recording media such as ROM (Compact Disk Read Only Memory) are listed.
- CF Compact Flash
- SD Secure Digital
- magnetic recording media such as a flexible disk
- CD- Optical recording media such as ROM (Compact Disk Read Only Memory) are listed.
- the computing resource management apparatus 10 can be realized by using hardware corresponding to each unit instead of a computer in which a program is installed. Further, a part of the computing resource management apparatus 10 may be realized by a program, and the remaining part may be realized by hardware.
- Appendix 1 An apparatus for managing a cluster system that executes a plurality of tasks, A condition specifying unit for specifying the relationship between the calculation resources and calculation time of the cluster system, the dependency between each of the plurality of tasks, and the execution deadline of each of the plurality of tasks; Based on the specified relationship and the dependency relationship, an execution order and a calculation resource to be allocated among the calculation resources of the cluster system are determined for each of the plurality of tasks so that the execution deadline is observed.
- Scheduling part With A computing resource management device characterized by that.
- the scheduling unit A process for determining the execution order of each of the plurality of tasks based on the dependency relationship and the execution deadline, and a process for assigning an arbitrary computing resource to each of the plurality of tasks under the determined execution order Is performed several times as a series of processing, For each of the plurality of tasks, an execution order and a calculation resource to be allocated among the calculation resources of the cluster system are determined.
- the computing resource management device according to attachment 1.
- the scheduling unit Among the series of processes in which each of the plurality of tasks is completed within the execution deadline, select a series of processes in which the execution end time of each of the plurality of tasks satisfies a setting condition, Using the results of the determination process and the allocation process in the selected series of processes, the execution order and the calculation resource to be allocated among the calculation resources of the cluster system are determined for each of the plurality of tasks.
- the computing resource management device according to attachment 2.
- the relationship is a relationship between the number of cores and the calculation time for each of the plurality of tasks.
- the computing resource management device according to any one of appendices 1 to 3.
- a method for managing a cluster system that performs multiple tasks comprising: (A) specifying a relationship between a calculation resource and a calculation time of the cluster system, a dependency between each of the plurality of tasks, and an execution deadline of each of the plurality of tasks; (B) Based on the relationship specified in the step (a) and the dependency relationship, the execution order and the computing resources of the cluster system so that the execution deadline is observed for each of the plurality of tasks. Determining a computing resource to be allocated, and Having A computational resource management method characterized by the above.
- step (b) A process for determining the execution order of each of the plurality of tasks based on the dependency relationship and the execution deadline, and a process for assigning an arbitrary computing resource to each of the plurality of tasks under the determined execution order Is performed several times as a series of processing, For each of the plurality of tasks, an execution order and a calculation resource to be allocated among the calculation resources of the cluster system are determined.
- step (b) Among the series of processes in which each of the plurality of tasks is completed within the execution deadline, select a series of processes in which the execution end time of each of the plurality of tasks satisfies a setting condition, Using the results of the determination process and the allocation process in the selected series of processes, the execution order and the calculation resource to be allocated among the calculation resources of the cluster system are determined for each of the plurality of tasks.
- the relationship is a relationship between the number of cores and the calculation time for each of the plurality of tasks.
- the computing resource management method according to any one of appendices 5 to 7.
- a computer-readable recording medium recording a program for managing a cluster system that executes a plurality of tasks by a computer, In the computer, (A) specifying a relationship between a calculation resource and a calculation time of the cluster system, a dependency between each of the plurality of tasks, and an execution deadline of each of the plurality of tasks; (B) Based on the relationship specified in the step (a) and the dependency relationship, the execution order and the computing resources of the cluster system so that the execution deadline is observed for each of the plurality of tasks. Determining a computing resource to be allocated, and The computer-readable recording medium which recorded the program containing the instruction
- step (b) A process for determining the execution order of each of the plurality of tasks based on the dependency relationship and the execution deadline, and a process for assigning an arbitrary computing resource to each of the plurality of tasks under the determined execution order Is performed several times as a series of processing, For each of the plurality of tasks, an execution order and a calculation resource to be allocated among the calculation resources of the cluster system are determined.
- step (b) Among the series of processes in which each of the plurality of tasks is completed within the execution deadline, select a series of processes in which the execution end time of each of the plurality of tasks satisfies a setting condition, Using the results of the determination process and the allocation process in the selected series of processes, the execution order and the calculation resource to be allocated among the calculation resources of the cluster system are determined for each of the plurality of tasks.
- Appendix 12 The relationship is a relationship between the number of cores and the calculation time for each of the plurality of tasks.
- the computer-readable recording medium according to any one of appendices 9 to 11.
- calculation resources allocated to each task can be optimized based on the dependency relationship.
- the present invention is useful for a cluster system, for example.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
計算資源管理装置10は、複数のタスクを実行するクラスタシステム20を管理するための装置である。計算資源管理装置10は、クラスタシステム20の計算資源と計算時間との関係、タスク間の依存関係、及び各タスクの実行期限を特定する、条件特定部11と、特定された計算資源と計算時間との関係、存関係に基づいて、タスク毎に、実行期限が守られるように、実行順序、及びクラスタシステム20の計算資源のうちの割当てるべき計算資源を決定する、スケジューリング部12と、を備えている。
Description
本発明は、複数のタスクを実行するクラスタリングシステムにおいて、各タスクへの計算資源の割当を最適化するための、計算資源管理装置、及び計算資源管理方法に関し、更には、これらを実現するためのコンピュータ読み取り可能な記録媒体に関する。
近年、大量のデータを分析して、所定の条件における最適解、例えば、プラントにおける材料の投入量、操作機器における操作量、又は商品の設定価格等を利用者に提供する分析システムが提案されている。また、このような分析システムは、利用者が、最終的な選択を行うための情報、例えば、判断指標等を提供することもできる。
そして、分析対象となるデータ量は年々著しく増加していることから、分析システムとしては、クラスタシステムが用いられている。クラスタシステムは、タスクを、分散して、且つ並列に実行する。
ここで、例えば、プラントにおける材料の投入量、操作機器における操作量、又は商品の設定価格等を、過去のデータをもとに最適化をするというタスクを考える。通常、こういった最適化処理は、毎日又は毎週という単位で実行する必要がある。これは、元になるデータが日々更新されるからである。また、最適化処理は、事業者による意思決定の前までに実行されて、最適解が導出されている必要がある。例えば、事業者が商品の価格を設定する前に、最適化された設定価格が決まっていなければ、事業は商品を販売できないことになる。従って、分析システムにおいては、タスクを締切りまでに完了させることは重要である。
そして、タスクを締め切りまでに完了させるためには、分析システムが備える計算資源を効率良く使用する必要がある。このため、例えば、特許文献1は、効率良くタスクを実行するためのコア数を求めることができるシステムを開示している。特許文献1に開示されたシステムは、並列して実行されるタスク毎に、並列処理を実行可能なコア数の範囲内で、タスクの実行時間を最小化するコア数を計算し、計算したコア数で各タスクを実行する。
ところで、例えば、上述した商品の設定価格を最適化するタスクは、実際は、過去データからの特徴量の抽出タスク、需要の予測タスク、設定価格の最適化タスクといった、依存関係のある複数のタスクによって構成されている。また、これらのタスクは、別の種類のデータに対して別個に実行される場合もある。典型的には、入力データが異なる2つの特徴量抽出タスクが別々に行なわれる。
そして、このような場合、2つの特徴量抽出タスクは並列に実行できるが、需要の予測タスクと設定価格の最適化タスクとは、その後に実行される必要がある。つまり、通常、タスクには、依存関係がワークフローとして与えられているため、このような依存関係を考慮して、タスクに割当てる計算資源を最適化する必要がある。
しかしながら、上記特許文献1に開示されたシステムでは、タスク間の依存関係は考慮されておらず、単にタスク毎に実行時間を最小化するコア数が計算されているだけである。このため、上記特許文献1に開示されたシステムでは、依存関係がある複数のタスクに対して最適な計算資源を割当てることは困難である。
本発明の目的の一例は、上記問題を解消し、依存関係のある複数のタスクを実行する場合に、依存関係を踏まえて各タスクに割当てる計算資源を最適化し得る、計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体を提供することにある。
上記目的を達成するため、本発明の一側面における計算資源管理装置は、複数のタスクを実行するクラスタシステムを管理するための装置であって、
前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、条件特定部と、
特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、スケジューリング部と、
を備えている、ことを特徴とする。
前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、条件特定部と、
特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、スケジューリング部と、
を備えている、ことを特徴とする。
また、上記目的を達成するため、本発明の一側面における計算資源管理方法は、複数のタスクを実行するクラスタシステムを管理するための方法であって、
(a)前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、ステップと、
(b)前記(a)のステップで特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、ステップと、
を有する、
ことを特徴とする。
(a)前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、ステップと、
(b)前記(a)のステップで特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、ステップと、
を有する、
ことを特徴とする。
更に、上記目的を達成するため、本発明の一側面におけるコンピュータ読み取り可能な記録媒体は、コンピュータによって、複数のタスクを実行するクラスタシステムを管理するためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
(a)前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、ステップと、
(b)前記(a)のステップで特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、ステップと、
を実行させる命令を含む、プログラムを記録していることを特徴とする。
前記コンピュータに、
(a)前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、ステップと、
(b)前記(a)のステップで特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、ステップと、
を実行させる命令を含む、プログラムを記録していることを特徴とする。
以上のように本発明によれば、依存関係のある複数のタスクを実行する場合に、依存関係を踏まえて各タスクに割当てる計算資源を最適化することができる。
(発明の概要)
一般に、タスクの実行にかかる時間とそれに割当てられる計算資源との間には、一定の関係があり、1つのタスクに計算資源を多く割り当てたからといって、処理が速く終わるわけではない。つまり、計算資源としてコア数を想定すると、タスクにコア数を多く割り当てた場合、計算が並列化されることにより、並列化可能なタスクの計算時間は短くなるが、並列化不可能なタスクの計算時間はコア数を増やしても短くなることはない。これは、並列化により、コア間で通信の必要が発生し、その分計算時間がかかる、という現象が起こったことによる。このことは、単位コアあたりの計算効率は、割り当てるコア数を増やすごとに減少することを意味している。
一般に、タスクの実行にかかる時間とそれに割当てられる計算資源との間には、一定の関係があり、1つのタスクに計算資源を多く割り当てたからといって、処理が速く終わるわけではない。つまり、計算資源としてコア数を想定すると、タスクにコア数を多く割り当てた場合、計算が並列化されることにより、並列化可能なタスクの計算時間は短くなるが、並列化不可能なタスクの計算時間はコア数を増やしても短くなることはない。これは、並列化により、コア間で通信の必要が発生し、その分計算時間がかかる、という現象が起こったことによる。このことは、単位コアあたりの計算効率は、割り当てるコア数を増やすごとに減少することを意味している。
一方で、タスク間に依存関係があり、あるタスクの実行終了時刻が全体のボトルネックとなる場合、あるタスクの実行期限が迫っているため、多少の計算効率を犠牲にしても、そのタスクの実行を終了させたい場合等がある。このような場合においては、計算効率を犠牲にしても、ネックとなるタスクに多くのコア数を割り当てる必要がある。但し、計算効率を軽視すると、全体のワークフローの終了が遅れ、全体の締切りに間に合わないということが起こりうる。
従って、複数のタスクを効率良く分散して実行するためには、計算効率と一部のタスクの早期終了とのトレードオフを取りながら、各タスクに適切な計算資源を割り当てる必要がある。つまり、依存関係のある複数のタスクがワークフローとして与えられたときは、タスクに割当てるコア数が少ない方が計算効率は高く、タスクに割当てるコア数が多い方が実行終了時刻は早くなることを鑑みつつ、各タスクへ計算資源を割り当て、その実行順序を決定する必要がある。
ここで、具体例を挙げて説明する。図1は、依存関係のある複数のタスクの一例を示す図である。図1に示すように、複数のタスクとタスク間の依存関係が、ワークフローの形で与えられている。ワークフローは、タスクの集合W={1,2,・・・,n}と、集合Wの各要素wとに対する、タスク間の依存関係を表すWの部分集合Pwによって表現される。
図1の例では、集合W={1,2,3,4}であり、部分集合P1={}、P2={1}、P3={1}、P4={2}である。これは、タスク2はタスク1が終わるまで計算を開始できず、タスク4はタスク2の計算が終了するまで計算が開始できない、ということを表している。
例えば、需要予測のワークフローにおいて、タスクw1は予測に用いる特徴量抽出タスク、タスクw2は翌日の需要予測タスク、タスクw3は本日の需要予測タスク、タスクw4は翌日の需要予測に基づく価格戦略最適化タスクに相当するとする。
そして、各タスクwに対して、デッドライン時刻(実行期限)dwが与えられているとする。なお、実行期限が指定されていない場合には、dwとしては、十分に大きな数∞が与えられる。図1の例において、タスク3と4の実行期限が10[min]、15[min]と与えられているとすると、d1=d2=∞、d3=10、d4=15というように定められる。
各タスクに対して、計算資源x_wを与えられたときの計算時間f(x_w)が与えられているとする。なお、以下においては、説明のため、計算資源x_wはCPU(Central Processing Unit)のコア数のみとするが、本発明において、計算資源はコア数のみに限定されることはない。
また、コア数と計算時間との関係は、例えば図2に示す通りとなる。図2は、計算資源と計算時間との関係の一例を示す図である。図2の例では、あるタスクの計算時間は、コア数の違いにより、f(4)=50、f(8)=48となる。これは、このタスクに4コアを用いた場合の計算時間が50秒で、8コアを用いた場合の計算時間が48秒であることを意味している。また、図2に示された計算時間は、過去のデータに基づいて推定される。この計算時間の推定について、更に説明する。
例えば、クラスタシステムが毎週同じ計算を実行しているが、計算の中身が違うという場合には、過去にかかった計算時間に基づいて、最新の計算時間を推定することができる。また、機械学習エンジンを用いて、毎週、異なるデータに基づいて推定処理が行なわれる場合を想定する。通常、機械学習エンジンが用いられる場合は、データの詳細な内容ではなく、データ量に依存して計算時間が決定される。よって、データ量とコア数との様々な組合せを想定して、機械学習エンジンを予め動かしておくことで、コア数に応じた計算時間を推定することができる。なお、このような推定には、十分な時間が使える状況にあることが必要となる。
ここで、図3~図6を用いて、図1に示した各タスクへの最適なコアの割当てと最適な各タスクの実行開始時刻について説明する。また、図3~図6の例において、使用可能なコア数の合計は4コアであるとする。図3は、コアの割当ての第1の例を示す図である。図4は、コアの割当ての第2の例を示す図である。図5は、コアの割当ての第3の例を示す図である。図6は、コアの割当ての第4の例を示す図である。なお、各図において、上段には、タスクの実行順序を示すグラフが表示されている。
図3の例では、タスクw1、w3、w2、w4の順に、各タスクに4コア全てが用いられて計算が行なわれている。これに対して、図4の例では、まずタスクw1が4コアで計算され、次に、タスクw2及びw3をそれぞれが2コアで計算され、タスクw2の計算の終了後に、タスクw4が2コアで計算されている。
図3及び図4から分かるよう、一般に、コア数が1の時に比べて、コア数をxとした時に、計算時間が1/xのオーダーで短縮されるわけではない。これは、複数のコアでタスクを実行する場合には、並列化できない逐次処理及びデータ通信等を行なう必要があるからである。従って、1コア当りの計算効率は、一般に少ないコア数でタスクを計算した方が良い結果となる。このことから、図5に示すように、1コアを最小単位とした場合は、1コア当りの計算効率は最も良くなり、逆に図3の例では、1コア当りの計算効率は最も悪くなる。
一方で、既に確保されている計算資源を余らせるのは無駄である。更に、図5の例では、タスクに設定されている実行期限が満たされない事態となっている。従って、計算効率と実行期限の遵守との両方の点からは、図4又は図6に示すように各タスクにコアを割当てるのが理想的である。図4の例では、最終終了時刻(タスク4の終了時刻)が最速であり、図6の例では、最終終了時刻は最速とはならないが、高い計算効率を維持しつつ、最終終了時刻までのマージンを十分に確保できる。本発明においては、このようなスケジュールを求めることができる。
(実施の形態)
以下、本発明の実施の形態における、計算資源管理装置、計算資源管理方法及びコンピュータ読み取り可能な記録媒体について、図7~図11を参照しながら説明する。
以下、本発明の実施の形態における、計算資源管理装置、計算資源管理方法及びコンピュータ読み取り可能な記録媒体について、図7~図11を参照しながら説明する。
[装置構成]
最初に、本実施の形態における計算資源管理装置の構成について図7を用いて説明する。図7は、本発明の実施の形態における計算資源管理装置の概略構成を示すブロック図である。
最初に、本実施の形態における計算資源管理装置の構成について図7を用いて説明する。図7は、本発明の実施の形態における計算資源管理装置の概略構成を示すブロック図である。
図7に示す本実施の形態における計算資源管理装置10は、複数のタスクを実行するクラスタシステム20を管理するための装置である。図1に示すように、計算資源管理装置10は、条件特定部11と、スケジューリング部12とを備えている。
条件特定部11は、クラスタシステム20の計算資源と計算時間との関係、複数のタスクそれぞれ間の依存関係、及び複数のタスクそれぞれの実行期限を特定する。スケジューリング部12は、特定された計算資源と計算時間との関係、タスク間の依存関係に基づいて、タスク毎に、実行期限が守られるように、実行順序、及びクラスタシステム20の計算資源のうちの割当てるべき計算資源を決定する。
このように、計算資源管理装置10は、計算資源と計算時間との関係、タスク間の依存関係、及び各タスクの実行期限に基づいて、タスクのスケジューリングを行なう。このため、本実施の形態では、依存関係のある複数のタスクを実行する場合に、依存関係を踏まえて各タスクに割当てる計算資源を最適化することができる。
続いて、図8を用いて、計算資源管理装置10の構成を更に具体的に説明する。図8は、本発明の実施の形態における計算資源管理装置の具体的構成を示すブロック図である。
図8に示すように、本実施の形態において、条件特定部11は、外部から、クラスタシステム20の計算資源と計算時間との関係、タスク間の依存関係、及び各タスクの実行期限を取得する。具体的には、これらの情報が、外部の端末装置から送信されてくる場合は、条件特定部11は、送信されてきた情報を取得する。また、これらの情報が、キーボード等の入力機器によって入力される場合は、入力された情報を取得する。また、条件特定部11は、取得した情報をスケジューリング部12に渡す。
スケジューリング部12は、本実施の形態では、実行順序決定部13と、割当部14と、判定部15とを備えている。
実行順序決定部13は、タスク間の依存関係及びタスク毎の実行期限に基づいて、各タスクの実行順序を決定する。割当部14は、実行順序決定部13が決定した実行順序の元で、各タスクへの任意の計算資源の割当てを実行する。
また、スケジューリング部12において、実行順序決定部13による決定処理と、割当部14による割当て処理とは、一連の処理として複数回行なわれる。その後、判定部15は、一連の処理の結果に基づき、タスク毎に、実行順序、及び割当てるべき計算資源を決定する。
具体的には、スケジューリング部12において、実行順序決定部13が、まず、各タスクについて初期の実行順序を決定し、その上で、割当部14が、各タスクにコアを割当てる。続いて、実行順序決定部13は、各タスクの実行順序を変更する。また、割当部14は、変更後の実行順序を踏まえて、コア数を変更する。つまり、スケジューリング部12において、複数回、スケジューリングが実行される。
判定部15は、一連の処理が実行されると、その度に、各タスクが実行期限内に完了するかどうかを判定し、この判定結果に基づいて、最終的な各タスクの実行順序と割当てるコア数とを決定する。更に、判定部15は、各タスクが実行期限内に完了していると判定された一連の処理のうち、各タスクの実行終了時刻が設定条件を満たす一連の処理を選択することができる。
また、本実施の形態では、計算資源管理装置10は、上述した条件特定部11とスケジューリング部12とに加えて、出力部16も備えている。出力部16は、スケジューリングの結果を可視化するためのデータを作成し、作成したデータを、外部の端末装置に送信する。また、出力部16は、スケジューリングの結果を、表示装置の画面上で可視化することもできる。
また、本実施の形態では、クラスタシステム20の計算資源と計算時間との関係としては、例えば、タスク毎のコア数と計算時間との関係が挙げられる。コア数と計算時間との関係の具体例については図10を用いて後述する。
[装置動作]
次に、本発明の実施の形態における計算資源管理装置10の動作について図9を用いて説明する。図9は、本発明の実施の形態における計算資源管理装置の動作を示すフロー図である。以下の説明においては、適宜図7及び図8を参酌する。また、本実施の形態では、計算資源管理装置を動作させることによって、計算資源管理方法が実施される。よって、本実施の形態における計算資源管理方法の説明は、以下の計算資源管理装置10の動作説明に代える。
次に、本発明の実施の形態における計算資源管理装置10の動作について図9を用いて説明する。図9は、本発明の実施の形態における計算資源管理装置の動作を示すフロー図である。以下の説明においては、適宜図7及び図8を参酌する。また、本実施の形態では、計算資源管理装置を動作させることによって、計算資源管理方法が実施される。よって、本実施の形態における計算資源管理方法の説明は、以下の計算資源管理装置10の動作説明に代える。
図9に示すように、最初に、条件特定部11が、外部から、クラスタシステム20の計算資源と計算時間との関係、タスク間の依存関係、及び各タスクの実行期限を取得し、これらを特定する(ステップA1)。具体的には、条件特定部11は、図2に示した計算資源と計算時間との関係、図1に示したタスク間の依存関係、図1に示した実行期限(d1=d2=∞、d3=10、d4=15)を特定する。
ここで、計算資源としてコア数が用いられ、総コア数をCとし、xwをタスクwに割り当てるコア数とする。また、タスクwが終了する計算時間をtwとする。σを置換とし、σ(w)がwの計算が終わる順序を表し、このとき、σの定義から下記の数1が成立するとする。置換とは、1,2、、、、nの並び替えをあらわす。とくに、ここでは、σ(w)=iだった場合に、タスクwはi番目に計算が終了することを意味する。
但し、上記数1において、t0は便宜上の、計算開始時刻である。また、π(w)によって、タスクwを計算し始める直前のタスクを表す。このとき、下記の数2が定義から成立する。これは、タスクwの計算終了順序σ(w)は、直前のタスクπ(w)の計算終了順序σ(π(w))より大きいことを意味する。
また、タスクの依存関係に関する制約から、すべてのタスクwとPwの要素pに対して、下記の数3が成立する。
上記数3は、タスクwの計算が実行される直前のタスクπ(w)の計算終了順序は、いかなる先行タスクpの計算終了の順序以上でなくてはならないという性質を示している。
次に、スケジューリング部12において、実行順序決定部13が、まず、各タスクについて実行順序を決定する(ステップA2)。
具体的には、ステップA2では、スケジューリング部12は、既に処理が行なわれている場合は、初期の実行順序として、前回の処理で決定されたσとπとを用いる。一方、未だ処理が何も行なわれていない状態においては、スケジューリング部12は、以下のように、初期の実行順序としてσとπを計算する。
まず、実行順序決定部13は、最も実行期限が早いタスクw1(図1参照)を選び、w1の実行開始時刻より前に計算が終了していなければならないタスクを、依存関係を満たすようにw11、w12、、、、w1n1、w1として並べる。
同様に、実行順序決定部13は、まだ選ばれていないタスクの中でもっとも実行期限が早いタスクをw2として、それよりも前に計算が終了していなければならないタスクを、依存関係を満たすように、w21、、、、w2n2、w2、として並べる。
以上の結果、実行順序決定部13は、タスクの優先順位の列w11、、、、w1n1、w1、w21、、、、w2、w31、、、、w3、、、、を得る。そして、実行順序決定部13は、この順に、優先順位を割り振り、σ(w11)=1、σ(w12)=2、、、、と設定する。また、実行順序決定部13は、πを一つ前のタスクに割り当てる。これにより、σとπの初期値が得られる。
次に、スケジューリング部12において、割当部14が、ステップA2で決定された実行順序に基づいて、各タスクにコアを割当てる(ステップA3)。次に、スケジューリング部12は、繰り返し処理の終了条件が満たされているかどうかを判定し、満たされていない場合は、再度ステップA2を実行し、満たされている場合は、ステップA5を実行する。なお、終了条件としては、ステップA2及びA3が予め設定された回数行なわれたこと、全てのタスクが実行期限内に完了したこと、等が挙げられる。
ここで、ステップA3について具体的に説明する。まず、実行順序が決定されると、コア数とタスク間の依存関係とには、以下の数4の線形不等式によって表される制約が存在する。
上記数4において、W(w,σ、π)は同時に計算されるワークフローの集合であり、swは各タスクwに対応する新たな変数である。これらの制約の元では、下記の数5に示す最終終了時間、及び後述するマージンsを最適化する問題は、線形整数計画問題として定式化される。
そして、割当部14は、ステップA2で決定された実行順序と、上記数4に示した制約の下で、タスク毎に、割当てるコア数と、計算時間とを算出する。このとき、ワークフローWにおいて、タスクwの終了時刻と、タスクπ(w)の終了時刻が一致するとする。つまり、下記の数6又は数7が成立するとする。
この場合においては、i番目に終了するタスクとi+1番目に終了するタスクとは終了時刻が等しく、本当は、i+1番目のタスクの計算は最早くに終了できるが、順序の制約を満たすために、i+1番目のタスクの計算を待機させている、ということが成立する。
従って、このようなワークフローWにおいて、タスクπ(w)を、このタスクπ(w)より終了時刻が早いタスクに入れ替える、つまりσ-1(σ(π(w))-1)にする、またはσ-1(i)とσ-1(i+1)とを入れ替えることで、解が改善されることが期待される。このため、次のステップA2では、実行順序決定部13は、タスクの入れ替えを行って、各タスクの実行順序を決定する。
また、再度のステップA2において、入れ替え対象となるタスクの選び方は、特に限定されるものではない。例えば、実行順序決定部13は、コア効率、つまりfw(xw)/fw(1)が、最も低いタスクwを選択し、選択したタスクwのσ又はπを上述した方法で変更する。
ステップA5では、判定部15は、最終的な各タスクの実行順序と割当てるコア数とを決定する。具体的には、判定部15は、ステップA2及びA3が実行される度に、各タスクが実行期限内に完了するかどうかを判定する。そして、判定部15は、得られた各判定結果に基づいて、最終的な各タスクの実行順序と割当てるコア数とを決定する。
その後、出力部16が、ステップA1~A5までの処理で得られたスケジューリングの結果を外部に出力する(ステップA6)。以上により、計算資源管理装置10における処理は終了する。
[具体例]
続いて、本実施の形態における具体例について説明する。まず、図9に示したステップA1において、図1に示したタスク間の依存関係と、図1に示した実行期限(d1=d2=∞、d3=10、d4=13)とが与えられているとする。
続いて、本実施の形態における具体例について説明する。まず、図9に示したステップA1において、図1に示したタスク間の依存関係と、図1に示した実行期限(d1=d2=∞、d3=10、d4=13)とが与えられているとする。
また、クラスタシステムの全コア数は4コアであり、タスク毎の計算資源(コア)と計算時間との関係として、図10に示すテーブルが与えられているとする。図10は、本発明の実施の形態における具体例で用いられる計算資源と計算時間との関係を示す図である。図10の例では、各タスクに割当てられたコア数が、1、2、3、4である場合の計算時間が示されている。
次に、ステップA2において、実行順序決定部13が、例えば、タスク1、3、2、4の順に、各タスクの初期の実行順序を決定する。この場合、σ(1)=1、σ(3)=2、σ(2)=3、σ(4)=4となる。これに対し、π(1)=0、π(3)=1、π(2)=3、π(4)=2となる。これらの初期値は、図5の上段のグラフに対応する。
また、この場合において、コア数を最終の終了時刻に対して最適化すると、全てのタスクに4コアを割り当てるのが最適となることから、割当部14は、図5の下段に示すように各タスクにコアを割当てる。各タスクの開始時をゼロとした終了時間を、t1、t2、t3、t4とすると、t1=4秒、t2=11秒、t3=9秒、t4=14秒となる。なお、この場合、タスク4の実行期限が満たされていない結果となる。
ここで、タスク1、3、4に関しては、σ及びπの値を、制約を崩すことなく変更することはできないため、タスク2について検討する。すると、タスク2のπの値のみ変更可能であることから、実行順序決定部13は、π(2)=1、つまり、タスク2の直前のタスクを3から1に変更する。この変更により、各タスクの実行順序は、図6の上段に示した通りとなる。
この変更の後に、割当部14が、各タスクに割当てるコアの数を最適化すると、図6の下段に示す通りとなる。この場合、t1=4秒、t2=9秒、t3=9秒、t4=12秒となる。
この場合、タスク2とタスク3についてt2=t3が成立する。但し、タスク2の実際の計算時間(f2(1))は4秒(図10参照)であるのに対して、図6において、タスク2の計算時間は5秒となっている。これは、各タスクの実行順序による制約(図6の上段)から、タスク2はタスク3より後に終了する必要があるからである。従って、実行順序決定部13は、この制約を排除し、σ(2)とσ(3)とを入れ替える。
この入れ替えの後、各タスクの実行順序は、図4の上段に示した通りとなる。また、各タスクに割当てるコアの数を最適化すると、図4の下段に示した通りとなる。図4の下段の例では、最終の終了時刻が最短となり、t1=4秒、t2=7秒、t3=10秒、t4=11秒となる。
また、判定部15は、各タスクが実行期限内に完了していると判定された一連の処理のうち、各タスクの実行終了時刻が設定条件を満たす一連の処理を選択する。例えば、最終の終了時刻からのマージンを最大化したい場合は、図6の下段の例が最適解となるので、判定部15は、図6の下段の例に示された実行順序及び計算資源に決定する。
以上のように、本実施の形態では、計算資源管理装置10は、最適化の目的変数を変更し、そして、反復処理の中から最良の結果を選択する。このため、依存関係のある複数のタスクを実行する場合に、依存関係を踏まえて各タスクに割当てる計算資源を最適化することができる。
[プログラム]
本実施の形態におけるプログラムは、コンピュータに、図9に示すステップA1~A6を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における計算資源管理装置10と計算資源管理方法とを実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、条件特定部11、スケジューリング部12、及び出力部16として機能し、処理を行なう。
本実施の形態におけるプログラムは、コンピュータに、図9に示すステップA1~A6を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における計算資源管理装置10と計算資源管理方法とを実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、条件特定部11、スケジューリング部12、及び出力部16として機能し、処理を行なう。
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、条件特定部11、スケジューリング部12、及び出力部16のいずれかとして機能しても良い。
ここで、本実施の形態におけるプログラムを実行することによって、計算資源管理装置10を実現するコンピュータについて図11を用いて説明する。図11は、本発明の実施の形態における計算資源管理装置を実現するコンピュータの一例を示すブロック図である。
図11に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。
なお、本実施の形態における計算資源管理装置10は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、計算資源管理装置10は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
上述した実施の形態の一部又は全部は、以下に記載する(付記1)~(付記12)によって表現することができるが、以下の記載に限定されるものではない。
(付記1)
複数のタスクを実行するクラスタシステムを管理するための装置であって、
前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、条件特定部と、
特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、スケジューリング部と、
を備えている、
ことを特徴とする計算資源管理装置。
複数のタスクを実行するクラスタシステムを管理するための装置であって、
前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、条件特定部と、
特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、スケジューリング部と、
を備えている、
ことを特徴とする計算資源管理装置。
(付記2)
前記スケジューリング部が、
前記依存関係及び前記実行期限に基づいた、前記複数のタスクそれぞれの実行順序の決定処理と、決定された前記実行順序の元での、前記複数のタスクそれぞれへの任意の計算資源の割当て処理とを、一連の処理として複数回行なって、
前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
付記1に記載の計算資源管理装置。
前記スケジューリング部が、
前記依存関係及び前記実行期限に基づいた、前記複数のタスクそれぞれの実行順序の決定処理と、決定された前記実行順序の元での、前記複数のタスクそれぞれへの任意の計算資源の割当て処理とを、一連の処理として複数回行なって、
前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
付記1に記載の計算資源管理装置。
(付記3)
前記スケジューリング部が、
前記複数のタスクそれぞれが前記実行期限内に完了している前記一連の処理のうち、前記複数のタスクそれぞれの実行終了時刻が設定条件を満たす一連の処理を選択し、
選択した一連の処理における前記決定処理及び前記割当て処理の結果を用いて、前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
付記2に記載の計算資源管理装置。
前記スケジューリング部が、
前記複数のタスクそれぞれが前記実行期限内に完了している前記一連の処理のうち、前記複数のタスクそれぞれの実行終了時刻が設定条件を満たす一連の処理を選択し、
選択した一連の処理における前記決定処理及び前記割当て処理の結果を用いて、前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
付記2に記載の計算資源管理装置。
(付記4)
前記関係が、前記複数のタスクそれぞれ毎のコア数と計算時間との関係である、
付記1~3のいずれかに記載の計算資源管理装置。
前記関係が、前記複数のタスクそれぞれ毎のコア数と計算時間との関係である、
付記1~3のいずれかに記載の計算資源管理装置。
(付記5)
複数のタスクを実行するクラスタシステムを管理するための方法であって、
(a)前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、ステップと、
(b)前記(a)のステップで特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、ステップと、
を有する、
ことを特徴とする計算資源管理方法。
複数のタスクを実行するクラスタシステムを管理するための方法であって、
(a)前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、ステップと、
(b)前記(a)のステップで特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、ステップと、
を有する、
ことを特徴とする計算資源管理方法。
(付記6)
前記(b)のステップにおいて、
前記依存関係及び前記実行期限に基づいた、前記複数のタスクそれぞれの実行順序の決定処理と、決定された前記実行順序の元での、前記複数のタスクそれぞれへの任意の計算資源の割当て処理とを、一連の処理として複数回行なって、
前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
付記5に記載の計算資源管理方法。
前記(b)のステップにおいて、
前記依存関係及び前記実行期限に基づいた、前記複数のタスクそれぞれの実行順序の決定処理と、決定された前記実行順序の元での、前記複数のタスクそれぞれへの任意の計算資源の割当て処理とを、一連の処理として複数回行なって、
前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
付記5に記載の計算資源管理方法。
(付記7)
前記(b)のステップにおいて、
前記複数のタスクそれぞれが前記実行期限内に完了している前記一連の処理のうち、前記複数のタスクそれぞれの実行終了時刻が設定条件を満たす一連の処理を選択し、
選択した一連の処理における前記決定処理及び前記割当て処理の結果を用いて、前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
付記6に記載の計算資源管理方法。
前記(b)のステップにおいて、
前記複数のタスクそれぞれが前記実行期限内に完了している前記一連の処理のうち、前記複数のタスクそれぞれの実行終了時刻が設定条件を満たす一連の処理を選択し、
選択した一連の処理における前記決定処理及び前記割当て処理の結果を用いて、前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
付記6に記載の計算資源管理方法。
(付記8)
前記関係が、前記複数のタスクそれぞれ毎のコア数と計算時間との関係である、
付記5~7のいずれかに記載の計算資源管理方法。
前記関係が、前記複数のタスクそれぞれ毎のコア数と計算時間との関係である、
付記5~7のいずれかに記載の計算資源管理方法。
(付記9)
コンピュータによって、複数のタスクを実行するクラスタシステムを管理するためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
(a)前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、ステップと、
(b)前記(a)のステップで特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。
コンピュータによって、複数のタスクを実行するクラスタシステムを管理するためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
(a)前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、ステップと、
(b)前記(a)のステップで特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。
(付記10)
前記(b)のステップにおいて、
前記依存関係及び前記実行期限に基づいた、前記複数のタスクそれぞれの実行順序の決定処理と、決定された前記実行順序の元での、前記複数のタスクそれぞれへの任意の計算資源の割当て処理とを、一連の処理として複数回行なって、
前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
付記9に記載のコンピュータ読み取り可能な記録媒体。
前記(b)のステップにおいて、
前記依存関係及び前記実行期限に基づいた、前記複数のタスクそれぞれの実行順序の決定処理と、決定された前記実行順序の元での、前記複数のタスクそれぞれへの任意の計算資源の割当て処理とを、一連の処理として複数回行なって、
前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
付記9に記載のコンピュータ読み取り可能な記録媒体。
(付記11)
前記(b)のステップにおいて、
前記複数のタスクそれぞれが前記実行期限内に完了している前記一連の処理のうち、前記複数のタスクそれぞれの実行終了時刻が設定条件を満たす一連の処理を選択し、
選択した一連の処理における前記決定処理及び前記割当て処理の結果を用いて、前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
付記10に記載のコンピュータ読み取り可能な記録媒体。
前記(b)のステップにおいて、
前記複数のタスクそれぞれが前記実行期限内に完了している前記一連の処理のうち、前記複数のタスクそれぞれの実行終了時刻が設定条件を満たす一連の処理を選択し、
選択した一連の処理における前記決定処理及び前記割当て処理の結果を用いて、前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
付記10に記載のコンピュータ読み取り可能な記録媒体。
(付記12)
前記関係が、前記複数のタスクそれぞれ毎のコア数と計算時間との関係である、
付記9~11のいずれかに記載のコンピュータ読み取り可能な記録媒体。
前記関係が、前記複数のタスクそれぞれ毎のコア数と計算時間との関係である、
付記9~11のいずれかに記載のコンピュータ読み取り可能な記録媒体。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2017年4月27日に出願された米国出願62/490895を基礎とする優先権を主張し、その開示の全てをここに取り込む。
以上のように本発明によれば、依存関係のある複数のタスクを実行する場合に、依存関係を踏まえて各タスクに割当てる計算資源を最適化することができる。本発明は、例えば、クラスタシステムに有用である。
10 計算資源管理装置
11 条件特定部
12 スケジューリング部
13 実行順序決定部
14 割当部
15 判定部
16 出力部
20 クラスタシステム
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
11 条件特定部
12 スケジューリング部
13 実行順序決定部
14 割当部
15 判定部
16 出力部
20 クラスタシステム
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
Claims (12)
- 複数のタスクを実行するクラスタシステムを管理するための装置であって、
前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、条件特定部と、
特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、スケジューリング部と、
を備えている、
ことを特徴とする計算資源管理装置。 - 前記スケジューリング部が、
前記依存関係及び前記実行期限に基づいた、前記複数のタスクそれぞれの実行順序の決定処理と、決定された前記実行順序の元での、前記複数のタスクそれぞれへの任意の計算資源の割当て処理とを、一連の処理として複数回行なって、
前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
請求項1に記載の計算資源管理装置。 - 前記スケジューリング部が、
前記複数のタスクそれぞれが前記実行期限内に完了している前記一連の処理のうち、前記複数のタスクそれぞれの実行終了時刻が設定条件を満たす一連の処理を選択し、
選択した一連の処理における前記決定処理及び前記割当て処理の結果を用いて、前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
請求項2に記載の計算資源管理装置。 - 前記関係が、前記複数のタスクそれぞれ毎のコア数と計算時間との関係である、
請求項1~3のいずれかに記載の計算資源管理装置。 - 複数のタスクを実行するクラスタシステムを管理するための方法であって、
(a)前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、ステップと、
(b)前記(a)のステップで特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、ステップと、
を有する、
ことを特徴とする計算資源管理方法。 - 前記(b)のステップにおいて、
前記依存関係及び前記実行期限に基づいた、前記複数のタスクそれぞれの実行順序の決定処理と、決定された前記実行順序の元での、前記複数のタスクそれぞれへの任意の計算資源の割当て処理とを、一連の処理として複数回行なって、
前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
請求項5に記載の計算資源管理方法。 - 前記(b)のステップにおいて、
前記複数のタスクそれぞれが前記実行期限内に完了している前記一連の処理のうち、前記複数のタスクそれぞれの実行終了時刻が設定条件を満たす一連の処理を選択し、
選択した一連の処理における前記決定処理及び前記割当て処理の結果を用いて、前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
請求項6に記載の計算資源管理方法。 - 前記関係が、前記複数のタスクそれぞれ毎のコア数と計算時間との関係である、
請求項5~7のいずれかに記載の計算資源管理方法。 - コンピュータによって、複数のタスクを実行するクラスタシステムを管理するためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
(a)前記クラスタシステムの計算資源と計算時間との関係、前記複数のタスクそれぞれ間の依存関係、及び前記複数のタスクそれぞれの実行期限を特定する、ステップと、
(b)前記(a)のステップで特定された前記関係、前記依存関係に基づいて、前記複数のタスクそれぞれ毎に、前記実行期限が守られるように、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、ステップと、
を実行させる命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。 - 前記(b)のステップにおいて、
前記依存関係及び前記実行期限に基づいた、前記複数のタスクそれぞれの実行順序の決定処理と、決定された前記実行順序の元での、前記複数のタスクそれぞれへの任意の計算資源の割当て処理とを、一連の処理として複数回行なって、
前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
請求項9に記載のコンピュータ読み取り可能な記録媒体。 - 前記(b)のステップにおいて、
前記複数のタスクそれぞれが前記実行期限内に完了している前記一連の処理のうち、前記複数のタスクそれぞれの実行終了時刻が設定条件を満たす一連の処理を選択し、
選択した一連の処理における前記決定処理及び前記割当て処理の結果を用いて、前記複数のタスクそれぞれ毎に、実行順序、及び前記クラスタシステムの計算資源のうちの割当てるべき計算資源を決定する、
請求項10に記載のコンピュータ読み取り可能な記録媒体。 - 前記関係が、前記複数のタスクそれぞれ毎のコア数と計算時間との関係である、
請求項9~11のいずれかに記載のコンピュータ読み取り可能な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/608,113 US11204805B2 (en) | 2017-04-27 | 2018-04-09 | Computational resource management apparatus which optimizes computational resources to be allocated to tasks having a dependency relationship, computational resource management method and computer readable recording medium |
JP2019514354A JP6753521B2 (ja) | 2017-04-27 | 2018-04-09 | 計算資源管理装置、計算資源管理方法、及びプログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762490895P | 2017-04-27 | 2017-04-27 | |
US62/490,895 | 2017-04-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018198745A1 true WO2018198745A1 (ja) | 2018-11-01 |
Family
ID=63919062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/014959 WO2018198745A1 (ja) | 2017-04-27 | 2018-04-09 | 計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11204805B2 (ja) |
JP (1) | JP6753521B2 (ja) |
WO (1) | WO2018198745A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020186836A1 (zh) * | 2019-03-15 | 2020-09-24 | 上海商汤智能科技有限公司 | 任务调度 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004502235A (ja) * | 2000-06-27 | 2004-01-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | スケジュール決定方法、スケジューラ及びシステム |
JP2013164750A (ja) * | 2012-02-10 | 2013-08-22 | Nomura Research Institute Ltd | ジョブ実行管理システム |
JP2013182502A (ja) * | 2012-03-02 | 2013-09-12 | Nec Corp | リソース配分システム、リソース配分方法、及びリソース配分プログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9262216B2 (en) * | 2012-02-14 | 2016-02-16 | Microsoft Technologies Licensing, LLC | Computing cluster with latency control |
US9367357B2 (en) * | 2013-01-18 | 2016-06-14 | Nec Corporation | Simultaneous scheduling of processes and offloading computation on many-core coprocessors |
US10552774B2 (en) * | 2013-02-11 | 2020-02-04 | Amazon Technologies, Inc. | Cost-minimizing task scheduler |
JP6171658B2 (ja) | 2013-07-19 | 2017-08-02 | 富士通株式会社 | 並列処理最適化プログラム、並列処理最適化方法および情報処理装置 |
US9513967B2 (en) * | 2014-09-18 | 2016-12-06 | International Business Machines Corporation | Data-aware workload scheduling and execution in heterogeneous environments |
US9720738B2 (en) * | 2015-04-09 | 2017-08-01 | International Business Machines Corporation | Datacenter scheduling of applications using machine learning techniques |
-
2018
- 2018-04-09 US US16/608,113 patent/US11204805B2/en active Active
- 2018-04-09 JP JP2019514354A patent/JP6753521B2/ja active Active
- 2018-04-09 WO PCT/JP2018/014959 patent/WO2018198745A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004502235A (ja) * | 2000-06-27 | 2004-01-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | スケジュール決定方法、スケジューラ及びシステム |
JP2013164750A (ja) * | 2012-02-10 | 2013-08-22 | Nomura Research Institute Ltd | ジョブ実行管理システム |
JP2013182502A (ja) * | 2012-03-02 | 2013-09-12 | Nec Corp | リソース配分システム、リソース配分方法、及びリソース配分プログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020186836A1 (zh) * | 2019-03-15 | 2020-09-24 | 上海商汤智能科技有限公司 | 任务调度 |
US11347546B2 (en) | 2019-03-15 | 2022-05-31 | Shanghai Sensetime Intelligent Technology Co., Ltd | Task scheduling method and device, and computer storage medium |
Also Published As
Publication number | Publication date |
---|---|
JP6753521B2 (ja) | 2020-09-09 |
US11204805B2 (en) | 2021-12-21 |
JPWO2018198745A1 (ja) | 2020-03-05 |
US20210103472A1 (en) | 2021-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8200824B2 (en) | Optimized multi-component co-allocation scheduling with advanced reservations for data transfers and distributed jobs | |
CN112084002B (zh) | 云环境下微服务系统的弹性伸缩方法、系统、介质及设备 | |
US8869159B2 (en) | Scheduling MapReduce jobs in the presence of priority classes | |
US8255911B2 (en) | System and method for selecting and assigning a basic module with a minimum transfer cost to thread | |
JP4185103B2 (ja) | 実行可能プログラムをスケジューリングするためのシステム及び方法 | |
US7979864B2 (en) | Apparatus for setting used license of executing job into unused license state and allocating the set unused license to a to be executed job based on priority | |
US20110154350A1 (en) | Automated cloud workload management in a map-reduce environment | |
US20050081208A1 (en) | Framework for pluggable schedulers | |
US20180246765A1 (en) | System and method for scheduling jobs in distributed datacenters | |
WO2017188419A1 (ja) | 計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体 | |
US8458136B2 (en) | Scheduling highly parallel jobs having global interdependencies | |
US10635492B2 (en) | Leveraging shared work to enhance job performance across analytics platforms | |
Delgoshaei et al. | An applicable method for modifying over-allocated multi-mode resource constraint schedules in the presence of preemptive resources | |
CN113220444B (zh) | Os优化的工作流分配 | |
WO2018198745A1 (ja) | 計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体 | |
CN108268316A (zh) | 作业调度的方法及装置 | |
JP6156379B2 (ja) | スケジューリング装置、及び、スケジューリング方法 | |
JP6349837B2 (ja) | スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム | |
EP1630671A1 (en) | Framework for pluggable schedulers | |
CN112948094B (en) | Method, device, equipment and storage medium for distributing process automation tasks | |
JP2008159019A (ja) | プログラムの実行処理装置 | |
JP6369257B2 (ja) | 情報処理システム、情報処理システムの制御方法、管理装置、及び制御プログラム | |
JP3931883B2 (ja) | ジョブスケジューリング方法、計算機システムおよびジョブスケジューリングプログラム | |
CN115495209A (zh) | 一种任务数据调度方法、装置及设备 |
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: 18791222 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019514354 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18791222 Country of ref document: EP Kind code of ref document: A1 |