WO2016084327A1 - 資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム - Google Patents

資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム Download PDF

Info

Publication number
WO2016084327A1
WO2016084327A1 PCT/JP2015/005695 JP2015005695W WO2016084327A1 WO 2016084327 A1 WO2016084327 A1 WO 2016084327A1 JP 2015005695 W JP2015005695 W JP 2015005695W WO 2016084327 A1 WO2016084327 A1 WO 2016084327A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
processing
resource
prediction
information
Prior art date
Application number
PCT/JP2015/005695
Other languages
English (en)
French (fr)
Inventor
理人 浅原
浩嗣 玉野
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2016561229A priority Critical patent/JPWO2016084327A1/ja
Publication of WO2016084327A1 publication Critical patent/WO2016084327A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • the present invention relates to an apparatus for predicting an allocation amount in computer resources, and more particularly to a resource prediction apparatus used for process allocation in a distributed processing system operating in a computer cluster or the like.
  • a distributed processing system has been developed in which a plurality of tasks generated by dividing a job are distributed to a plurality of computers (hereinafter referred to as processing servers).
  • the distributed processing system includes a processing server that processes tasks and a master server that controls task assignment.
  • each distributed task is executed by each processing server.
  • a new task is assigned to the processing server from the master server of the distributed processing system.
  • the processing server to which the task is assigned is required to secure a computer resource (hereinafter simply referred to as “resource”) required for the task processing.
  • the resources are, for example, a CPU (Central Processing Unit) core, a memory, and a disk. If resources are not secured, the processing performance of the processing server task may deteriorate, or the task may end abnormally.
  • the master server that is the task allocation source is required to know in advance the amount of resources required for the task processing by the allocation destination processing server.
  • a technique for estimating the amount of resources required for task processing is required.
  • Patent Documents 1 to 3 and Non-Patent Documents 1 and 2 describe techniques related to estimation of the amount of resources required for task processing.
  • Patent Document 1 discloses a technique for estimating a relationship between a resource usage amount and a load value from a resource amount log used in a task executed in the past.
  • Patent Document 2 discloses a system for estimating a load characteristic generated by a program.
  • Patent Document 3 discloses a virtual machine arrangement configuration control device including a prediction unit that predicts a peak usage amount of a physical resource for each time interval.
  • Non-Patent Document 1 is a technique for deriving a basis function of resource amount transition from resource amount transition information used by a virtual machine using wavelet transform and estimating a future required resource amount by using the derived basis function. Is disclosed.
  • Non-Patent Document 2 describes the amount of resources required to satisfy a service level target (SLO: Service Level Objective) based on the results of short-term test executions of past task execution history and tasks to be assigned in the future using collaborative filtering. Disclosed is a technique for estimating.
  • SLO Service Level Objective
  • Patent Document 1 and Patent Document 2 can predict the load that a task will apply to the processing server, but cannot predict the amount of resources required for task processing.
  • Patent Document 3 uses a resource amount used by a virtual machine as a target of prediction, and does not target a resource amount required for task processing in distributed processing.
  • Non-Patent Document 1 targets a processing server that operates in a virtual machine, and does not target a processing server that processes a task of distributed processing.
  • Non-Patent Document 2 targets distributed processing tasks. However, when the technology disclosed in Non-Patent Document 2 is used, surplus resources are required for the prediction of resource usage. The reason is that, when predicting the resource usage, the technique described in Non-Patent Document 2 observes the prediction target attribute information such as the server and the task of the distributed processing at every prediction.
  • the attribute information to be predicted is, for example, an increase rate per unit time of the memory amount required for executing the process.
  • an object of the present invention is to solve the above-described problems. That is, an object of the present invention is to provide a resource prediction device and the like that can predict a resource amount required for processing a task, which is a processing unit in distributed processing, without using surplus resources.
  • a first feature of the present invention is a resource used when a task is processed by inputting task processing information required when a task, which is a processing unit in distributed processing, is processed.
  • Resource usage prediction unit that predicts the amount using a resource usage prediction model that indicates the relationship between past task processing information and the amount of resources used when a task corresponding to past task processing information is processed It is a resource prediction apparatus provided with.
  • the second feature of the present invention is that the task processing information required when a task, which is a processing unit in distributed processing, is processed as an input, and the resource amount used when the task is processed is determined as past task processing.
  • This is a resource prediction method in which prediction is performed using a resource usage amount prediction model indicating the relationship between information and the amount of resources used when a task corresponding to past task processing information is processed.
  • the third feature of the present invention is that the computer receives as input the task processing information required when a task, which is a processing unit in distributed processing, is processed, and the amount of resources used when the task is processed is stored in the past.
  • Resource prediction program recording that executes prediction processing using a resource usage prediction model that indicates the relationship between the task processing information of and the resource amount used when the task corresponding to the past task processing information is processed It is a medium.
  • a fourth feature of the present invention is a distributed processing system that includes a resource prediction device and performs distributed processing.
  • the resource prediction device is task processing information required when a task that is a processing unit in distributed processing is processed.
  • the resource amount used when the task is processed indicates the relationship between the past task processing information and the resource amount used when the task corresponding to the past task processing information is processed
  • It is a distributed processing system including a resource usage amount prediction unit that predicts using a resource usage amount prediction model.
  • FIG. 1 is a block diagram illustrating a configuration example of a distributed processing system 100 including a resource prediction apparatus 200 according to the present embodiment.
  • a distributed processing system 100 shown in FIG. 1 includes a resource prediction device 200, a master server 300, and worker machines 401 to 402.
  • the resource prediction apparatus 200 operates in a distributed processing system composed of one or more computers (master server 300, worker machines 401 to 402, etc.) as shown in FIG.
  • the resource prediction apparatus 200 may be provided outside the target distributed processing system without being included in the distributed processing system.
  • the resource prediction device 200 is communicably connected to the target distributed processing system.
  • the distributed processing system 100 includes a master server 300 and a plurality of worker machines 401 to 402 as shown in FIG.
  • the master server 300 has a function of assigning tasks to worker machines 401-402.
  • the worker machines 401 to 402 have a function of executing a task assigned from the master server 300 and outputting a processing result.
  • the distributed processing system 100 may include one or more master servers. Further, the distributed processing system 100 may include a plurality of redundant master servers. Further, as in a peer-to-peer (P2P) system, the master server 300 and worker machines 401 to 402 in the distributed processing system 100 may not be distinguished.
  • P2P peer-to-peer
  • the resource prediction device 200 includes a resource usage prediction model generation unit 201 and a resource usage prediction unit 202.
  • the resource usage prediction model generation unit 201 has a function of outputting a resource usage prediction model.
  • the resource usage prediction model generation unit 201 receives information indicating the characteristics of the process and information observed when the process is performed as inputs from the master server 300. Next, the resource usage prediction model generation unit 201 performs calculation using a machine learning algorithm or the like based on the received information, and generates a resource usage prediction model.
  • the information indicating the characteristics of the processing is, for example, meta information of input data to be processed and configuration information of the processing program.
  • Information observed when processing is performed is, for example, the amount of resources required for processing and performance values such as processing time.
  • the meta information of the input data is, for example, information on the data size such as the column label, the number of rows and the number of columns in the input data in matrix format, the average value, variance, maximum value, minimum value, and concentration of each column.
  • the configuration information of the processing program is, for example, an argument given to the program to be activated, a value specified in the setting file, a symbol name appearing in the program code, the type of function to be called, and the number of calls.
  • the amount of resources required for processing is, for example, CPU usage rate, CPU core usage, memory usage, disk usage, disk I / O frequency, read / write volume per unit time, communication network transmission / reception, GPU (Graphics This is the usage rate of accelerators such as Processing Unit.
  • the resource usage prediction model generation unit 201 outputs a resource usage prediction model that is, for example, a linearly coupled function expression, an expression indicating a branch condition, or an expression obtained by combining these two expressions.
  • the resource usage prediction model generation unit 201 can use various types of algorithms as learning algorithms used when deriving a prediction model. For example, the resource usage prediction model generation unit 201 can derive a prediction model using multiple regression analysis. The resource usage prediction model generation unit 201 can also derive a prediction model by classifying tasks using a regression tree and performing multiple regression analysis on each task set generated by the classification. The present embodiment is not limited by the machine learning algorithm used by the resource usage prediction model generation unit 201.
  • the resource usage prediction model generation unit 201 updates the resource usage prediction model generated during operation of the distributed processing system 100 as needed, and updates the prediction model to the resource usage prediction unit 202 as needed. May be output.
  • the resource usage amount prediction unit 202 receives information indicating the characteristics of the process as input from the master server 300, and the index of an index observed when the process is performed, such as a performance value such as a resource amount and a processing time required for the process It has a function to calculate and output a predicted value.
  • the resource usage prediction unit 202 uses the resource usage prediction model output from the resource usage prediction model generation unit 201 to calculate a predicted value of an index observed when processing is performed.
  • the resource prediction apparatus 200 of the present embodiment is realized by, for example, a CPU (Central Processing Unit) that executes processing according to a program stored in a storage medium. Further, the resource prediction device 200 may be realized by hardware.
  • a CPU Central Processing Unit
  • the resource usage prediction model generation unit 201 and the resource usage prediction unit 202 are realized by a CPU that executes processing according to program control, for example.
  • the operation of the distributed processing system 100 includes a learning process and a prediction process.
  • the learning process is a process for specifying a relationship between information indicating the characteristics of the process and an index value observed when the process is performed.
  • the prediction process is a process of predicting an index value observed when the process is executed from information indicating the feature of the process.
  • the distributed processing system 100 can perform each process asynchronously.
  • the user of the distributed processing system 100 transmits a job to be executed to the master server 300, and the master server 300 receives this job (step S1).
  • the job to be transmitted includes, for example, a processing program and input data to the program.
  • the master server 300 of the distributed processing system 100 extracts information indicating processing characteristics from the input data and processing program transmitted by the user of the distributed processing system 100. Next, the master server 300 collects information observed when the process is executed.
  • the master server 300 divides a job given by the user into a plurality of tasks, and assigns the divided tasks to each worker machine. Then, the master server 300 receives the resource usage amount and the like observed when the task is executed from each worker machine (step S2).
  • the master server 300 gives the information acquired in steps S1 and S2 to the resource usage prediction model generation unit 201 (step S3). For example, the master server 300 transmits the meta information of the input data, the configuration information of the processing program, and the observed value of the resource usage to the resource usage prediction model generation unit 201.
  • the master server 300 of the distributed processing system 100 extracts information indicating characteristics of processing and collects information observed when the processing is executed.
  • the master server 300 gives the acquired information to the resource usage prediction model generation unit 201. Note that the subject that performs the processes in steps S 1 to S 3 may not be the master server 300.
  • extraction of information indicating processing characteristics may be performed by a user of the distributed processing system 100.
  • collection of information observed when processing is executed may be performed by the worker machines 401 to 402 instead of the master server 300. In that case, the worker machines 401 to 402 directly transmit the collected information to the resource usage amount prediction model generation unit 201.
  • the resource usage prediction model generation unit 201 receives information indicating the characteristics of the process and information observed when the process is executed as inputs. Next, the resource usage prediction model generation unit 201 performs calculation based on the received information, and generates a resource usage prediction model.
  • the resource usage prediction model generation unit 201 outputs the generated resource usage prediction model to the resource usage prediction unit 202 (step S4). After the output, the distributed processing system 100 ends the learning process.
  • the user of the distributed processing system 100 transmits a job to be executed to the master server 300, and the master server 300 receives this job (step S5).
  • the job to be transmitted may not be the same as the job transmitted in step S1.
  • the master server 300 divides a job given by a user of the distributed processing system 100 into a plurality of tasks, and assigns the divided tasks to each worker machine.
  • the master server 300 considers the resource amount required for the task processing, the performance value of the processing, and the like.
  • the master server 300 in this embodiment gives information indicating the characteristics of the process (job) instructed to be executed by the user to the resource usage amount prediction unit 202. Specifically, the master server 300 transmits the meta information of the input data and the configuration information of the processing program to the resource usage amount prediction unit 202 (step S6).
  • the resource usage amount prediction unit 202 accepts information indicating processing characteristics as an input. Next, the resource usage prediction unit 202 uses the prediction model of the resource usage output from the resource usage prediction model generation unit 201, and the predicted value of the index observed when processing is performed based on the input information Calculate The resource usage amount prediction unit 202 transmits the calculated predicted value to the master server 300 (step S7).
  • the master server 300 receives the predicted value of the index observed when the processing is executed, such as the used resource amount and the processing time, transmitted from the resource usage amount prediction unit 202.
  • the master server 300 selects a process to be assigned based on the received predicted value, and selects a worker machine to be assigned. Further, the master server 300 may simultaneously perform task assignment and resource allocation to the worker machine using the received predicted value (step S8). After task assignment or the like is performed, the distributed processing system 100 ends the prediction process.
  • the resource prediction apparatus 200 is a worker machine that processes a task by accurately estimating the resource amount required by the resource usage prediction unit 202 using a resource usage prediction model.
  • the amount of resources allocated to the server can be minimized.
  • resource utilization efficiency in the entire distributed processing system is improved. Therefore, the distributed processing system can increase the number of tasks that can be executed at the same time by allocating resources to each worker machine so that the resource utilization efficiency is maximized, resulting in a job that is a set of tasks. Can be completed faster.
  • the resource prediction apparatus 200 in the present embodiment can predict the resource usage amount without using surplus resources.
  • the reason is that the resource usage prediction model generation unit 201 constructs a prediction model indicating the relationship between the task attribute information and the resource usage observed when the task is executed in the distributed processing system. This is to update the prediction model as needed.
  • the resource usage amount prediction unit 202 predicts the resource usage amount using the constructed prediction model. That is, since it is not necessary to calculate the relationship between the attribute information and the resource usage amount again at the time of prediction, the resource prediction device 200 does not use surplus resources.
  • the resource usage prediction model generation unit 201 generates a mathematical model by learning the relationship between the input data size, the type of program, and the memory usage. Furthermore, in the resource prediction apparatus 200 in this specific example, the resource usage prediction unit 202 uses the mathematical model generated by the resource usage prediction model generation unit 201 to predict the amount of memory required to execute the process.
  • the resource usage prediction model generation unit 201 in this specific example receives information indicating the size of the input data and the type of program in the process instructed by the user from the master server 300 or the like. In addition, the resource usage prediction model generation unit 201 in this specific example receives, from the master server 300 or the like, information on the amount of memory used when the process instructed by the user is executed on the worker machine.
  • FIG. 2 is a flowchart showing an operation of learning processing by the distributed processing system 100.
  • the resource usage prediction model generation unit 201 in this specific example classifies the program information included in the received program list according to the type of program (step S111).
  • FIG. 3 shows an example of a program learning list received by the resource usage prediction model generation unit 201 in this specific example.
  • FIG. 3 is an explanatory diagram illustrating an example of a program learning list received by the resource usage prediction model generation unit 201.
  • Each program learning information constituting the program learning list shown in FIG. 3 includes a program type, input data size, and memory usage.
  • the type of program is the type of program to be learned.
  • the size of input data is the size of data input to the program to be learned, and the value shown in FIG. 3 means the number of samples.
  • the memory usage is the amount of memory used when the size of the input data is input to the learning target program and the program is executed.
  • the unit of the value shown in FIG. 3 is kilobytes. (KB).
  • the program list shown in FIG. 3 includes program information relating to a program called “regression analysis A” and a program called “discriminant analysis B”.
  • the program information includes input data size information indicated by the number of samples and memory usage information.
  • the resource usage prediction model generation unit 201 performs a single regression analysis for each type of program classified from the received program list (step S113). By performing the single regression analysis, the resource usage amount prediction model generation unit 201 generates a prediction model indicating the relationship between the size of the input data and the memory usage amount.
  • the resource usage prediction model generation unit 201 generates prediction models for all types of programs classified from the received program list (step S112). When all the prediction models are generated (the determination condition in step S ⁇ b> 114 is established), the resource usage prediction model generation unit 201 outputs the generated prediction model to the resource usage prediction unit 202. After the output, the resource usage amount prediction model generation unit 201 ends the learning process.
  • FIG. 4 is a flowchart showing the operation of the prediction process by the distributed processing system 100.
  • the resource usage prediction unit 202 in this specific example uses the prediction model generated by the resource usage prediction model generation unit 201 to predict the memory usage from the type of program and the size of input data.
  • the resource usage prediction unit 202 selects a prediction model corresponding to the type of program indicated by the program prediction information included in the received program prediction list (step S121).
  • FIG. 5 shows an example of the program prediction list received by the resource usage prediction unit 202 in this specific example.
  • FIG. 5 is an explanatory diagram illustrating an example of a program prediction list received by the resource usage amount prediction unit 202.
  • Each program prediction information constituting the program prediction list shown in FIG. 5 includes a program type and input data size.
  • the type of program is the type of program to be predicted.
  • the size of the input data is the size of data to be input to the prediction target program, and the value shown in FIG. 5 means the number of samples.
  • the resource usage amount prediction unit 202 uses the regression analysis A for the prediction process corresponding to the first program prediction information. Select a prediction model for.
  • the resource usage amount prediction unit 202 gives the size of the input data to the prediction model, and calculates the predicted value of the memory usage amount (step S122).
  • the resource usage amount prediction unit 202 transmits the predicted memory usage amount to the master server 300. Based on the transmitted predicted value, the master server 300 selects a worker machine to which a process can be assigned, and instructs to limit the amount of memory used for executing the process. After transmitting the prediction value, the resource usage amount prediction unit 202 ends the prediction process.
  • the resource usage prediction model generation unit 201 generates a mathematical model by learning the relationship between the structural characteristics of the processing flow of the program and the meta information of the input data and the disk usage. To do. Furthermore, in the resource prediction apparatus 200 in this specific example, the resource usage prediction unit 202 uses the mathematical model generated by the resource usage prediction model generation unit 201 to predict the amount of disk required to execute the process.
  • the resource usage prediction model generation unit 201 in this specific example receives information indicating the structural features of the processing flow of the program instructed by the user and information indicating the meta information of the input data from the master server 300 or the like. Further, the resource usage prediction model generation unit 201 in this specific example receives, from the master server 300 or the like, information on the disk amount used when the program instructed by the user is executed on the worker machine.
  • FIG. 6 is a flowchart illustrating another operation of the learning process performed by the distributed processing system 100.
  • the resource usage prediction model generation unit 201 in this specific example interprets the structural features of the processing flow of the program indicated by the received information, and extracts the processing unit and the type of processing target (step S211).
  • FIG. 7 is an explanatory diagram showing an example of the structural features of the processing flow of the program indicated by the information received by the resource usage prediction model generation unit 201.
  • the structural features of the processing flow of the program are shown as an acyclic directed graph.
  • the processing flow shown in FIG. 7 is executed in the order of input data reading processing, binary expansion processing for a column value specified as a target attribute, and output processing of data generated by the binary expansion processing in the corresponding program. Means to be done.
  • the binary expansion process in this specific example corresponds to a process of adding a binary value column indicating whether or not the column value is a designated value.
  • the resource usage prediction model generation unit 201 in this specific example uses “data read”, “binary expansion”, “join and write” as unit of program processing from information including the contents of the acyclic directed graph shown in FIG. ”Is extracted. Further, the resource usage prediction model generation unit 201 also extracts that the target column for binary expansion is “day of the week”.
  • the resource usage prediction model generation unit 201 generates attribute information related to the process from the extracted information and the meta information of the input data (step S213).
  • FIG. 8 is an explanatory diagram illustrating an example of input data received by the resource usage prediction model generation unit 201.
  • the input data shown in FIG. 8 includes time, temperature, day of the week, and power consumption.
  • the input data size, the column name, and the column data size are obtained as meta information of the input data.
  • the number of types of values in the day of the week column is obtained.
  • the number of types of values in the day of the week column is 3 because the values in the day of the week column are three types: month, fire, and soil.
  • FIG. 9 shows an example of data in which the input data shown in FIG. 8 is binary-developed in the day of week column.
  • FIG. 9 is an explanatory diagram showing an example of input data that is binary-developed in the day of week column.
  • the input data shown in FIG. 9 includes a time, an air temperature, a binary value indicating whether or not it is a designated day of the week, and a power consumption amount.
  • the value of the day of the week is “month”. Therefore, in the input data of the first line shown in FIG. 9, the binary value for the determination content “Monday?” Towards True. Similarly, the binary value for the determination content “Tuesday?” And “Saturday?” Is False.
  • the resource usage prediction model generation unit 201 generates attribute information for all processing units of the processing flow of the received program (step S212). When all the attribute information is generated (the determination condition in step S214 is satisfied), the resource usage prediction model generation unit 201 learns by combining the generated attribute information with the information on the disk amount required for processing. Generate data.
  • FIG. 10 is an explanatory diagram illustrating an example of learning data generated by the resource usage prediction model generation unit 201.
  • the learning data shown in FIG. 10 includes the input data size, the number of binary expansion target columns, the type of values of the binary expansion target columns, the data size per column, and the disk usage.
  • the resource usage amount prediction model generation unit 201 generates a prediction model of the disk usage amount using, for example, the learning data illustrated in FIG. 10 (Step S215).
  • the resource usage prediction model generation unit 201 sets the number of binary expansion target columns to x1, the type of values of the binary expansion target columns to x2, the data size per column to a, and the input data size to b.
  • a prediction model y a ⁇ x2 ⁇ a ⁇ x1 + b is output.
  • the output prediction model means that the data size obtained by adding the data size (a ⁇ x2 ⁇ a ⁇ x1) that is increased when the binary expansion is performed to the input data size b corresponds to the disk usage. To do.
  • the resource usage prediction model generation unit 201 outputs the generated prediction model to the resource usage prediction unit 202. After the output, the resource usage amount prediction model generation unit 201 ends the learning process.
  • FIG. 11 is a flowchart illustrating another operation of the prediction process performed by the distributed processing system 100.
  • the resource usage prediction unit 202 in this specific example predicts the disk usage by using the prediction model generated by the resource usage prediction model generation unit 201.
  • the resource usage prediction unit 202 receives as input information indicating the structural features of the processing flow of the program that the user has instructed to execute and information indicating the meta information of the input data (step S221). .
  • FIG. 12 is an explanatory diagram illustrating an example of input data received by the resource usage amount prediction unit 202.
  • the resource usage amount prediction unit 202 gives an input data size, the number of binary development target columns, the value type of the binary development target column, the data size per column to the prediction model, and calculates the predicted value of the disk usage amount. calculate.
  • the resource usage amount prediction unit 202 transmits the predicted disk usage amount to the master server 300.
  • the master server 300 selects a worker machine to which a process can be assigned based on the transmitted predicted value, and instructs a limit on the amount of disk used for the process.
  • the resource usage amount prediction unit 202 ends the prediction process.
  • the resource usage prediction unit 202 inputs task processing information required when a task, which is a processing unit in distributed processing, is input, and predicts the resource amount used when the task is processed. Because.
  • a resource use amount prediction model indicating the relationship between past task processing information and the resource amount used when the task corresponding to the past task processing information is processed is used.
  • the resource prediction apparatus 20 in this embodiment includes a resource usage amount prediction unit 22 (for example, a resource usage amount prediction unit 202).
  • the resource usage amount prediction unit 22 receives task processing information obtained when a task, which is a processing unit in distributed processing, is processed, and determines the resource amount used when the task is processed as past task processing information. And a resource use amount prediction model indicating a relationship between the resource amount used when the task corresponding to the past task processing information is processed.
  • the resource prediction apparatus can predict the amount of resources required for processing a task, which is a processing unit in distributed processing, without using surplus resources.
  • the resource prediction device 20 receives the past task processing information and the resource amount used when the task corresponding to the past task processing information is processed, and generates a resource usage prediction model.
  • a usage amount prediction model generation unit (for example, a resource usage amount prediction model generation unit 201) may be provided.
  • the resource prediction device 20 has a resource usage amount indicating a relationship between past task processing information and a resource usage amount observed when a task corresponding to the past task processing information is processed. Predictive models can be created.
  • the task processing information may include meta information that is information related to the configuration of input data in the processing of the task corresponding to the task processing information, and configuration information of the program used for the task processing.
  • the resource prediction apparatus 20 predicts the resource usage based on meta information that is information related to the configuration of input data in task processing and configuration information on a program used for task processing. it can.
  • the resource usage prediction model generation unit reflects the relationship between the past task processing information and the processing time of the task when the task corresponding to the past task processing information is processed in the resource usage prediction model.
  • the resource usage amount prediction unit 22 may predict a processing time of a task corresponding to the input task processing information using a resource usage amount prediction model.
  • the resource prediction apparatus can predict the processing time of a task, which is a processing unit in distributed processing.
  • the resource prediction apparatus 20 in this embodiment may be included in the distributed processing system 10 as shown in FIG.
  • the distributed processing system 10 includes a resource prediction device 20 and is a distributed processing system that performs distributed processing.
  • the resource prediction apparatus 20 includes a resource usage amount prediction unit 22 (for example, a resource usage amount prediction unit 202).
  • the resource usage amount prediction unit 22 receives task processing information obtained when a task, which is a processing unit in distributed processing, is processed, and determines the resource amount used when the task is processed as past task processing information. And a resource use amount prediction model indicating a relationship between the resource amount used when the task corresponding to the past task processing information is processed.
  • the distributed processing system can predict the amount of resources required for processing a task, which is a processing unit in distributed processing, without using surplus resources.
  • the resource prediction device 20 receives the past task processing information and the resource amount used when the task corresponding to the past task processing information is processed, and generates a resource usage prediction model.
  • a usage amount prediction model generation unit (for example, a resource usage amount prediction model generation unit 201) may be provided.
  • each component of each device represents a functional unit block. Some or all of the components of each device (system) are realized by any combination of an information processing device 500 and a program as shown in FIG. 17, for example.
  • the information processing apparatus 500 includes the following configuration as an example.
  • CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • a program 504 loaded into the RAM 503
  • a storage device 505 for storing the program 504
  • a drive device 507 for reading / writing the recording medium 506
  • Communication interface 508 connected to the communication network 509
  • An input / output interface 510 for inputting / outputting data -Bus 511 connecting each component
  • Each component of each device in each embodiment is realized by the CPU 501 acquiring and executing a program 504 that realizes these functions.
  • the program 504 that realizes the function of each component of each device is stored in advance in the storage device 505 or the RAM 503, for example, and is read by the CPU 501 as necessary.
  • each device may be realized by an arbitrary combination of the information processing device 500 and a program that are separately provided for each component.
  • a plurality of constituent elements included in each device may be realized by an arbitrary combination of one information processing device 500 and a program.
  • some or all of the components of each device are realized by other general-purpose or dedicated circuits, processors, and the like, or combinations thereof. These may be configured by a single chip or may be configured by a plurality of chips connected via a bus.
  • each component of each device may be realized by a combination of the above-described circuit and the like and a program.
  • the plurality of information processing devices and circuits may be centrally arranged or distributedly arranged. Also good.
  • the information processing apparatus, the circuit, and the like may be realized as a form in which each is connected via a communication network, such as a client and server system and a cloud computing system.
  • the present invention has been described above using the above-described embodiment as an exemplary example. However, the present invention is not limited to the above-described embodiment.

Abstract

[課題]分散処理における処理単位であるタスクの処理に要する資源量を、余剰の資源を使用せずに予測できる資源予測装置を提供する。 [解決手段]資源予測装置20は、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する資源使用量予測部22を備える。

Description

資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム
 本発明は、計算機の資源における割当量を予測する装置等に関し、特に計算機クラスタ等で稼働する分散処理システムにおける処理割り当てに使用される資源予測装置等に関する。
 ジョブを分割することによって生成された複数のタスクが、複数の計算機(以下、処理サーバという。)に分散される分散処理システムが開発されている。分散処理システムは、タスクを処理する処理サーバと、タスクの割り当てを制御するマスタサーバとを含む。分散処理システムでは、分散された各タスクが、各処理サーバで実行される。
 タスクを実行できる状態になると、処理サーバには、分散処理システムのマスタサーバから新たなタスクが割り当てられる。割り当てられたタスクが確実に処理されるために、タスクが割り当てられた処理サーバには、タスクの処理に要する計算機資源(以下、単に「資源」と記載)を確保することが求められる。資源は、例えば、CPU(Central Processing Unit)コア、メモリ、ディスクである。資源が確保されていない場合、処理サーバのタスクの処理性能が劣化したり、タスクが途中で異常終了したりすることがある。
 処理サーバがタスクの処理に要する資源を確保するために、タスクの割り当て元であるマスタサーバには、割り当て先の処理サーバがタスクの処理に要する資源量を予め把握することが求められる。しかし、通常タスクの処理に要する資源量をタスクの実行前に把握することは困難であるため、タスクの処理に要する資源量を推定する技術が求められる。
 特許文献1~3および非特許文献1~2には、タスクの処理に要する資源量の推定に関連する技術が記載されている。
 特許文献1は、過去に実行されたタスクにおいて使用された資源量のログから、資源使用量と負荷値の関係を推定する技術を開示する。
 特許文献2は、プログラムが生じる負荷特性を推定するシステムを開示する。
 特許文献3は、時間区間毎の物理リソースのピーク使用量を予測する予測部を含む仮想マシン配置構成制御装置を開示する。
 非特許文献1は、ウェーブレット変換を用いて仮想マシンが使用した資源量の推移情報から資源量推移の基底関数を導出し、導出された基底関数を用いることによって将来の必要資源量を推定する技術を開示する。
 非特許文献2は、協調フィルタリングを用いて、過去のタスク実行履歴と今後割り当てる予定のタスクの短時間試験実行の結果から、サービスレベル目標(SLO:Service Level Objective)を満たすために必要な資源量を推定する技術を開示する。
特許第5354138号公報 国際公開第2011/071010号 特開2012-159928号公報
Hiep Nguyen, Zhiming Shen, Xiaohui Gu, Sethuraman Subbiah, John Wilkes. "AGILE: elastic distributed resource scaling for Infrastructure-as-a-Service." In Proc. of the 10th International Conference on Autonomic Computing (ICAC ’13), pp. 69-82, 2013. Christina Delimitrou and Christos Kozyrakis. "Quasar: Resource-Efficient and QoS-Aware Cluster Management." In Proc. of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’14), pp.127-144, 2014.
 特許文献1および特許文献2が開示する技術は、タスクが処理サーバに与える負荷を予測できるが、タスクの処理に要する資源量までは予測できない。
 特許文献3が開示する技術は、仮想マシンが使用する資源量を予測の対象にしており、分散処理におけるタスクの処理に要する資源量を予測の対象にしていない。
 非特許文献1が開示する技術は、仮想マシンにおいて稼働する処理サーバを対象にしており、分散処理のタスクを処理する処理サーバを対象にしていない。
 非特許文献2が開示する技術は、分散処理のタスクを対象にしている。しかし、非特許文献2が開示する技術を使用した場合、資源使用量の予測のために余剰な資源が求められる。その理由は、資源使用量を予測する際、非特許文献2に記載されている技術は、サーバや分散処理のタスク等の予測の対象の属性情報を、予測の都度観測するためである。予測の対象の属性情報は、例えば、処理の実行に要するメモリ量の単位時間当たりの増加率である。
 そこで、本発明は、上述した課題を解決することを目的とする。即ち、本発明は、分散処理における処理単位であるタスクの処理に要する資源量を、余剰の資源を使用せずに予測できる資源予測装置等を提供することを目的とする。
 上記課題を解決するため、本発明の第1の特徴は、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する資源使用量予測部を備える資源予測装置である。
 本発明の第2の特徴は、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する資源予測方法である。
 本発明の第3の特徴は、コンピュータに、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する予測処理を実行させる資源予測プログラム記録媒体である。
 本発明の第4の特徴は、資源予測装置を含み、分散処理を行う分散処理システムであって、資源予測装置は、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する資源使用量予測部を含む分散処理システムである。
 本発明によれば、分散処理における処理単位であるタスクの処理に要する資源量を、余剰の資源を使用せずに予測することが可能となる。
