Calculation device and calculation method

The computing device and method optimize instance selection for batch jobs by determining suitability based on burst processing, ensuring timely and cost-effective completion.

JP7872746B2Active Publication Date: 2026-06-10HITACHI VANTARA LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
HITACHI VANTARA LTD
Filing Date
2023-03-06
Publication Date
2026-06-10

AI Technical Summary

Technical Problem

Existing systems fail to determine whether an instance is suitable for a specific batch job, particularly in managing batch jobs that require burst processing.

Method used

A computing device and method that includes a storage unit for job and instance lists, determining if instances can complete batch jobs within specified time frames using burst processing, considering baseline and maximum speeds, and identifying the instance with the lowest cost for completion.

🎯Benefits of technology

Enables determination of suitable instances for batch jobs, optimizing resource usage by ensuring jobs are completed within time frames at the lowest cost.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007872746000001
    Figure 0007872746000001
  • Figure 0007872746000002
    Figure 0007872746000002
  • Figure 0007872746000003
    Figure 0007872746000003
Patent Text Reader

Abstract

To determine whether an instance is suitable for a specific batch job.SOLUTION: A calculation device comprises a storage unit that stores a job list, and a calculation unit that performs calculations on instances that can be subjected to burst processing by consuming credits. The job list is a list of batch jobs. The batch job includes multiple sets of combinations of a time frame, which is a combination of a time when the job can start execution and a time when the job should be completed, and data on a size of the job. The burst processing is processing of a job at a speed that is equal to or lower than a maximum speed that exceeds a baseline, which is a processing speed of the job that is always available. The calculation unit determines whether the batch jobs listed in the job list can be completed in the time frame.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