本発明の第1の実施形態に係る資源予測装置を含む分散処理システムの構成例を示すブロック図である。 分散処理システムによる学習処理の動作を示すフローチャートである。 資源使用量予測モデル生成部が受信するプログラム学習リストの一例を示す説明図である。 分散処理システムによる予測処理の動作を示すフローチャートである。 資源使用量予測部が受信するプログラム予測リストの一例を示す説明図である。 分散処理システムによる学習処理の他の動作を示すフローチャートである。 資源使用量予測モデル生成部が受信する情報が示すプログラムの処理フローの構造的特徴の一例を示す説明図である。 資源使用量予測モデル生成部が受信する入力データの一例を示す説明図である。 曜日の列で二値展開された入力データの一例を示す説明図である。 資源使用量予測モデル生成部が生成する学習データの一例を示す説明図である。 分散処理システムによる予測処理の他の動作を示すフローチャートである。 資源使用量予測部が受信する入力データの一例を示す説明図である。 本発明の第2の実施形態に係る資源予測装置の概要を示すブロック図である。 本発明の第2の実施形態に係る資源予測装置を含む分散処理システムの概要を示すブロック図である。 分散処理システムによる学習処理の動作を示すフローチャートである。 分散処理システムによる予測処理の動作を示すフローチャートである。 本発明の実施形態に係る資源予測装置等を実施可能な情報処理装置の概要を示すブロック図である。
<第1の実施形態>
[構成の説明]
 以下、本発明の第1の実施形態を、図面を参照して説明する。図1は、本実施形態に係る資源予測装置200を含む分散処理システム100の構成例を示すブロック図である。図1に示す分散処理システム100は、資源予測装置200と、マスタサーバ300と、ワーカマシン401~402とを含む。
 本実施形態における資源予測装置200は、図1に示すように、1台以上の計算機(マスタサーバ300、ワーカマシン401~402等)で構成された分散処理システムにおいて動作する。なお、資源予測装置200は、分散処理システムに含まれずに、対象にする分散処理システムの外部に設けられていてもよい。分散処理システムの外部に設けられている場合、資源予測装置200は、対象にする分散処理システムと通信可能に接続する。
 また、本実施形態における分散処理システム100は、図1に示すように、マスタサーバ300と、複数台のワーカマシン401~402とを含む。
 マスタサーバ300は、ワーカマシン401~402にタスクを割り当てる機能を有する。ワーカマシン401~402は、マスタサーバ300から割り当てられたタスクを実行し、処理結果を出力する機能を有する。
 なお、分散処理システム100は、マスタサーバを1台以上含んでもよい。また、分散処理システム100は、冗長化された複数台のマスタサーバを含んでもよい。また、ピアツーピア(P2P:Peer to Peer)システムのように、分散処理システム100におけるマスタサーバ300とワーカマシン401~402は、区別されていなくてもよい。
 図1に示すように、資源予測装置200は、資源使用量予測モデル生成部201と、資源使用量予測部202とを含む。
 資源使用量予測モデル生成部201は、資源使用量の予測モデルを出力する機能を有する。資源使用量予測モデル生成部201は、処理の特徴を示す情報と、処理が行われた際に観測される情報とをマスタサーバ300からの入力として受け付ける。次いで、資源使用量予測モデル生成部201は、受け付けた情報に基づいて、機械学習アルゴリズム等を用いて計算を行い、資源使用量の予測モデルを生成する。
 処理の特徴を示す情報は、例えば、処理対象である入力データのメタ情報と、処理プログラムの構成情報である。処理が行われた際に観測される情報は、例えば、処理に要した資源量と、処理時間等の性能値である。
 入力データのメタ情報は、例えば、行列形式の入力データにおける列ラベル、行数や列数といったデータサイズに関する情報、各列の平均値、分散、最大値、最小値、濃度である。
 処理プログラムの構成情報は、例えば、起動対象のプログラムに与えられる引数、設定ファイルで指定された値、プログラムコードに現れるシンボル名、呼び出される関数の種類と呼び出される回数である。
 処理に要した資源量は、例えば、CPU使用率、CPUコア使用数、メモリ使用量、ディスク使用量、ディスクI/Oの発生頻度、単位時間当たりの読み書き量、通信ネットワーク送受信量、GPU(Graphics Processing Unit)等のアクセラレータの使用率である。
 資源使用量予測モデル生成部201が出力する資源使用量の予測モデルは、例えば、線形結合された関数式や、分岐条件を示す式や、この二つの式が組み合わせられた式である。
 資源使用量予測モデル生成部201は、予測モデルを導出する際に使用する学習アルゴリズムに様々な種類のアルゴリズムを使用できる。例えば、資源使用量予測モデル生成部201は、重回帰分析を用いて予測モデルを導出できる。また、資源使用量予測モデル生成部201は、回帰木を用いてタスクを分類し、分類により生成されたそれぞれのタスク集合に対して重回帰分析を行うことによっても予測モデルを導出できる。本実施形態は、資源使用量予測モデル生成部201が用いる機械学習アルゴリズムによって限定されない。
 なお、資源使用量予測モデル生成部201は、必要に応じて、分散処理システム100の稼働中に生成した資源使用量の予測モデルを随時更新し、更新の都度予測モデルを資源使用量予測部202に出力してもよい。
 資源使用量予測部202は、処理の特徴を示す情報をマスタサーバ300からの入力として受け付け、処理に要する資源量や処理時間等の性能値等、処理が行われた際に観測される指標の予測値を計算し、出力する機能を有する。資源使用量予測部202は、資源使用量予測モデル生成部201が出力した資源使用量の予測モデルを用いて、処理が行われた際に観測される指標の予測値を計算する。
 なお、本実施形態の資源予測装置200は、例えば、記憶媒体に格納されているプログラムに従って処理を実行するCPU(Central Processing Unit)によって実現される。また、資源予測装置200は、ハードウェアによって実現されてもよい。
 また、資源使用量予測モデル生成部201および資源使用量予測部202は、例えば、プログラム制御に従って処理を実行するCPUによって実現される。
[動作の説明]
 以下、本実施形態の分散処理システム100の動作を、図面を参照して説明する。分散処理システム100の動作は、学習処理と、予測処理とで構成される。
 学習処理は、処理の特徴を示す情報と、処理が実施された際に観測された指標値との関係を特定する処理である。予測処理は、処理の特徴を示す情報から、処理が実施された際に観測される指標値を予測する処理である。分散処理システム100は、各処理を非同期に実施できる。
 最初に、図15のフローチャートを参照して、学習処理を説明する。分散処理システム100の利用者は、実行したいジョブをマスタサーバ300に送信し、マスタサーバ300がこのジョブを受信する(ステップS1)。送信されるジョブには、例えば、処理プログラムとプログラムへの入力データが含まれる。
 分散処理システム100のマスタサーバ300は、分散処理システム100の利用者が送信した入力データと処理プログラムから、処理の特徴を示す情報を抽出する。次いで、マスタサーバ300は、処理が実行された際に観測された情報を収集する。
 具体的には、マスタサーバ300は、利用者から与えられたジョブを複数のタスクに分割し、分割されたタスクを各ワーカマシンに割り当てる。そして、マスタサーバ300は、各ワーカマシンから、タスクを実行した際に観測された資源使用量等を受信する(ステップS2)。
 マスタサーバ300は、ステップS1~S2で取得した情報を資源使用量予測モデル生成部201に与える(ステップS3)。例えば、マスタサーバ300は、入力データのメタ情報、処理プログラムの構成情報および資源使用量の観測値を、資源使用量予測モデル生成部201に送信する。
 上記のように、分散処理システム100のマスタサーバ300は、処理の特徴を示す情報の抽出や、処理が実行された際に観測された情報の収集を行う。マスタサーバ300は、取得した情報を資源使用量予測モデル生成部201に与える。なお、ステップS1~S3における処理を行う主体は、マスタサーバ300でなくてもよい。
 例えば、処理の特徴を示す情報の抽出は、分散処理システム100の利用者が行ってもよい。また、処理が実行された際に観測された情報の収集は、マスタサーバ300の代わりに、ワーカマシン401~402が行ってもよい。その場合、ワーカマシン401~402は、収集した情報を直接資源使用量予測モデル生成部201に送信する。
 資源使用量予測モデル生成部201は、処理の特徴を示す情報と、処理が実行された際に観測された情報とを入力として受け付ける。次いで、資源使用量予測モデル生成部201は、受け付けた情報に基づいて計算を行い、資源使用量の予測モデルを生成する。
 資源使用量予測モデル生成部201は、生成した資源使用量の予測モデルを資源使用量予測部202に出力する(ステップS4)。出力した後、分散処理システム100は、学習処理を終了する。
 次に、図16のフローチャートを参照して、予測処理を説明する。分散処理システム100の利用者は、実行したいジョブをマスタサーバ300に送信し、マスタサーバ300がこのジョブを受信する(ステップS5)。送信されるジョブは、ステップS1で送信されたジョブと同じでなくてもよい。
 マスタサーバ300は、分散処理システム100の利用者から与えられたジョブを複数のタスクに分割し、分割されたタスクを各ワーカマシンに割り当てる。ここで、分割されたタスクが割り当てられる際、マスタサーバ300がタスクの処理に要する資源量や処理の性能値等を考慮する場合を想定する。
 本実施形態におけるマスタサーバ300は、利用者から実行を指示された処理(ジョブ)の特徴を示す情報を資源使用量予測部202に与える。具体的には、マスタサーバ300は、入力データのメタ情報と処理プログラムの構成情報を資源使用量予測部202に送信する(ステップS6)。
 資源使用量予測部202は、処理の特徴を示す情報を入力として受け付ける。次いで、資源使用量予測部202は、資源使用量予測モデル生成部201が出力した資源使用量の予測モデルを用いて、入力情報を基に処理が行われた際に観測される指標の予測値を計算する。資源使用量予測部202は、計算した予測値をマスタサーバ300に対して送信する(ステップS7)。
 マスタサーバ300は、資源使用量予測部202が送信した、使用資源量や処理時間等の、処理が実行された際に観測される指標の予測値を受信する。
 マスタサーバ300は、受信した予測値に基づいて、割り当てる処理を選択し、割り当て先のワーカマシンを選択する。また、マスタサーバ300は、受信した予測値を用いて、ワーカマシンへのタスク割り当てと資源の配分を同時に実施してもよい(ステップS8)。タスク割り当て等が行われた後、分散処理システム100は、予測処理を終了する。
 本実施形態における資源予測装置200は、資源使用量予測部202がタスクの処理に要する資源量を、資源使用量の予測モデルを用いて、精度よく推定することによって、タスクを処理するワーカマシンに対して割り当てられる資源量を最小の量にすることができる。余分な資源量がワーカマシンに割り当てられない場合、分散処理システム全体における資源の利用効率が向上する。従って、分散処理システムは、例えば、資源の利用効率が最大になるように各ワーカマシンに資源を割り当てることによって、同時に実行できるタスク数を増加させることができ、結果的にタスクの集合であるジョブの完了時間を早めることができる。
 また、本実施形態における資源予測装置200は、余剰の資源を使用せずに資源使用量を予測できる。その理由は、資源使用量予測モデル生成部201が、タスクの属性情報と、分散処理システムでタスクが実行された際に観測された資源使用量との関係を示す予測モデルを構築し、システム稼働中に予測モデルを随時更新するためである。また、資源使用量予測部202が、構築された予測モデルを用いて資源使用量を予測するためである。すなわち、予測の際に改めて属性情報と資源使用量との関係を計算しなくてもよいため、資源予測装置200は、余剰の資源を使用しない。
 (具体例1)
 本具体例における資源予測装置200では、資源使用量予測モデル生成部201が、入力データサイズおよびプログラムの種類とメモリ使用量との関係を学習して数理モデルを生成する。さらに、本具体例における資源予測装置200では、資源使用量予測部202が、資源使用量予測モデル生成部201の生成した数理モデルを用いて、処理の実行に要するメモリ量を予測する。
 本具体例における資源使用量予測モデル生成部201は、ユーザが実行を指示した処理における入力データのサイズとプログラムの種類を示す情報を、マスタサーバ300等から受信する。また、本具体例における資源使用量予測モデル生成部201は、ユーザが実行を指示した処理がワーカマシンで実行された際に使用されたメモリ量の情報を、マスタサーバ300等から受信する。
 最初に、本具体例における分散処理システム100による具体的な学習処理を、図2を参照して説明する。図2は、分散処理システム100による学習処理の動作を示すフローチャートである。
 本具体例における資源使用量予測モデル生成部201は、受信したプログラムリストに含まれるプログラム情報を、プログラムの種類で分類する(ステップS111)。
 本具体例における資源使用量予測モデル生成部201が受信するプログラム学習リストの例を図3に示す。図3は、資源使用量予測モデル生成部201が受信するプログラム学習リストの一例を示す説明図である。
 図3に示すプログラム学習リストを構成する各プログラム学習情報は、プログラムの種類と、入力データのサイズと、メモリ使用量とで構成される。プログラムの種類は、学習対象になるプログラムの種類である。
 入力データのサイズは、学習対象のプログラムに対して入力されたデータのサイズであり、図3に示す値はサンプル数を意味する。メモリ使用量は、学習対象のプログラムに対して入力データのサイズが示す大きさのデータが入力され、プログラムが実行された際に使用されたメモリ量であり、図3に示す値の単位はキロバイト(KB)である。
 図3に示すプログラムリストには、「回帰分析A」というプログラムと、「判別分析B」というプログラムに関するプログラム情報が含まれている。プログラム情報には、サンプル数で示される入力データのサイズの情報と、メモリ使用量の情報が含まれている。
 次いで、資源使用量予測モデル生成部201は、受信したプログラムリストから分類されたプログラムの種類ごとに単回帰分析を行う(ステップS113)。単回帰分析を行うことによって、資源使用量予測モデル生成部201は、入力データのサイズとメモリ使用量との関係を示す予測モデルを生成する。
 例えば、図3に示すプログラムリストが受信された場合、資源使用量予測モデル生成部201が生成する回帰分析Aに関する予測モデルは、サンプル数をx、メモリ使用量をyとすると、y=5.6638x+51130になる。
 資源使用量予測モデル生成部201は、受信したプログラムリストから分類された全てのプログラムの種類に対して、予測モデルを生成する(ステップS112)。全ての予測モデルを生成した場合(ステップS114における判定条件が成立)、資源使用量予測モデル生成部201は、生成した予測モデルを資源使用量予測部202に出力する。出力した後、資源使用量予測モデル生成部201は、学習処理を終了する。
 次に、本具体例における分散処理システム100による具体的な予測処理を、図4を参照して説明する。図4は、分散処理システム100による予測処理の動作を示すフローチャートである。
 本具体例における資源使用量予測部202は、資源使用量予測モデル生成部201が生成した予測モデルを用いて、プログラムの種類と入力データのサイズから、メモリ使用量を予測する。資源使用量予測部202は、受信したプログラム予測リストに含まれるプログラム予測情報が示すプログラムの種類に対応する予測モデルを選択する(ステップS121)。
 本具体例における資源使用量予測部202が受信するプログラム予測リストの例を図5に示す。図5は、資源使用量予測部202が受信するプログラム予測リストの一例を示す説明図である。
 図5に示すプログラム予測リストを構成する各プログラム予測情報は、プログラムの種類と、入力データのサイズとで構成される。プログラムの種類は、予測対象になるプログラムの種類である。入力データのサイズは、予測対象のプログラムに対して入力される予定のデータのサイズであり、図5に示す値はサンプル数を意味する。
 例えば、図5に示すプログラム予測リストの最初のプログラム予測情報のプログラムの種類は回帰分析Aであるため、資源使用量予測部202は、最初のプログラム予測情報に対応する予測処理において回帰分析A用の予測モデルを選択する。
 次いで、資源使用量予測部202は、予測モデルに対して入力データのサイズを与え、メモリ使用量の予測値を計算する(ステップS122)。
 例えば、図5に示すプログラム予測リストの最初のプログラム予測情報の入力データのサイズxは、x=1500である。回帰分析A用の予測モデルがy=5.6638x+51130である場合、最初のプログラム予測情報に対応する処理において使用されるメモリ量yは、5.6638×1500+51130=59625.7(KB)になる。
 次いで、資源使用量予測部202は、予測したメモリ使用量をマスタサーバ300に送信する。マスタサーバ300は、送信された予測値に基づいて、処理を割り当てることができるワーカマシンを選択したり、処理の実行に使用されるメモリ量を制限するように指示したりする。予測値を送信した後、資源使用量予測部202は、予測処理を終了する。
 (具体例2)
 本具体例における資源予測装置200では、資源使用量予測モデル生成部201が、プログラムの処理フローの構造的特徴および入力データのメタ情報と、ディスク使用量との関係を学習して数理モデルを生成する。さらに、本具体例における資源予測装置200では、資源使用量予測部202が、資源使用量予測モデル生成部201の生成した数理モデルを用いて、処理の実行に要するディスク量を予測する。
 本具体例における資源使用量予測モデル生成部201は、ユーザが実行を指示したプログラムの処理フローの構造的特徴を示す情報と入力データのメタ情報を示す情報を、マスタサーバ300等から受信する。また、本具体例における資源使用量予測モデル生成部201は、ユーザが実行を指示したプログラムがワーカマシンで実行された際に使用されたディスク量の情報を、マスタサーバ300等から受信する。
 最初に、本具体例における分散処理システム100による具体的な学習処理を、図6を参照して説明する。図6は、分散処理システム100による学習処理の他の動作を示すフローチャートである。
 本具体例における資源使用量予測モデル生成部201は、受信した情報が示すプログラムの処理フローの構造的特徴を解釈して、処理の単位と処理対象の種類を抽出する(ステップS211)。
 図7は、資源使用量予測モデル生成部201が受信する情報が示すプログラムの処理フローの構造的特徴の一例を示す説明図である。図7には、プログラムの処理フローの構造的特徴が、無閉路有向グラフで示されている。
 図7に示す処理フローは、対応するプログラムにおいて、入力データの読み込み処理、対象属性として指定された列の値に対する二値展開処理、二値展開処理により生成されたデータの出力処理の順に処理が行われることを意味する。ここで、本具体例における二値展開処理は、列の値に対して、指定された値であるか否かを示すバイナリ値の列を追加する処理に相当する。
 本具体例における資源使用量予測モデル生成部201は、図7に示す無閉路有向グラフの内容が含まれる情報から、プログラムの処理の単位として「データ読み込み」、「二値展開」、「結合と書き出し」の3種類があることを抽出する。また、資源使用量予測モデル生成部201は、二値展開の対象の列が「曜日」であることも抽出する。
 次いで、資源使用量予測モデル生成部201は、上記の抽出された情報と入力データのメタ情報から、処理に関する属性情報を生成する(ステップS213)。
 図8は、資源使用量予測モデル生成部201が受信する入力データの一例を示す説明図である。図8に示す入力データは、時刻と、気温と、曜日と、消費電力量とで構成される。
 本具体例では、入力データのメタ情報として、入力データサイズと、列の名前と、列のデータサイズとが求められる。また、図8に示す入力データがプログラムに入力される場合、曜日列の値の種類数が求められる。図8に示す入力データにおいて、曜日列の値の種類数は、曜日列の値が月、火、土の3種類であることから、3になる。
 図8に示す入力データが、曜日の列で二値展開されたデータの例を図9に示す。図9は、曜日の列で二値展開された入力データの一例を示す説明図である。図9に示す入力データは、時刻と、気温と、指定された曜日であるか否かを示すバイナリ値と、消費電力量とで構成される。
 例えば、図8に示す最初の行の入力データにおいて、曜日の値は「月」である。よって、図9に示す最初の行の入力データにおいて、判定内容が「月曜日か?」に対するバイナリ値はTrueになる。同様に、判定内容が「火曜日か?」および「土曜日か?」に対するバイナリ値はFalseになる。
 資源使用量予測モデル生成部201は、受信するプログラムの処理フローの全ての処理の単位に対して、属性情報を生成する(ステップS212)。全ての属性情報を生成した場合(ステップS214における判定条件が成立)、資源使用量予測モデル生成部201は、生成された属性情報に、処理に要したディスク量の情報を結合することによって、学習データを生成する。
 図10は、資源使用量予測モデル生成部201が生成する学習データの一例を示す説明図である。図10に示す学習データは、入力データサイズと、二値展開対象列の数と、二値展開対象列の値の種類と、一列当たりのデータサイズと、ディスク使用量とで構成される。資源使用量予測モデル生成部201は、例えば、図10に示す学習データを用いて、ディスク使用量の予測モデルを生成する(ステップS215)。
 本具体例において、資源使用量予測モデル生成部201は、二値展開対象列の数をx1、二値展開対象列の値の種類をx2、一列当たりのデータサイズをa、入力データサイズをb、ディスク使用量をyとした場合、y=a×x2-a×x1+bという予測モデルを出力する。出力された予測モデルは、入力データサイズbに、二値展開された際に増加するデータサイズ(a×x2-a×x1)が加えられたデータサイズが、ディスク使用量に相当することを意味する。
 資源使用量予測モデル生成部201は、生成した予測モデルを資源使用量予測部202に出力する。出力した後、資源使用量予測モデル生成部201は、学習処理を終了する。
 次に、本具体例における分散処理システム100による具体的な予測処理を、図11を参照して説明する。図11は、分散処理システム100による予測処理の他の動作を示すフローチャートである。
 本具体例における資源使用量予測部202は、資源使用量予測モデル生成部201が生成した予測モデルを用いて、ディスク使用量を予測する。ディスク使用量を予測する際、資源使用量予測部202は、ユーザが実行を指示したプログラムの処理フローの構造的特徴を示す情報と入力データのメタ情報を示す情報を入力とする(ステップS221)。
 図12は、資源使用量予測部202が受信する入力データの一例を示す説明図である。資源使用量予測部202は、予測モデルに対して入力データサイズ、二値展開対象列の数、二値展開対象列の値の種類、一列当たりのデータサイズを与え、ディスク使用量の予測値を計算する。
 ディスク使用量の予測モデルがy=a×x2-a×x1+bである場合を例に、ディスク使用量の予測値の計算例を説明する。ここで、予測モデルにおけるx1は二値展開対象列の数、x2は二値展開対象列の値の種類、aは一列当たりのデータサイズ、bは入力データサイズ、yはディスク使用量である。
 図12に示す最初の行の入力データに対応する処理の場合、ディスク使用量の予測値y1は、y1=8×73-8×4+100=652(KB)になる。また、図12に示す二番目の行の入力データに対応する処理の場合、ディスク使用量の予測値y2は、y2=1×25-1×2+25=48(KB)になる。
 次いで、資源使用量予測部202は、予測したディスク使用量をマスタサーバ300に送信する。マスタサーバ300は、送信された予測値に基づいて、処理を割り当てることができるワーカマシンを選択したり、処理に使用されるディスク量の制限を指示したりする。予測値を送信した後、資源使用量予測部202は、予測処理を終了する。
 上述のように、本発明の第1の実施形態によると、分散処理における処理単位であるタスクの処理に要する資源量を、余剰の資源を使用せずに予測することができる。この理由は、資源使用量予測部202が、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を予測するからである。当該予測には、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量の予測モデルが用いられる。
 <第2の実施形態>
 本発明の第2の実施形態に係る資源予測装置20について、図13を参照して説明する。本実施形態における資源予測装置20は、資源使用量予測部22(例えば、資源使用量予測部202)を備える。資源使用量予測部22は、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量の予測モデルを用いて予測する。
 そのような構成により、資源予測装置は、分散処理における処理単位であるタスクの処理に要する資源量を、余剰の資源を使用せずに予測できる。
 また、資源予測装置20は、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量とを入力として、資源使用量の予測モデルを生成する資源使用量予測モデル生成部(例えば、資源使用量予測モデル生成部201)を備えてもよい。
 そのような構成により、資源予測装置20は、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に観測された資源の使用量との関係を示す資源使用量の予測モデルを作成できる。
 また、タスク処理情報には、タスク処理情報に対応するタスクの処理における入力データの構成に関する情報であるメタ情報と、タスクの処理に使用されるプログラムの構成情報とが含まれていてもよい。
 そのような構成により、資源予測装置20は、タスクの処理における入力データの構成に関する情報であるメタ情報と、タスクの処理に使用されるプログラムの構成情報とに基づいて、資源の使用量を予測できる。
 また、資源使用量予測モデル生成部は、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際のタスクの処理時間との関係を資源使用量の予測モデルに反映し、資源使用量予測部22は、入力としたタスク処理情報に対応するタスクの処理時間を、資源使用量の予測モデルを用いて予測してもよい。
 そのような構成により、資源予測装置は、分散処理における処理単位であるタスクの処理時間を予測できる。
 本実施形態における資源予測装置20は、図14に示すように分散処理システム10に含まれていてもよい。分散処理システム10は、資源予測装置20を含み、分散処理を行う分散処理システムである。資源予測装置20は、資源使用量予測部22(例えば、資源使用量予測部202)を含む。資源使用量予測部22は、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量の予測モデルを用いて予測する。
 そのような構成により、分散処理システムは、分散処理における処理単位であるタスクの処理に要する資源量を、余剰の資源を使用せずに予測できる。
 また、資源予測装置20は、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量とを入力として、資源使用量の予測モデルを生成する資源使用量予測モデル生成部(例えば、資源使用量予測モデル生成部201)を備えてもよい。
 そのような構成により、分散処理システムは、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に観測された資源の使用量との関係を示す資源使用量予測モデルを作成できる。
 本発明の各実施形態において、各装置(システム)の各構成要素 は、機能単位のブロックを示している。各装置(システム)の各構成要素の一部又は全部は、例えば図17に示すような情報処理装置500とプログラムとの任意の組み合わせにより実現される。情報処理装置500は、一例として、以下のような構成を含む。
  ・CPU(Central Processing Unit)501
  ・ROM(Read Only Memory)502
  ・RAM(Random Access Memory)503
  ・RAM503にロードされるプログラム504
  ・プログラム504を格納する記憶装置505
  ・記録媒体506の読み書きを行うドライブ装置507
  ・通信ネットワーク509と接続する通信インターフェース508
  ・データの入出力を行う入出力インターフェース510
  ・各構成要素を接続するバス511
 各実施形態における各装置の各構成要素は、これらの機能を実現するプログラム504をCPU501が取得して実行することで実現される。各装置の各構成要素の機能を実現するプログラム504は、例えば、予め記憶装置505やRAM503に格納されており、必要に応じてCPU501が読み出す。なお、プログラム504は、通信ネットワーク509を介してCPU501に供給されてもよいし、予め記録媒体506に格納されており、ドライブ装置507が当該プログラムを読み出してCPU501に供給してもよい。
 各装置の実現方法には、様々な変形例がある。例えば、各装置は、構成要素毎にそれぞれ別個の情報処理装置500とプログラムとの任意の組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つの情報処理装置500とプログラムとの任意の組み合わせにより実現されてもよい。
 また、各装置の各構成要素の一部又は全部は、その他の汎用または専用の回路 、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップ によって構成されてもよいし、バスを介して接続される複数のチップ によって構成されてもよい。
 各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
 各装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
 以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 この出願は2014年11月27日に出願された日本出願特願2014-239465を基礎とする優先権を主張し、その開示の全てをここに取り込む。