【Technical Field】 【0001】 The present invention relates to an arithmetic unit and an arithmetic method. 【Background Art】 【0002】 Time-sharing of computer resources online is widely used. Since computer resources are charged higher usage fees as their processing power is higher, there is a need to select the minimum necessary computer resources. Patent Document 1 discloses a burstable instance recommendation device that includes a processor and provides information on burstable instances provided by a public cloud that are candidates for migrating a predetermined in-use instance. The processor identifies a first candidate burstable instance provided by the public cloud to which the in-use instance can be migrated based on the performance time-series data of the in-use instance, calculates high-load performance time-series data for which a higher load occurrence is estimated than the performance time-series data for the identified first candidate burstable instance, calculates a penalty in the case of the high-load performance time-series data, and visibly displays the cost for the first candidate burstable instance and the penalty. 【Prior Art Documents】 【Patent Documents】 【0003】 【Patent Document 1】 U.S. Patent Application Publication No. 2021 / 0398176 【Summary of the Invention】 【Problems to be Solved by the Invention】 【0004】 In the invention described in Patent Document 1, it is not possible to determine whether an instance is suitable for a specific batch job. 【Means for Solving the Problems】 【0005】 A computing device according to a first aspect of the present invention comprises a storage unit for storing a job list and a computing unit for performing calculations on instances that can be burst-processed by consuming credits, wherein the job list is a list of batch jobs, and each batch job includes multiple combinations of data relating to a time frame which is a combination of the time at which the job can start execution and the time at which the job should be completed, and the size of the job, and the burst processing is the processing of the job at a speed below the maximum speed which is always above the baseline which is the processing speed of the job, and the computing unit determines whether the job can be completed within the time frame for each batch job listed in the job list. The memory unit further stores an instance list, which includes the baseline, maximum speed, maximum credit balance, and cost for each instance, and the computing unit identifies the instance that can complete all the batch jobs listed in the job list within the time frame and has the lowest cost. A second aspect of the present invention relates to a calculation method executed by a computing device comprising a storage unit for storing a job list and a computing unit for performing calculations on instances that can be burst-processed by consuming credits, wherein the job list is a list of batch jobs, each batch job includes multiple combinations of data relating to a time frame which is a combination of a time when the execution of the job can start and a time when the job should be completed, and the size of the job, the burst processing is the processing of the job at a speed below the maximum speed which is always above a baseline which is the processing speed of the job, and the method includes determining whether the completion of the job is possible within the time frame for the batch jobs listed in the job list. The memory unit further stores an instance list, the instance list includes the baseline, the maximum speed, the maximum credit balance, and the cost, which is the cost required to use the instance, for each instance, and further includes identifying the instance that can complete all the batch jobs listed in the job list within the time frame and has the lowest cost. [Effects of the Invention] 【0006】 According to the present invention, it is possible to determine whether an instance is suitable for a particular batch job. [Brief explanation of the drawing] 【0007】 [Figure 1] Overall configuration diagram of the batch processing system [Figure 2] Hardware configuration diagram of a general-purpose computer [Figure 3] Diagram showing an example of an instance list and a job list. [Figure 4] A diagram showing an example of a resource list and simulation results. [Figure 5] A diagram illustrating credit increases and decreases and communication speed. [Figure 6] This figure shows an example of a simulation result visualization diagram. [Figure 7] Flowchart showing processing by the arithmetic unit [Figure 8] Flowchart showing processing by the arithmetic unit [Figure 9] A diagram showing an example of the instance list update screen. [Figure 10] A diagram showing an example of the job list update screen. [Figure 11] This figure shows an example of the output screen generated by the visualization unit. [Modes for carrying out the invention] 【0008】 —First Embodiment— A first embodiment of the management server, which is a computing device according to the present invention, will be described below with reference to Figures 1 to 11. 【0009】 Figure 1 is an overall configuration diagram of batch processing system S, including the management server. Batch processing system S includes the first server 2000a, the second server 2000b, the virtual server 4000, the management server 6000, and the client 9000. Hereafter, a person who uses batch processing system S will be referred to as a "user." For example, changing the settings of batch processing system S or checking its operation are included in using batch processing system S. There may be one user or multiple users. The user may be different people depending on the situation, or it may always be the same person. 【0010】 The first server 2000a includes first DB software 2310a and first disk 2900a for handling the database. The second server 2000b includes second DB software 2310b and second disk 2900b for handling the database. The data stored in the first disk 2900a and second disk 2900b is copied to the third disk 4900 by a batch job. This batch job may be executed by the first DB software 2310, the second DB software 2310b, or the backup software 4310. 【0011】 Virtual server 4000 is a virtual machine equipped with backup software 4310 and a third disk 4900. Virtual server 4000 is one of several instances with different performance levels. In this embodiment, the optimal instance for virtual server 4000 is calculated. In this embodiment, the available data transfer speed differs for each instance. For the sake of simplicity, in this embodiment, it is assumed that the data transfer speeds of the first disk 2900a and the second disk 2900b are sufficiently fast, and that the data transfer speed of virtual server 4000 becomes the bottleneck. 【0012】 The management server 6000 comprises an API interface 100, a calculation unit 6320, an update unit 6330, a data collection unit 6340, a change command unit 6360, and a visualization unit 6370. Various data T1000 are stored in the storage device of the management server 6000. The various data T1000 include an instance list T1100, a job list T1200, a resource list T1300, and simulation results T1400. The API interface 100 is software that allows software components to share data by communicating with each other. The data collection unit 6340 obtains data about the instance currently used by the virtual server 4000 via the API interface 100 and writes it to the resource list T1300. 【0013】 The update unit 6330 updates the instance list T1100 and the job list T1200 based on the user's input. The calculation unit 6320 performs calculations described later based on the instance list T1100 and the job list T1200, and updates the simulation result T1400 and the resource list T1300. The change command unit 6360 reads the resource list T1300 and changes the instance of the virtual server 4000 as necessary. The visualization unit 6370 visualizes the simulation result T1400 and presents it to the client 9000. 【0014】 The client 9000 is a computer used by the user. The client 9000 includes a GUI application 9100, and the GUI application 9100 communicates with the management server 6000 and presents a GUI screen described later to the user. Note that the user may access the update unit 6330 of the management server 6000 via the client 9000. 【0015】 FIG. 2 is a hardware configuration diagram of a general-purpose computer 40 having hardware common to the first server 2000a, the second server 2000b, the management server 6000, and the client 9000. Note that the virtual server 4000 has the same configuration as the general-purpose computer 40 as virtual hardware, but does not have a physical configuration. A hardware device (not shown) that realizes the virtual server 4000 has the same configuration as the general-purpose computer 40. Note that the virtual server 4000 may be realized by any one of the first server 2000a, the second server 2000b, and the management server 6000. The hardware configurations of the first server 2000a, the second server 2000b, the management server 6000, and the client 9000 do not have to be the same, and may further include hardware not provided in the general-purpose computer 40. 【0016】 The general-purpose computer 40 includes a CPU 41 which is a central processing unit, a ROM 42 which is a read-only storage device, a RAM 43 which is a readable and writable storage device, an input / output device 44 which is a user interface, a communication device 45, and a storage device 46. The CPU 41 performs various operations by expanding and executing the program stored in the ROM 42 in the RAM 43. The general-purpose computer 40 may be realized by an FPGA (Field Programmable Gate Array) which is a rewritable logic circuit or an ASIC (Application Specific Integrated Circuit) which is an application-specific integrated circuit instead of the combination of the CPU 41, the ROM 42, and the RAM 43. Also, the general-purpose computer 40 may be realized by a combination of different configurations, for example, a combination of the CPU 41, the ROM 42, the RAM 43, and the FPGA instead of the combination of the CPU 41, the ROM 42, and the RAM 43. 【0017】 The input / output device 44 includes a keyboard, a mouse, a liquid crystal display, etc. However, the general-purpose computer 40 may include a communication port to which a keyboard, a mouse, and a liquid crystal display can be connected instead of the input / output device 44. A human exchanges information with the general-purpose computer 40 using the input / output device 44. However, the input / output device 44 is not an essential component. In particular, the first server 2000a, the second server 2000b, and the management server 6000 may not include the input / output device 44. The communication device 45 is, for example, a network interface card and realizes communication with other devices. The communication protocol used by the communication device 45 is arbitrary. The storage device 46 is a non-volatile storage device. 【0018】 Figure 3 is a diagram showing an example of an instance list T1100 and a job list T1200. The instance list T1100 and the job list T1200 may be created in advance, or may be newly created by the update unit 6330, or the update unit 6330 may add or delete a part. 【0019】 Instance list T1100 is a list of available instances. In this embodiment, each instance has a different data transfer rate. In this embodiment, transfer rate, data transfer rate, processing rate, and throughput are synonymous. Also, below, transfer rate will be simply referred to as "speed". Instance list T1100 includes the instance name T1110, base rate T1120, maximum rate T1130, maximum credits T1140, and hourly rate T1150 for each instance. In this embodiment, the instances are sorted by cost, with the top row being the lowest cost. Instance name T1110 is the name or identifier of the instance. In this embodiment, for ease of explanation, the instance name T1110 is a combination of "VM" and a number. As will be described later, the larger this number, the higher the performance and the higher the cost. 【0020】 The baseline speed T1120 is the data transfer rate that the instance can always transfer, also known as the "baseline." The maximum speed T1130 is the highest speed the instance can achieve. The maximum credits T1140 is the maximum number of credits the instance can hold. Credits will be explained in more detail later. The hourly rate T1150 is the cost of using the instance. There is a positive correlation between the cost and performance of an instance. That is, the higher the hourly rate T1150, the greater the baseline speed T1120, the maximum speed T1130, and the maximum credits T1140 tend to be. 【0021】 The job list T1200 is a list of jobs that the batch processing system S should execute. The job list T1200 includes the job name T1210, data transfer amount T1220, time frame start time T1230, time frame end time T1240, and resource name T1250. The job name T1210 is the name or identifier of the job. In this embodiment, for the sake of explanation, the job name T1210 is a combination of "job" and a number. Unlike the instance name T1110, the magnitude of the number in the job name T1210 does not have any special meaning. The data transfer amount T1220 is the total amount of data to be transferred in that job. 【0022】 The time slot start time T1230 is the time to start the job. The time slot end time 1240 is the time by which the job should be completed. The job cannot start before the time slot start time T1230 and is not permitted to run beyond the time slot end time 1240. The resource name 1250 is the identifier of the resource that will execute the job. The job list T1200 does not specify which instance the resource will use, and the calculation unit 6320 can calculate the optimal instance as described later. In this embodiment, it is not assumed that each resource will change instances midway through the process. 【0023】 In the example shown in Figure 3, the job named T1210, "Job 1," has a time frame from 1:00 to 1:05, and it is shown that 50GB of data will be transferred to virtual server 4000. In the example shown in Figure 3, resource name T1250 is "Virtual Server," which is only virtual server 4000 in Figure 1, but jobs related to virtual servers not shown may also be included. 【0024】 Figure 4 shows an example of the resource list T1300 and the simulation results T1400. The resource list T1300 is created by the collection unit 6340 and the calculation unit 6320, and the simulation results T1400 is created by the calculation unit 6320. 【0025】 Resource list T1300 includes the resource name T1310, the current instance T1320, the ideal instance T1330, and the cost difference T1340. Resource list T1300 may also include other resources that use a credit mechanism, such as disks, as indicated by code T1350. 【0026】 Resource name T1310 is the identifier of the resource and corresponds to resource name T1250 in job list T1200. Current instance T1320 is the current instance of the resource in question, and one of the instance names T1110 in instance list T1100 is entered. Ideal instance T1330 is the optimal instance for the resource in question and is calculated by the calculation unit 6320. Cost difference T1340 is the difference in cost between current instance T1320 and ideal instance T1330. In the example shown in Figure 4, the current instance T1320 and ideal instance T1330 of "Virtual Server" match, and the cost difference T1340 is zero. On the other hand, for "Server 3", the current instance T1320 is "VM3", but the ideal instance T1330 is "VM1", and the cost difference T1340 is "-1.0". Note that "Server 3" is a virtual server not shown in Figure 1. 【0027】 The simulation result T1400 is the result of calculations performed by the arithmetic unit 6320 for a specific combination of resources and instances. Specifically, the simulation result T1400 represents the remaining amount, credits, and transfer rate of each job at each time point obtained from the simulation. Although only one simulation result T1400 is shown in Figure 4, different simulation results T1400 are generated for each combination of resources and instances. 【0028】 Figure 5 illustrates the increase and decrease of credits and communication speed. In Figure 5, the size of the container represents the maximum credit, and the liquid accumulated in the container represents the credit balance. The inflow of liquid into the container represents an increase in credits, and the outflow of liquid from the container represents credit consumption. C100 shown in the upper panel represents the case where the requested speed is greater than the baseline speed and the credit balance is not zero. In this case, as indicated by the symbol C150, the credits have decreased, and the consumption rate is proportional to the requested speed. The maximum speed available to an instance is the value of the highest speed T1130 in instance list T1100. Below, processing that is faster than the baseline speed will also be referred to as "burst processing." That is, burst processing is conditional on credit consumption. Burst processing can also be called processing jobs at a speed below the maximum speed that is always available, but above the baseline speed. 【0029】 The C200 shown in the middle row represents the case where the requested speed is less than the base speed. In this case, as indicated by the symbol C250, the credits increase, and the rate of increase is proportional to the base speed. When the credits reach their maximum value, the credit increase stops. Also, in this case, since the requested speed is less than the base speed, the instance can utilize the requested speed itself. The C300 shown in the bottom row represents the case where the requested speed is greater than the base speed and the credit balance is zero. In this case, the speed is limited to the base speed and the acquired credits are zero. 【0030】 Figure 6 shows an example of a simulation result visualization diagram G6000 generated by the visualization unit 6370. The simulation result visualization diagram G6000 is generated based on the simulation result T1400 generated by the calculation unit 6320. As mentioned above, the simulation result is generated for a combination of resources and instances. The example shown in Figure 6 is when the resource to be processed is a "virtual server" and the instance used is "VM2". 【0031】 Simulation result visualization diagram G6000 includes time frame G6100, job remaining G6200, credit progression G6300, and speed progression G6400. Time frame G6100, job remaining G6200, credit progression G6300, and speed progression G6400 share the same time axis, and the dashed lines indicated by symbols P10 to P100 each represent the same time. 【0032】 Timeframe G6100 displays the timeframe for the jobs of the resources to be processed, as a Gantt chart, as listed in the job list T1200. In other words, timeframe G6100 is generated based on the job list T1200, not the simulation results T1400. Specifically, the time from the start time T1230 to the end time T1240 of the timeframe is shown with hatching, and the name of the job is written above the hatching. 【0033】 Job Remaining Data G6200 is a graph showing the time-series change in the remaining data for each job. The remaining data for each job at each time point is listed in Simulation Results T1400. However, for times when no data is listed in Simulation Results T1400, the remaining data for each job is set to be the same as the data remaining for that job immediately before, or to zero. The vertical axis of each graph in Job Remaining Data G6200 may have different scales for each job, or the scale may be unified for all jobs. 【0034】 Credit Transition G6300 is a time-series graph showing the credit progression of the resources being processed. The credits for each time point are listed in Simulation Results T1400. Each resource has an upper limit on the credits it can hold, and it will not exceed a predetermined maximum value. The lower limit for credits is zero. 【0035】 Speed ​​Transition G6400 is a time-series graph showing the speed progression of the resources being processed. The speed for each time point is described in Simulation Results T1400. As mentioned above, an upper limit and a baseline value for speed are set in advance for each instance. In this embodiment, the speed of each resource is set to either zero, the baseline value, or the maximum value. 【0036】 Time P10 is the start time of the "Job 1" time slot, and the transfer begins at this time. Time P20 is the time when "Job 1" finishes transferring. Between time P10 and time P20, credits are consumed and the maximum speed is utilized. Time P30 is the end time of the "Job 1" time slot. "Job 1" has finished before the time slot end time. Between time P20 and time P40, no jobs are executed, so credits increase over time and reach their maximum value. 【0037】 Time P40 is the start time for the "Job 2" time slot, and time P50 is the start time for the "Job 3" time slot. "Job 2" starts at time P40 and processes at maximum speed, consuming credits, but "Job 2" is not yet completed at time P50. "Job 3" starts at time P50, and the speed is evenly distributed between the two jobs. Therefore, the slope of the line showing the remaining data for "Job 2" at job remaining amount G6200 becomes gentler at time P50. 【0038】 At time P60, "Job 2" is completed, but "Job 3" is not yet completed, so processing continues. Because "Job 2" is completed at time P60, "Job 3" no longer needs to share with other jobs, and from time P60 onwards, the slope of the line indicating the remaining data for "Job 3" at job remaining amount G6200 becomes steeper. Time P70 is the end time of the time frame for "Job 2," and "Job 2" is completed before time P70. 【0039】 At time P80, the credits reach zero, and the speed drops to the baseline speed. Therefore, from time P80 onward, the slope of the line indicating the remaining data for "Job 3" in the job remaining amount G6200 becomes gentler. At time P90, the data transfer for "Job 3" is completed. From time T90 onward, there are no jobs, so the credits increase as time progresses. Time P100 is the end time of the time frame for "Job 3," and "Job 3" was completed before time P100. This concludes the explanation of Figure K. 【0040】 Figures 7 and 8 are flowcharts showing the processing performed by the arithmetic unit 6320. In step S301, the arithmetic unit 6320 selects one of the unprocessed resources as the resource to be processed. In the following step S302, the arithmetic unit 6320 selects the smallest instance to be used as a temporary instance by the resource to be processed and proceeds to step S303. For example, in the example shown in Figure 3, "VM1" is selected. 【0041】 In step S303, the calculation unit 6320 sets the time to zero. However, "zero" is merely used here for convenience to represent the earliest possible time; it is acceptable for the time to be earlier than the earliest time frame start time T1230 in the job list T1200. The credit at time zero is a predetermined value, such as zero or the maximum value. 【0042】 In step S304, the calculation unit 6320 advances the time by a predetermined amount of time, for example, 1 second. Hereafter, this time will be referred to as the "unit time". In the following step S305, the calculation unit 6320 determines whether or not there are jobs currently running. If the calculation unit 6320 determines that there are jobs currently running, it proceeds to the core simulation processing in step S310; if it determines that there are no jobs currently running, it proceeds to step S306. The calculation unit 6320 can determine the presence or absence of jobs currently running as follows: That is, the calculation unit 6320 extracts jobs whose time frame start time is earlier than the current time, removes completed jobs from the extracted jobs, and determines whether or not there are jobs remaining. 【0043】 In step S306, the calculation unit 6320 increases the credits of the resource to be processed and returns to step S304. The value of the credits to be increased is a predetermined value, for example, the value obtained by multiplying the reference speed of the resource to be processed by a predetermined proportionality coefficient. The core simulation processing in step S310 will be explained in detail with reference to Figure 8. 【0044】 In step S311, the first step of the core simulation processing, the calculation unit 6320 determines whether the credits of the resource to be processed are zero at the current time. If the calculation unit 6320 determines that the credits are zero, it proceeds to step S312; otherwise, it proceeds to step S313. In step S312, the calculation unit 6320 sets the speed to a reference value and proceeds to step S314. In step S313, the calculation unit 6320 sets the speed to a maximum value and proceeds to step S314. 【0045】 In step S314, the arithmetic unit 6320 divides the speed of each job equally according to the number of jobs currently running. For example, if the speed is set to 15 Gbps in step S312 or step S313 and there are three jobs currently running, the speed of each job is set to 5 Gbps. In the following step S315, the arithmetic unit 6320 reduces the remaining data for each job according to its speed. Specifically, the remaining data is reduced by multiplying the value divided equally by the number of jobs in step S314 by the unit time, which is the length of time to advance in step S304. For example, if the value divided equally by the number of jobs in step S314 is 5 Gbps and the unit time is 1 second, the amount of data is reduced by 5 Gb. 【0046】 In the following step S316, the calculation unit 6320 reduces the credits and terminates the process shown in Figure 8. The value of the credits to be reduced may be a predetermined constant value or a value corresponding to the maximum speed. Return to Figure 7 and continue the explanation. 【0047】 In step S321, which is executed after step S310, the calculation unit 6320 determines whether or not there are jobs that will not be completed by the end of the time frame. For example, in the example shown in Figure 3, if "Job 1" is not completed at the time "01:05:01", this step is affirmative. If the calculation unit 6320 determines that the jobs will be completed by the end of the time frame, it proceeds to step S322. If the calculation unit 6320 determines that there are jobs that will not be completed by the end of the time frame, it proceeds to step S323, selects an instance of the next rank, and returns to step S303. By increasing the rank of the instance, the cost increases, but at least one of the base speed and maximum speed is improved, making it more likely that the jobs will be completed within the time frame. 【0048】 In step S322, the calculation unit 6320 determines whether all jobs for the resource to be processed have been completed. "All jobs" here refers not only to jobs whose time slot start time has reached the current time, but also to all jobs listed in the job list T1200 whose resource name 1250 is the resource to be processed. If the calculation unit 6320 determines that all jobs have been completed, it proceeds to step S323; otherwise, it returns to step S304. 【0049】 In step S323, the calculation unit 6320 sets the current instance to the optimal instance because it is the lowest-cost instance that can complete all jobs by the end of the time frame. In the following step S324, the calculation unit 6320 calculates the cost difference with the currently set instance. In the following step S325, the calculation unit 6320 outputs the simulation results to simulation result T1400. Specifically, the calculation unit 6320 outputs the remaining amount, credits, and speed of each job at each time point. However, if the calculation unit 6320 made a positive judgment in step S321, it erases the progress of the simulation and outputs only the simulation results when using the optimal instance. 【0050】 In the following step S326, the calculation unit 6320 determines whether or not there are any unprocessed resources. If it determines that there are unprocessed resources, it returns to step S301. If it determines that there are no unprocessed resources, it terminates the process shown in Figure 7. 【0051】 Figure 9 shows an example of the update screen for the instance list T1100. This screen is generated by the update unit 6330. The existing instance list T1100 is shown at the top of Figure 9. However, a delete button G1100 and an edit button G1200 are placed at the right end of the instance list T1100. When the user presses the delete button G1100 for any row, the data in that row is deleted. When the user presses the edit button G1200 for any row, the data in that row is entered into the instance input form G2000. 【0052】 Users can register new instances and modify existing instances using the instance input form G2000 shown at the bottom of Figure 9. Code G2100 is the input field for the instance name T1110. Code G2200 is the input field for the base speed T1120. Code G2300 is the input field for the maximum speed T1130. Code G2400 is the input field for the maximum credit T1140. Code G2500 is the submit button for adding or modifying instances. When the user presses the submit button G2400, the update unit 6330 updates the instance list T1100. 【0053】 Figure 10 shows an example of the update screen for the job list T1200. This screen is generated by the update unit 6330. The existing job list T1200 is shown at the top of Figure 10. However, a delete button G1100 and an edit button G1200 are placed at the right end of the job list T1200. If the user presses the delete button G1100 for any row, the data in that row is deleted. If the user presses the edit button G1200 for any row, the data in that row is entered into the job input form G4000. 【0054】 The user can register new instances and modify existing instances using the job input form G4000 shown at the bottom of Figure 10. Code G4100 is the input field for the job name T1210. Code G4200 is the input field for the data transfer amount T1220. Code G4300 is the input field for the time frame start time T1230. Code G4400 is the input field for the time frame end time T1240. Code 4450 is the input field for the resource name T1250. Code G4500 is the registration button for adding or modifying a job. When the user presses the registration button G4500, the update unit 6330 updates the job list T1200. Code G4600 is the button for checking the optimal instance size. When the user presses this button, the calculation unit 6320 starts up and generates the simulation results T1400. Subsequently, the visualization unit 6370 starts up and displays the simulation results T1400. 【0055】 Figure 11 shows an example of the output screen from the visualization unit 6370. The symbol G5000 indicates the optimal instance calculated by the calculation unit 6320, i.e., the ideal instance T1330 in the resource list T1300. The symbol G5100 indicates the cost difference between the current instance and the optimal instance, i.e., the cost difference T1340. The symbol G5500 is a button to optimize the instance type. When the user presses button G5500, the change command unit 6360 refers to the resource list T1300 and changes to the optimal instance. The simulation result visualization diagram G6000 shown at the bottom of Figure 11 is the same as in Figure 6, so its explanation is omitted. 【0056】 According to the first embodiment described above, the following effects and advantages can be obtained. (1) The management server 6000, which can also be called a computing unit, comprises a RAM 43 which is a memory unit that stores the job list T1200, and a computing unit 6320 which performs calculations on instances that can be burst processed by consuming credits. The job list T1200 is a list of batch jobs. A batch job includes multiple combinations of time frames, which are combinations of a time frame start time T1230 and a time frame end time T1240, and data transfer amounts T1220. Burst processing is the processing of jobs at a speed below the maximum speed that is always above the baseline, which is the processing speed of available jobs. The computing unit 6320 determines whether it is possible to complete a job within a time frame for the batch jobs listed in the job list T1200. Therefore, the management server 6000 can determine whether it is an instance suitable for a particular batch job. 【0057】 (2) RAM43 stores the instance list T1100. The instance list T1100 contains the baseline for each instance: base speed T1120, maximum speed T1130, maximum credit T1140, and hourly rate T1150. The arithmetic unit 6320 identifies the instance that can complete all batch jobs listed in the job list within the time frame and at the lowest cost. Thus, the management server 6000 can identify the optimal instance. 【0058】 (3) The calculation unit 6320 performs a simulation to calculate the remaining job amount and remaining credit amount for each batch job at each time point. 【0059】 (4) The arithmetic unit 6320 first selects the instance with the lowest cost and performs the simulation, and if at least one batch job cannot be completed within the time frame, it selects the next instance with the lowest cost and performs the simulation. 【0060】 (5) The job is the transfer of data from the first disk 2900a or the second disk 2900b to the third disk 4900, and the difference between baseline and maximum speed is the difference in data transfer speed. 【0061】 (Variation 1) In the embodiment described above, the job was data transfer. However, the job is not limited to data transfer and can encompass various processes that utilize computer resources. For example, the job may be the execution of calculations. In this case, the difference in the number of calculations per unit time will result in the difference between the baseline and maximum speed. Specifically, the CPU utilization rate available to the job, the number of CPU cores, and the number of physical CPUs will all contribute to the difference between the baseline and maximum speed. 【0062】 (Modification 2) In the embodiment described above, the calculation unit 6320 identified the optimal instance for each resource. However, the calculation unit 630 may simply determine whether it is possible to complete a batch job listed in the job list T1200 within a given time frame for a given combination of resource and instance. Specifically, it may be sufficient to simply execute the processes from steps S303 to S322 in Figure 7, after the resources and instances have been specified in advance. 【0063】 (Variation 3) In the embodiment described above, the arithmetic unit 6320 identified the optimal instance by increasing the rank one by one (step S323 in Figure 7). However, the arithmetic unit 6320 does not necessarily have to increase the rank one by one. For example, it may increase the rank by 2, or it may increase the rank randomly between 1 and 5. 【0064】 (Modification 4) The batch processing system S may be designed for a hybrid cloud, that is, a mixed configuration of public and private clouds. However, in this case, the resources that the computing unit 6320 uses for calculations may be limited to virtual machines located in the public cloud. This is because virtual machines located in the private cloud do not need to be restricted as they use resources that they own. 【0065】 In the embodiments and modifications described above, the configuration of the functional blocks is merely an example. Several functional configurations shown as separate functional blocks may be integrated, or a configuration represented in one functional block diagram may be divided into two or more functions. Furthermore, some of the functions of one functional block may be provided by other functional blocks. 【0066】 In the embodiments and modifications described above, the program is stored in the ROM 42, but the program may be stored in a non-volatile storage device. Furthermore, the general-purpose computer 40 may be equipped with an input / output interface (not shown), and the program may be read from another device via a medium available to the input / output interface and the general-purpose computer 40 when needed. Here, the medium refers to, for example, a storage medium detachable from the input / output interface, or a communication medium, i.e., a wired, wireless, optical network, or a carrier wave or digital signal propagating through such a network. Also, some or all of the functions realized by the program may be realized by hardware circuits or FPGAs. 【0067】 The embodiments and modifications described above may be combined in any way. Although various embodiments and modifications have been described above, the present invention is not limited to these. Other embodiments that can be conceivable within the scope of the technical idea of ​​the present invention are also included within the scope of the present invention. [Explanation of symbols] 【0068】 40: Arithmetic device 4000: Virtual Server 4900: Third disc 6000: Management Server 6320: Arithmetic unit 6330 :Update section 6340: Collection Department 6360: Change Command Unit 6370 :Visualization part G6000: Simulation result visualization diagram S: Batch processing system T1100: Instance List T1200: Job List T1300: Resource List T1400: Simulation results