10、100 分散処理システム
20、200 資源予測装置
201 資源使用量予測モデル生成部
22、202 資源使用量予測部
300 マスタサーバ
401~402 ワーカマシン

Claims (9)

  1.  分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、前記タスクが処理される際に使用される資源量を、過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する資源使用量予測手段を備える
     資源予測装置。
  2.  過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際に使用された資源量とを入力として、資源使用量予測モデルを生成する資源使用量予測モデル生成手段を更に備える
     請求項1に記載の資源予測装置。
  3.  タスク処理情報には、前記タスク処理情報に対応するタスクの処理における入力データの構成に関する情報であるメタ情報と、前記タスクの処理に使用されるプログラムの構成情報とが含まれる
     請求項1または請求項2記載の資源予測装置。
  4.  資源使用量予測モデル生成手段は、過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際の前記タスクの処理時間との関係を資源使用量予測モデルに反映し、
     資源使用量予測手段は、入力としたタスク処理情報に対応するタスクの処理時間を前記資源使用量予測モデルを用いて予測する
     請求項2記載の資源予測装置。
  5.  分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、前記タスクが処理される際に使用される資源量を、過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する
     資源予測方法。
  6.  過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際に使用された資源量とを入力として、資源使用量予測モデルを生成する
     請求項5記載の資源予測方法。
  7.  コンピュータに、
     分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、前記タスクが処理される際に使用される資源量を、過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する予測処理
     を実行させるための資源予測プログラムを格納する記録媒体。
  8.  コンピュータに、
     過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際に使用された資源量とを入力として、資源使用量予測モデルを生成する生成処理を実行させる
     請求項7記載の記録媒体。
  9.  請求項1乃至4のいずれかに記載の資源予測装置と、
     前記資源予測装置の分散処理における処理単位であるタスクを実行する少なくとも一つのワーカマシンと、
     前記少なくとも一つのワーカマシンにおける各ワーカマシンに前記タスクを割り当てるマスタサーバと、
    を備える分散処理システム。
PCT/JP2015/005695 2014-11-27 2015-11-16 資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム WO2016084327A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016561229A JPWO2016084327A1 (ja) 2014-11-27 2015-11-16 資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-239465 2014-11-27
JP2014239465 2014-11-27

Publications (1)

Publication Number Publication Date
WO2016084327A1 true WO2016084327A1 (ja) 2016-06-02

Family

ID=56073922

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/005695 WO2016084327A1 (ja) 2014-11-27 2015-11-16 資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム

Country Status (2)

Country Link
JP (1) JPWO2016084327A1 (ja)
WO (1) WO2016084327A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109993428A (zh) * 2019-03-28 2019-07-09 第四范式(北京)技术有限公司 资源分配方法与装置
KR20210109407A (ko) * 2020-02-27 2021-09-06 숭실대학교산학협력단 학습에 의한 머신 러닝 실행 관리 플랫폼 시스템 및 방법
EP3913557A1 (en) * 2020-05-20 2021-11-24 Fujitsu Limited Future quality of service determination method and determination program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198643A (ja) * 1997-01-09 1998-07-31 Hitachi Ltd 分散計算機システム
JP2014191360A (ja) * 2013-03-26 2014-10-06 Nec Corp ジョブ管理装置、ジョブ管理方法、及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198643A (ja) * 1997-01-09 1998-07-31 Hitachi Ltd 分散計算機システム
JP2014191360A (ja) * 2013-03-26 2014-10-06 Nec Corp ジョブ管理装置、ジョブ管理方法、及びプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109993428A (zh) * 2019-03-28 2019-07-09 第四范式(北京)技术有限公司 资源分配方法与装置
CN109993428B (zh) * 2019-03-28 2022-05-31 第四范式(北京)技术有限公司 资源分配方法与装置
KR20210109407A (ko) * 2020-02-27 2021-09-06 숭실대학교산학협력단 학습에 의한 머신 러닝 실행 관리 플랫폼 시스템 및 방법
KR102405933B1 (ko) 2020-02-27 2022-06-08 숭실대학교 산학협력단 학습에 의한 머신 러닝 실행 관리 플랫폼 시스템 및 방법
EP3913557A1 (en) * 2020-05-20 2021-11-24 Fujitsu Limited Future quality of service determination method and determination program