Claims

[Claim 1] It comprises a memory unit for storing a job list and a calculation unit for performing calculations on instances that can be burst-processed by consuming credits. The aforementioned job list is a list of batch jobs, The aforementioned batch job includes multiple combinations of data relating to a time frame which is a combination of the time the job can start executing and the time the job should be completed, and the size of the job. The burst processing is the processing of the job at a speed below the maximum speed that is always available, which is above the baseline processing speed of the job. The calculation unit determines whether the batch jobs listed in the job list can be completed within the time frame. The aforementioned storage unit further stores an instance list, The instance list includes the baseline, maximum speed, maximum credit balance, and cost for each instance, which is the cost required to use that instance. The calculation unit is a calculation device that identifies the instance of all batch jobs listed in the job list that can be completed within the time frame and have the lowest cost. [Claim 2] In the computing device according to claim 1, The calculation unit is a calculation device that performs simulations to calculate the remaining amount of the jobs and the remaining amount of credits for each batch job at each time step. [Claim 3] In the computing device according to claim 2, The calculation unit first selects the instance with the lowest cost and performs the simulation, and if at least one batch job cannot complete the job within the time frame, it then selects the instance with the next lowest cost and performs the simulation. [Claim 4] In the computing device according to claim 1, A computing device further comprising a visualization unit that creates a visualization diagram showing the results of a simulation performed by the aforementioned computing unit. [Claim 5] In the computing device according to claim 1, The calculation unit further calculates the difference in cost between a pre-configured instance and the instance with the smallest cost identified by the calculation unit. [Claim 6] In the computing device according to claim 1, A computing device further comprising a change command unit that changes the virtual machine instance for the batch job to the instance with the lowest cost identified by the computing unit. [Claim 7] A calculation method executed by a computing device comprising a memory unit for storing a job list and a computing unit for performing calculations on instances that can be burst-processed by consuming credits, The aforementioned job list is a list of batch jobs, The aforementioned batch job includes multiple combinations of data relating to a time frame which is a combination of the time the job can start executing and the time the job should be completed, and the size of the job. The burst processing is the processing of the job at a speed below the maximum speed that is always available, which is above the baseline processing speed of the job. This includes determining whether the batch jobs listed in the job list can be completed within the time frame, The aforementioned storage unit further stores an instance list, The instance list includes the baseline, maximum speed, maximum credit balance, and cost for each instance, which is the cost required to use that instance. A calculation method further comprising identifying the instance of all batch jobs listed in the job list that can be completed within the time frame and have the lowest cost. [Claim 8] In the calculation method described in Claim 7, A calculation method further comprising performing a simulation to calculate the remaining amount of the jobs and the remaining amount of credits for each batch job at each time interval. [Claim 9] In the calculation method according to claim 8, A calculation method comprising first selecting the instance with the lowest cost and performing the simulation, and if at least one batch job cannot complete the job within the time frame, then selecting the instance with the next lowest cost and performing the simulation. [Claim 10] In the calculation method described in Claim 7, A calculation method further comprising creating a visualization diagram that visualizes the results of a simulation performed by the calculation device.