Also Published As

Publication number Publication date
JPWO2016084327A1 (ja) 2017-09-14

Similar Documents

Publication Publication Date Title
Shahidinejad et al. An elastic controller using Colored Petri Nets in cloud computing environment
Shyam et al. Virtual resource prediction in cloud environment: a Bayesian approach
Ghorbannia Delavar et al. HSGA: a hybrid heuristic algorithm for workflow scheduling in cloud systems
US20090282413A1 (en) Scalable Scheduling of Tasks in Heterogeneous Systems
US20160203235A1 (en) Striping of directed graphs and nodes with improved functionality
Ramanathan et al. Towards optimal resource provisioning for Hadoop-MapReduce jobs using scale-out strategy and its performance analysis in private cloud environment
US11568242B2 (en) Optimization framework for real-time rendering of media using machine learning techniques
Freire et al. Survey on the run‐time systems of enterprise application integration platforms focusing on performance
Madireddy et al. Machine learning based parallel I/O predictive modeling: A case study on Lustre file systems
US20150277980A1 (en) Using predictive optimization to facilitate distributed computation in a multi-tenant system
Kim et al. Towards hpc i/o performance prediction through large-scale log analysis
JP2018005896A (ja) シミュレーションジョブを実行するためのシステム、コントローラ、方法、及びプログラム
CN110516714B (zh) 一种特征预测方法、系统及引擎
Alarifi et al. A fault-tolerant aware scheduling method for fog-cloud environments
KR20140117905A (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
Han et al. Refining microservices placement employing workload profiling over multiple kubernetes clusters
CN114090537A (zh) 卫星在轨状态的实时分析方法、装置、系统、设备及介质
Batista et al. Robust scheduler for grid networks under uncertainties of both application demands and resource availability
WO2016084327A1 (ja) 資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム
Yun et al. An integrated approach to workflow mapping and task scheduling for delay minimization in distributed environments
Tchernykh et al. Mitigating uncertainty in developing and applying scientific applications in an integrated computing environment
JPWO2019189249A1 (ja) 学習装置、学習方法、及びプログラム
Pandey et al. VECTrust: trusted resource allocation in volunteer edge-cloud computing workflows
Lasluisa et al. In-situ feature-based objects tracking for data-intensive scientific and enterprise analytics workflows
Runsewe et al. Cloud resource scaling for time-bounded and unbounded big data streaming applications

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: 15862968

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016561229

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: 15862968

Country of ref document: EP

Kind code of ref document: A1