Job execution control program, job execution control method, and job execution control apparatus
The job execution control method enhances HPC system performance by dynamically allocating resources and prioritizing interactive jobs, addressing the challenge of resource availability and interactivity in conventional systems.
Patent Information
- Application Number
- JP2024105196
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-06-28
- Publication Date
- 2026-01-16
AI Technical Summary
Conventional HPC systems face challenges in achieving interactive processing with short response times and efficient resource utilization, leading to decreased processing performance for jobs requiring interactivity, especially when resources are not immediately available.
A job execution control method that dynamically allocates time resources to both batch and interactive jobs, prioritizing interactive jobs during resource shortages by adjusting time slice allocation and execution priorities.
Improves processing performance and user convenience by ensuring timely execution of interactive jobs while optimizing resource usage in HPC systems.
Smart Images

Figure 2026006311000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a job execution control program, a job execution control method, and a job execution control device. [Background technology]
[0002] In recent years, advances in information processing technologies such as AI (Artificial Intelligence) have drawn attention to HPC (High Performance Computing) systems, which are equipped with high computing power and data processing speeds, such as supercomputers. HPC systems use a large number of processors to process large amounts of data and solve complex problems at high speed.
[0003] While improvements in processing performance have been the primary focus for HPC systems, interactivity will also be required in the future to improve convenience and efficiency. For example, program development involves repeated interactive processes such as generating code and then executing that code. Digital twin technology, which replicates and simulates the real world in a digital space, involves repeated interactive processes such as inputting data into the replicated virtual world, obtaining the resulting information, and then inputting more data based on the obtained resulting information.
[0004] In conventional HPC systems, where high performance and reproducibility are important, the mainstream technology for streamlining batch processing has been a space-division batch system that executes as many jobs as possible in parallel. Examples of space-division batch systems include the following: For example, HPC systems have a batch backfill function that runs jobs in a different order if there are available resources, but runs jobs in the order they were input if there are no available resources for any of the jobs.
[0005] Furthermore, in HPC systems, distributed parallel processing is performed using multiple processes on the OS (Operating System) as a method of dividing jobs into time slots. Gang scheduling is the basis of this distributed parallel processing, whereby job switching is performed at regular time slice intervals. In gang scheduling, for example, a job scheduler on the management node dynamically determines which jobs should be processed on each computing node, and then synchronizes and switches jobs across multiple computing nodes all at once. Because each job corresponds to an individual HPC application, it can also be said that the job scheduler synchronizes and switches HPC applications all at once.
[0006] In addition, a time division technique has been proposed in which a time allocation rate within a period is determined for a parallel program, one processor is assigned to each parallel process generated by the parallel program to execute the processing, and the processing is terminated when the time corresponding to the time allocation rate is reached. [Prior art documents] [Patent documents]
[0007] [Patent Document 1] International Publication No. 2002 / 069174 Summary of the Invention [Problem to be solved by the invention]
[0008] However, interactive processing requires a short response time to inputs from the perspective of user requirements and operability. In conventional space-division batch processing methods, jobs do not start immediately if resources are not available, making it difficult to achieve appropriate interactivity and improve user convenience. Furthermore, in HPC systems, the ratio of jobs requiring interactivity to those not requiring interactivity often varies depending on the time of day. Therefore, simply prioritizing gang scheduling extends the processing time of jobs that do not require interactivity but have a specified end time, making it difficult to complete the processing within the time limit. This can result in a decrease in processing performance for certain jobs.
[0009] Furthermore, in the technology that determines the time allocation rate within a period and executes parallel processes, the allocation of the time allocation rate is static, and it is difficult to execute all jobs appropriately for jobs that require interactivity, which may result in a decrease in processing performance for certain jobs.
[0010] The disclosed technology has been made in consideration of the above, and aims to provide a job execution control program, a job execution control method, and a job execution control device that improve convenience and processing performance. [Means for solving the problem]
[0011] In one aspect of the job execution control program, job execution control method, and job execution control device disclosed herein, the computer is caused to execute the following processes: A process of receiving a first job for batch processing and a second job for interactive processing with a user; A process of determining whether time resources used to alternately execute the first job and the second job on a specified computing node are tight over time; A process of allocating equal time to the first job and the second job and causing the specified computing node to perform a first execution when the time resources are not tight; A process of increasing the priority of the execution of the second job and allocating time to the first job and the second job and causing the specified computing node to perform a second execution when the time resources are tight. [Effects of the Invention]
[0012] According to one aspect, the present invention can improve processing performance while improving convenience. [Brief explanation of the drawings]
[0013] [Figure 1] FIG. 1 is a block diagram of an HPC system according to an embodiment. [Figure 2] FIG. 2 is a diagram illustrating an example of the execution state of a batch job. [Figure 3] FIG. 3 is a diagram illustrating the specification of the maximum delay time using the overhead rate. [Figure 4] FIG. 4 is a diagram illustrating an example of job scheduling. [Figure 5] FIG. 5 is a diagram showing an example of the execution state of a job according to gang scheduling. [Figure 6] FIG. 6 is a diagram illustrating an example of a job execution state by the HPC system according to the embodiment. [Figure 7] FIG. 7 is a flowchart of a job scheduling process performed by the job scheduler. [Figure 8] FIG. 8 is a flowchart of the job management process by the scheduler agent. [Figure 9] FIG. 9 is a diagram showing the hardware configuration of a computer. DETAILED DESCRIPTION OF THE INVENTION
[0014] The following describes in detail embodiments of a job execution control program, a job execution control method, and a job execution control device disclosed herein with reference to the accompanying drawings. Note that the job execution control program, the job execution control method, and the job execution control device disclosed herein are not limited to the following embodiments. [Example]
[0015] Fig. 1 is a block diagram of an HPC system according to an embodiment. As shown in Fig. 1, an HPC system 100 according to this embodiment includes a management node 1 and a plurality of computation nodes 2. Here, a node is an information processing unit capable of executing information processing such as calculations, and is, for example, a server. The management node 1 and the computation nodes 2 are connected via a network.
[0016] The management node 1 schedules the execution of jobs input by users to the HPC system 100, deploys each job to the computation nodes 2, and notifies the schedule for each job. Each computation node 2 executes the deployed job according to the notified schedule. Details of the management node 1 and the computation nodes 2 are explained below. This management node 1 is an example of a "job execution control device."
[0017] As shown in FIG. 1, the management node 1 includes a job receiving unit 101, a job model determining unit 102, a job information managing unit 103, a job allocation determining unit 104, a time resource managing unit 105, a request sending unit 106, and a priority processing determining unit 107.
[0018] The job receiving unit 101 acquires job information input by a user. For example, the user can use an information processing terminal device (not shown) connected to the network to submit a job to be executed to the HPC system 100. In this case, the user also inputs job information such as the maximum delay time and maximum execution time according to the submitted job. The job receiving unit 101 outputs the acquired job information to the job model determining unit 102.
[0019] The job model determination unit 102 receives input of information about the submitted job from the job receiving unit 101. Next, the job model determination unit 102 determines the job model corresponding to the type of job for the submitted job. For example, if the job information includes a value corresponding to the job model specified by the user, the job model determination unit 102 determines the job model from the specified value. The job model determination unit 102 outputs the job information and information about the determined job model to the job information management unit 103.
[0020] Here, the job models will be explained. In this embodiment, the job models include Strict Batch, Weak Batch, On-Demand, and Spot.
[0021] Strict Batch is a job model that waits until one of the compute nodes 2 becomes available for occupancy, and once a compute node 2 becomes available, it is deployed to that compute node 2 and executed. Below, jobs whose job model is Strict Batch are called Strict Batch jobs. Strict Batch jobs occupy the deployed node until the job execution is complete.
[0022] FIG. 2 is a diagram showing an example of the execution state of a batch job. In FIG. 2, the vertical axis represents individual jobs, and the horizontal axis represents the passage of time. A batch job is a job that executes batch processing to perform a predetermined series of processes without communication with the user. A job whose job model is Strict Batch or Weak Batch corresponds to a batch job. In FIG. 2, the white areas represent the time when a batch job is executed. Furthermore, areas 301 and 321 with dotted patterns represent the time when a batch job is waiting to be executed in a queue. Furthermore, areas 311 to 314, 322, and 323 with diagonal lines represent the time when jobs other than batch jobs are executed.
[0023] For example, a strict batch job is executed as shown in job A in Figure 2. Here, the case where the overhead rate is set to 0 corresponds to the case where a maximum delay time is specified for the strict batch job. It is not necessary to specify a maximum delay time for a strict batch job, but if a maximum delay time is to be specified, it can be done by setting the overhead rate to 0. The maximum delay time becomes the upper limit of the execution waiting time in the queue of the strict batch job. In this case, it is sufficient that the execution waiting time in the queue indicated in area 301 is less than the specified maximum delay time.
[0024] Weak Batch is a job model that guarantees worst-case values while allowing node sharing. Node sharing is a job time division function that executes specific jobs alternately with other jobs by interrupting the execution of other jobs while specific jobs are being executed on a specific computation node 2. In node sharing, the time allocated to execute each job on a specific computation node 2 corresponds to the "time resource." The worst-case value is the state in which job execution is completed in the latest time possible while adhering to the maximum delay time specified by the user. In the following, jobs whose job model is Weak Batch are called Weak Batch jobs.
[0025] The maximum delay time is also specified by the user for Weak Batch jobs. Weak Batch jobs are executed so as not to exceed the maximum delay time, taking into account node sharing. For Weak Batch jobs, the maximum delay time is the upper limit of the time waiting for execution in the queue plus the delay time in job supply.
[0026] If the execution waiting time in the queue is close to the maximum delay time, it is difficult to secure time to allocate to node sharing, so the weak batch job is executed in the same way as a strict batch job. In other words, the weak batch job in this case is executed like job A in Figure 2. In this case, it is sufficient if the execution waiting time in the queue shown in area 301 is less than the specified maximum delay time.
[0027] On the other hand, if the execution waiting time in the queue is shorter than the maximum delay time, the Weak Batch job will be executed while sharing nodes with other jobs within the time range obtained by subtracting the execution waiting time in the queue from the maximum delay time. In this case, the Weak Batch job will be executed like job B or C in Figure 2.
[0028] In the case of job B, there is no waiting time for execution in the queue, and it is sufficient if the sum of the execution times of the other jobs shown in areas 311 to 314 is less than the maximum delay time. In addition, in the case of job C, it is sufficient if the sum of the waiting time for execution in the queue shown in area 321 and the execution times of the other jobs shown in areas 322 and 323 is less than the maximum delay time.
[0029] In addition, when specifying the maximum delay time for a weak batch job, the time itself may be specified, or other indicators may be used. For example, since it can be assumed that the longer the execution time, the longer the delay time can be tolerated, the overhead rate of the execution time may be used to specify the maximum delay time.
[0030] FIG. 3 is a diagram showing the specification of maximum delay time using overhead rate. In FIG. 3, the vertical axis shows maximum delay time, and the horizontal axis shows execution time. Graph 331 shows the change in maximum delay time according to execution time when the overhead rate is 15%. Graph 332 shows the change in maximum delay time according to execution time when the overhead rate is 10%. Graph 333 shows the change in maximum delay time according to execution time when the overhead rate is 5%.
[0031] Regardless of the overhead rate, the maximum delay time increases from a fixed initial value according to the execution time. However, the smaller the overhead rate, the smaller the rate at which the maximum delay time increases over time. When the overhead rate is 0%, the maximum delay time is a constant value, and for Strict Batch jobs, it is preferable to use a maximum delay time with an overhead rate of 0.
[0032] When providing a service that uses the HPC system 100, the usage price is generally set so that the longer the maximum delay time, the higher the usage price. Therefore, the lower the overhead rate is set, the more significantly the price can be reduced. When a user executes a Weak Batch job on the HPC system 100, the user can select the overhead rate according to the price.
[0033] Here, since the specific maximum delay time does not need to be known for a Weak Batch job, usability can be improved by being able to specify the maximum delay time using an indirect ratio such as an overhead rate, even if the user does not directly grasp the maximum delay time. Furthermore, when using a method of specifying an indirect ratio such as an overhead rate, the maximum delay time may dynamically increase as execution time elapses. In such a case, even if the HPC system 100 uses up the maximum delay time once and the Weak Batch job is executed exclusively, the leeway for the maximum delay time will be restored over time, so the Weak Batch job can be executed again using shared nodes.
[0034] Furthermore, in conventional batch job scheduling, a maximum execution time is specified. In contrast, in the HPC system 100 according to this embodiment, it is not necessary to specify a maximum execution time for strict batch jobs and weak batch jobs, i.e., for batch jobs in general. This is for the following reason. The maximum execution time is primarily used for the backfill function, but in the HPC system 100 according to this embodiment, jobs are assigned by time division, making the backfill function less important. Furthermore, batch jobs often run for long periods of time, resulting in large absolute errors, making it difficult to estimate the maximum execution time and unreliable. However, a maximum execution time may be set to terminate a batch job after a certain period of time to avoid long execution times. For example, a maximum execution time may be set for a weak batch job, such that it can run for up to 24 hours if not specified, and must be specified if it runs for longer than that. This weak batch job is an example of a "first job."
[0035] On-Demand is a job model that allows node sharing and is executed with a specified maximum execution time. The maximum execution time is the allowable time until the job is completed. In the following, jobs with an On-Demand job model are referred to as On-Demand jobs. An On-Demand job can be completed within the maximum execution time after being input.
[0036] Here, for On-Demand jobs, the maximum execution time is specified by the user, but there is often a discrepancy between the specified maximum execution time and the actual execution time. This is because it is difficult for users to predict execution times, so it is assumed that they will set a longer maximum execution time as a precaution. For example, even if an On-Demand job is actually predicted to finish in about 30 minutes, the user may set the maximum execution time to about one hour, considering the possibility of execution delays due to IO (Input Output) processing, etc.
[0037] To guarantee the worst-case value for Weak Batch jobs, users who execute On-Demand jobs reserve the maximum execution time when submitting the job, but if the maximum execution time is over-reserved, there will be a large discrepancy between the actual execution time and the maximum execution time. The maximum delay time of a Weak Batch job is also the time resource for executing On-Demand jobs and Spot jobs, so if overall time margins are tight, it is preferable to reduce the over-reservation and execute as many On-Demand and Spot jobs as possible. This On-Demand job is an example of a "secondary job."
[0038] Spot is a job model that allows node sharing and can be preempted at any time. In other words, Spot is a job model that makes effective use of available resources. Hereinafter, a job whose job model is Spot will be referred to as a Spot job.
[0039] Both On-Demand jobs and Spot jobs are jobs that perform interactive processing through two-way communication with the user. Hereinafter, On-Demand jobs and Spot jobs will be collectively referred to as interactive jobs.
[0040] Here, the maximum execution time specified for an On-Demand job and preemption performed for a Spot job are elements that guarantee the worst-case value for a Weak Batch job. For example, when an On-Demand job is deployed to a specific compute node 2, it is assumed that the maximum execution time will be consumed, and a determination is made as to whether it can be executed by sharing the node with a Weak Batch job. If the node is shared, it is possible to determine whether it can be executed by sharing the node with a Weak Batch job based on whether the maximum delay time of the Weak Batch job is exceeded. In this case, the maximum execution time is the time counted as the time consumed by the On-Demand job, not the total execution time (wall time) including node sharing. Furthermore, a Spot job is preempted and stopped when the execution of a Weak Batch job is about to exceed the maximum delay time.
[0041] It can be said that a batch job is a job intended to be executed for a long time, and an interactive job is a job intended to be executed for a short time.
[0042] The job information management unit 103 receives input of job information and job model information from the job model determination unit 102. The job information management unit 103 also receives input of job model information of a submitted job from the job model determination unit 102. The job information management unit 103 then manages both the job information and the job model for the job.
[0043] More specifically, the job information management unit 103 holds information indicating whether a job is a strict batch job, a weak batch job, an on-demand job, or a spot job. The job information management unit 103 also holds information on the maximum delay time of a weak batch job and the maximum execution time of an on-demand job. The job information management unit 103 also holds information on the job input time, which is the time when the job is input by the user. The job information management unit 103 also holds information on the job itself.
[0044] The job allocation determination unit 104 has a queue (not shown) for storing batch jobs. The job allocation determination unit 104 acquires information about submitted jobs from the job information management unit 103. Hereinafter, the job acquired by the job allocation determination unit 104 is referred to as a "target job." Then, the job allocation determination unit 104 determines when and to which node the target job can be allocated, depending on the job model of the target job. For example, the job allocation determination unit 104 makes a job allocation determination in the following procedure.
[0045] The job allocation determination unit 104 determines whether or not resources for job execution exist for a target job based on the job model. Here, an example will be described in which the execution order of jobs is controlled using FIFO (Fast In Fast Out) scheduling.
[0046] In the following, we will explain the case where the target job is a Strict Batch job. The job deployment determination unit 104 calculates the sum of the number of available nodes, which is the number of computation nodes 2 that are not currently being used, and the number of computation nodes 2 that are executing a Spot job and are not executing jobs of other job models.
[0047] Here, since Spot jobs can be stopped at a desired timing by preemption, the computation nodes 2 that are executing Spot jobs and not executing jobs of other job models can be said to be essentially free nodes. Therefore, the total value calculated by the job allocation determination unit 104 here can be said to be the number of computation nodes 2 that are essentially not being used, and will be referred to as the "effective number of free nodes" below, and the "Node free ". The number of compute nodes 2 used in the target job is called the "number of nodes used" and the "Node required "It can sometimes be expressed as ".
[0048] Then, the job allocation determination unit 104 determines whether the number of substantially available nodes is equal to or greater than the number of nodes in use, i.e., whether the number of nodes in use is equal to or greater than the number of nodes in use. free ≧Node requiredDetermine whether it is. Also, since it is FIFO scheduling, the job deployment determination unit 104 determines whether there are no other Strict Batch jobs or Weak Batch jobs stored in the queue and waiting for execution. If the above two conditions are satisfied, the job deployment determination unit 104 determines that there are resources for job execution for the target job that is a Spot job.
[0049] Next, the case where the target job is a Weak Batch job will be described. First, the job deployment determination unit 104 calculates the substantially free node count.
[0050] Second, the job deployment determination unit 104 calculates the number of computing nodes 2 that can be used when an On-Demand job is already running and a Weak Batch job is to be deployed hereafter. Specifically, the job deployment determination unit 104 calculates the sum of the maximum execution times of the running On-Demand jobs to be greater than 0 and less than the maximum delay time of the Weak Batch job that is the target job, and further calculates the number of computing nodes 2 on which the Weak Batch job is not being executed.
[0051] Here, the sum of the maximum execution times of the running On-Demand jobs on a specific computing node 2 is represented by the symbol "SumMaxExeTime", and the maximum delay time of the Weak Batch job that is the target job is represented by the symbol "MaxLatTime". That is, the job deployment determination unit 104 calculates 0 < SumMaxExeTime < MaxLatTime and the number of computing nodes 2 on which the Weak Batch job is not being executed. 0 < SumMaxExeTime indicates that one or more On-Demand jobs are being executed on that computing node 2. Also, SumMaxExeTime < MaxLatTime indicates that deploying the target job to that computing node 2 will not exceed the specified maximum delay time. Hereinafter, the number of computing nodes 2 calculated by the job deployment determination unit 104 here will be referred to as the "number of nodes transitionable from OD to WB", and "Node" od-wb" Here, OD stands for "On-Demand" and WB stands for "Weak Batch."
[0052] Then, the job allocation determination unit 104 calculates the total number of substantially free nodes and the number of nodes that can transition from OD to WB, i.e., the Node free +Node od-wb Then, the job allocation determination unit 104 determines whether the calculated total value is equal to or greater than the number of nodes in use, in other words, whether the number of nodes in use is equal to or greater than the number of nodes in use. free +Node od-wb ≧Node required The job placement determination unit 104 also determines whether there are any other strict batch jobs or weak batch jobs stored in the queue and waiting to be executed. If the above two conditions are met, the job placement determination unit 104 determines that there are resources available for job execution for the target job, which is a weak batch job.
[0053] Next, a case where the target job is an On-Demand job will be described. First, the job allocation determination unit 104 calculates the number of substantially available nodes.
[0054] Second, the job deployment determination unit 104 calculates the number of computation nodes 2 on which an On-Demand job is already running and which can be used when an On-Demand job or a Spot job is to be deployed. Specifically, the job deployment determination unit 104 calculates the number of computation nodes 2 on which the number of On-Demand jobs or Spot jobs currently running is greater than 0 and less than the maximum number of On-Demand or Spot jobs simultaneously running in the node, and which are not executing a Weak Batch job.
[0055] Here, the number of On-Demand jobs or Spot jobs being executed on a specific computing node 2 is represented as "SumIntJob", and the maximum number of concurrent executions of On-Demand or Spot jobs is represented as "MaxIntjob". That is, the job deployment determination unit 104 calculates the number of computing nodes 2 where 0 < SumintJob < MaxIntJob and the Weak Batch job is not being executed. Hereinafter, the number of computing nodes 2 calculated by the job deployment determination unit 104 here is referred to as the "number of available nodes for OD" and may be represented as "Node od-int ".
[0056] Thirdly, the job deployment determination unit 104 calculates the number of computing nodes 2 that can be used when a Weak Batch job is already running and an On-Demand job is to be deployed hereafter. Specifically, the job deployment determination unit 104 identifies the computing nodes 2 where the number of On-Demand jobs or Spot jobs being executed is less than the maximum number of concurrent executions of On-Demand or Spot jobs within the node. Then, the job deployment determination unit 104 calculates the number of computing nodes 2 among the identified computing nodes 2 where the Weak Batch job is being executed and the time that has not been reserved for the On-Demand job among the running Weak Batch jobs is longer than or equal to the maximum execution time of the On-Demand job to be deployed.
[0057] Here, the time that has not been reserved for the On-Demand job among the running Weak Batch jobs is represented as "WBTimeLeft", and the maximum execution time of the On-Demand job to be deployed is represented as "MaxExeTime". That is, the job deployment determination unit 104 calculates the number of computing nodes 2 that satisfy SumintJob < MaxIntJob, where the Weak Batch job is being executed, and WBTimeLeft ≥ MaxExeTime. Hereinafter, the number of computing nodes 2 calculated by the job deployment determination unit 104 here is referred to as the "number of nodes migratable from WB to OD" and may be represented as "Node wb-od ".
[0058] Then, the job allocation determination unit 104 determines whether the total of the number of substantially free nodes, the number of nodes that can use OD, and the number of nodes that can transition from WB to OD is equal to or greater than the number of nodes in use, in other words, the number of nodes free +Node od-int +Node wb-od ≧Node required If this condition is met, the job deployment determining unit 104 determines that the resources for job execution exist for the target job, which is an On-Demand job.
[0059] In this way, the job deployment determination unit 104 determines whether the second job, which is an On-Demand job, can be deployed to a predetermined computing node 2, i.e., whether the second job can be executed by the predetermined computing node 2. Here, the predetermined computing node 2 is a set of computing nodes 2 counted as the number of substantially free nodes, the number of OD usable nodes, or the number of nodes that can transition from WB to OD.
[0060] Next, a case where the target job is a Spot job will be described. First, the job allocation determination unit 104 calculates the number of substantially available nodes. Second, the job allocation determination unit 104 calculates the number of OD available nodes.
[0061] Third, the job deployment determination unit 104 calculates the number of computation nodes 2 on which weak batch jobs are already running and which can be used when a spot job is to be deployed. Specifically, the job deployment determination unit 104 identifies computation nodes 2 on which the number of running on-demand jobs or spot jobs is less than the maximum number of on-demand or spot jobs that can be executed simultaneously within the node. Then, the job deployment determination unit 104 calculates the number of computation nodes 2 among the identified computation nodes 2 that are executing weak batch jobs and for which the time that has not yet been reserved for on-demand jobs among the running weak batch jobs is greater than 0.
[0062] That is, the job allocation determination unit 104 calculates the number of computing nodes 2 that satisfy SumintJob < MaxIntJob, are executing a Weak Batch job, and satisfy WBTimeLeft > 0. Hereinafter, the number of computing nodes 2 calculated by the job allocation determination unit 104 will be referred to as the "number of nodes that can transition from WB to SP", and may be represented as "Node wb-spot ". Here, SP indicates "Spot".
[0063] Then, the job allocation determination unit 104 determines whether the sum of the number of free nodes, the number of nodes available for OD use, and the number of nodes that can transition from WB to SP is greater than or equal to the number of used nodes, in other words, Node free + Node od-int + Node wb-spot ≧ Node required . If this condition is satisfied, the job allocation determination unit 104 determines that there are resources for job execution for the target job that is an On-Demand job.
[0064] If there are no resources for job execution for the target job, the job allocation determination unit 104 determines whether the target job is a batch job or an interactive job. If the target job is a batch job, the job allocation determination unit 104 stores the target job in the queue. On the other hand, if the target job is an interactive job, the job allocation determination unit 104 notifies the user of an error. For example, if the target job is an On-Demand job that is the second job, the job allocation determination unit 104 notifies the user of an error when there are no resources for job execution for the target job, that is, when a predetermined computing node 2 cannot execute the second job.
[0065] Since an interactive job is required to be executed immediately, the job allocation determination unit 104 notifies the user of an error if there are insufficient resources and the target job, which is an interactive job, cannot be executed immediately. However, the job allocation determination unit 104 can suppress the occurrence of this error because it schedules jobs so as to execute interactive jobs immediately as much as possible.
[0066] If the resources for job execution are available for the target job, the job allocation determination unit 104 determines to allocate the target job to an available computation node 2. Next, the job allocation determination unit 104 instructs the time resource management unit 105 to determine whether there is a shortage of time resources.
[0067] Thereafter, the job placement determination unit 104 obtains the result of the determination of the shortage of time resources from the time resource management unit 105. If there is no shortage of time resources, the job placement determination unit 104 outputs information about the submitted job and the computing node 2 on which the job is to be placed to the request sending unit 106, and ends the job placement process.
[0068] On the other hand, if there is a shortage of time resources, the job placement determination unit 104 causes the priority processing determination unit 107 to perform priority processing determination. After that, the job placement determination unit 104 outputs information about the submitted job and the computing node 2 to which the job is to be placed to the request sending unit 106, and ends the job placement process.
[0069] The time resource management unit 105 receives an instruction to execute a time resource shortage determination from the job allocation determination unit 104. Then, the time resource management unit 105 can determine whether or not there is a time resource shortage using the following determination index. Thereafter, the time resource management unit 105 notifies the job allocation determination unit 104 of the result of the time resource shortage determination.
[0070] Here, the determination of whether there is a shortage of time resources does not mean a determination of whether it is difficult to execute the target job, but rather a determination of whether there will be a shortage of time resources to execute another job if the target job is submitted, i.e., whether there is sufficient time resources. In other words, the determination of whether there is a shortage of time resources is an example of "determining whether there is a shortage of time resources." The job deployment determination unit 104 determines whether there is a shortage of time resources, which are used to alternately execute a first job, a weak batch job, and a second job, an on-demand job, on a given computing node 2 over time. The job deployment determination unit 104 also acquires a maximum delay time, which is an upper limit on the delay in completing the execution of the first job, and a maximum execution time, which is an upper limit on the execution time of the second job, and determines whether there is a shortage of time resources based on the maximum delay time and the maximum execution time. The job deployment determination unit 104 also determines whether there is a shortage of time resources when a given computing node 2 is changed from a state in which it executes the first job to a state in which it executes the first job and the second job alternately.
[0071] The time resource management unit 105 calculates the number of substantially available nodes (Node free ) as an index, the time resource management unit 105 can determine whether there is a shortage of time resources based on how much time resources are available on a node-by-node basis. For example, the time resource management unit 105 can determine that there is a shortage of time resources when the number of substantially available nodes is less than 10% of the total number of all the computation nodes 2.
[0072] Furthermore, the time resource management unit 105 can use, as an index, a WB non-execution free resource that indicates how much time resource is free when a weak batch job is not running. Here, the WB non-execution free resource is referred to as "IntJob freeFor example, the time resource management unit 105 identifies an interactive job execution node that is a calculation node 2 that executes an interactive job but does not execute a batch job. Then, the time resource management unit 105 can determine the total of the values obtained by subtracting the number of On-Demand jobs or Spot jobs currently being executed from the maximum number of On-Demand jobs or Spot jobs simultaneously executed in each interactive job execution node as the WB non-execution free time. In other words, the time resource management unit 105 determines the IntJob free =Σ インタラクティブジョブ実行ノード The WB non-execution free resource can be calculated as (MaxIntJob-SumIntJob).
[0073] For example, the time resource management unit 105 can determine that there is a shortage of time resources when the number of available WB non-execution resources is less than 10% of the total maximum number of On-Demand jobs or Spot jobs simultaneously executed by the interactive job execution node.
[0074] Furthermore, the time resource management unit 105 can use free WB job execution resources, which indicate how much free resource is available when a weak batch job is running, as an index. Here, the free WB execution resources may be expressed as "total WBTimeLeft." For example, the time resource management unit 105 can determine the free WB job execution resources as the total time of the weak batch jobs currently being executed that has not yet been reserved for an on-demand job. In other words, the time resource management unit 105 can calculate the free WB execution resources as total WBTimeLeft = ΣWBTimeLeft. For example, the time resource management unit 105 can determine that there is a shortage of time resources when the free WB job execution resources are less than 10 hours.
[0075] Alternatively, the time resource management unit 105 may determine whether or not there will be a shortage of time resources by using any one or a combination of all of the node-unit free time, the WB non-execution free time, and the WB execution free time.
[0076] When time resources are insufficient, the priority processing determination unit 107 receives an instruction to perform priority processing determination from the job allocation determination unit 104. Then, the priority processing determination unit 107 determines, among the jobs executed by each calculation node 2, an On-Demand job as a job to be prioritized. Then, the priority processing determination unit 107 determines a priority processing schedule for processing the prioritized job preferentially. Thereafter, the priority processing determination unit 107 notifies the request sending unit 106 of the determined priority processing schedule.
[0077] For example, the priority processing determination unit 107 holds information about time slices, which are time resources having a predetermined length of time. The priority processing determination unit 107 then creates a priority processing schedule by increasing the number of time slices of a predetermined length assigned to a prioritized job, rather than using a round-robin approach with fixed time slice intervals. Specifically, when switching between two jobs with one-second time slices, the priority processing determination unit 107 does not alternately assign time slices, but instead creates a schedule in which the prioritized job is executed N times (N seconds) before the other job is executed once (1 second). This method is count-based priority processing.
[0078] Alternatively, the priority processing determination unit 107 may create a priority processing schedule by dynamically allocating time intervals for time slices. For example, the priority processing determination unit 107 creates a priority processing schedule by allocating long time slices to priority jobs and short time slices to other jobs. This method is time-based priority processing.
[0079] Finally, the job is executed by the computing node 2 according to the schedule created by the priority processing determination unit 107, and this execution by the computing node 2 is an example of a "second execution." That is, when time resources are tight, the priority processing determination unit 107 increases the execution priority of the On-Demand job, which is the second job, and allocates time to the Weak Batch job, which is the first job, and the second job, causing a predetermined computing node 2 to perform the second execution. The priority processing determination unit 107 may increase the number of time slices allocated to the second job compared to the first job. Furthermore, the priority processing determination unit 107 may make the length of the time slice allocated to the second job longer than that of the first job.
[0080] Here, the priority processing determination unit 107 does not have to allocate time slices at a fixed rate, but may determine a schedule for priority processing so that the degree of priority increases as time passes. In other words, the priority processing determination unit 107 may change the priority depending on the state of time resource pressure. For example, the operation of the priority processing determination unit 107, which increases the degree of priority, will be described using an example in which the time resource management unit 105 determines that there is a shortage of time resources when the available resources for executing a WB job are less than 10 hours.
[0081] If the priority processing determination unit 107 determines that the available resources for executing WB jobs are less than 10 hours, the time resource management unit 105 receives an instruction to perform priority processing determination and information on the available resources for executing WB jobs from the job allocation determination unit 104. Then, the priority processing determination unit 107 creates a priority processing schedule by allocating twice the time slices of a predetermined length to the prioritized jobs and allocating one time slice of a predetermined length to the other jobs.
[0082] Furthermore, the priority processing determination unit 107 continuously receives information on available resources for executing WB jobs from the job allocation determination unit 104. When the available resources for executing WB jobs become less than five hours, the priority processing determination unit 107 creates a priority processing schedule by allocating four times the number of time slices of a predetermined length to the prioritized job and allocating one time slice of a predetermined length to the other jobs. As described above, the priority processing determination unit 107 may change the degree of time slice allocation.
[0083] Alternatively, the shortage determination threshold for determining shortage of the index used for the time resource may be variable, and the priority processing determination unit 107 may change the degree of priority processing of the prioritized job based on the degree of shortage according to the change in the threshold. The degree of priority processing may be, for example, the number of time slices to be assigned in the number-of-times-based priority processing, or the length of the time slice to be assigned in the time-based priority processing.
[0084] For example, the time resource management unit 105 changes the shortage determination threshold and acquires the shortage level of time resources according to the change in the shortage determination threshold. Then, the job allocation determination unit 104 notifies the priority processing determination unit 107 of the shortage determination threshold and the corresponding information on the shortage level of time resources acquired from the time resource management unit 15. Then, the priority processing determination unit 107 changes the degree of priority processing of the prioritized job according to the notified shortage determination threshold and the corresponding information on the shortage level of time resources.
[0085] The request sending unit 106 receives input of information about the submitted job and information about the computing node 2 to be deployed from the job deployment determination unit 104. Furthermore, when there is a shortage of time resources, the request sending unit 106 receives input of a priority processing schedule from the priority processing determination unit 107.
[0086] If there is no shortage of time resources, the request sending unit 106 sends a request to switch to the submitted job to the scheduler agent 20 of the specified calculation node 2. If there is a shortage of time resources, the request sending unit 106 sends a request to switch to the submitted job and a request to schedule priority processing to the scheduler agent 20 of the specified calculation node 2.
[0087] Here, if the target job is an On-Demand job, there is no request for a priority processing schedule, and the specified computing node 2 is executing a Weak Batch job, the On-Demand job and the Weak Batch job are executed alternately in the same time slice. In this case, the execution of the On-Demand job and the Weak Batch job by the computing node 2 is an example of a "first execution." In other words, when time resources are not tight, the job allocation determination unit 104 allocates equal time to the first job and the second job and causes a specified computing node 2 to execute the first execution. More specifically, it can be said that the job allocation determination unit 104 allocates time slices of a predetermined length to the first job and the second job alternately over time and causes a specified computing node 2 to execute the first execution.
[0088] FIG. 4 is a diagram showing an example of job scheduling. In FIG. 4, the horizontal axis represents the passage of time, and shows the execution status of jobs on one computing node 2. In FIG. 4, grayed-out areas indicate that weak batch jobs are being executed, and shaded areas indicate that on-demand jobs are being executed. Here, an overview of job scheduling by the management node 1 will be described with reference to FIG. 4.
[0089] When a Weak Batch job and an On-Demand job are executed by node sharing, the management node 1 according to this embodiment schedules each job, for example, as shown in Fig. 4. When a Weak Batch job is submitted, the management node 1 executes the Weak Batch job in section 341, and then, when an On-Demand job is submitted, the management node 1 starts executing the job by node sharing.
[0090] While the target computing node 2 has available time resources, the management node 1 switches the computing node 2 in a round-robin manner in section 342 to execute the Weak Batch job and the On-Demand job in a fair manner.
[0091] When time resources become tight, the management node 1 determines that time resources are insufficient and executes the On-Demand job with priority in section 343. Thereafter, the management node 1 can increase the priority of the On-Demand job compared to section 343, as shown in section 344.
[0092] Here, since the actual execution time of a job cannot be determined accurately until execution is completed, the management node 1 prioritizes the execution of on-demand jobs to quickly eliminate over-reservation of on-demand jobs and free up time resources. In this way, by flexibly changing the priority according to the tightness of time resources, the management node 1 can take early action rather than suddenly responding after time resources become insufficient.
[0093] 1, the following description will continue with reference to the computing node 2. Each computing node 2 has a scheduler agent 20 and a job execution unit 21. The scheduler agent 20 has a job management unit 201, a job switching unit 202, a time slice management unit 203, and a request receiving unit 204.
[0094] The request receiving unit 204 receives, via the network, a request transmitted from the request transmitting unit 106 of the management node 1. Then, the request receiving unit 204 outputs the request to the time slice management unit 203.
[0095] If the request does not include a request for a priority processing schedule, the time slice management unit 203 outputs a job switching request to the job switching unit 202. However, if a weak batch job and an on-demand job are to be executed by sharing nodes, the time slice management unit 203 determines the allocation of time slices so that the weak batch job and the on-demand job are executed fairly while switching between them in a round-robin manner. Then, the time slice management unit 203 outputs the job switching request and information on the determined time slices to the job switching unit 202.
[0096] If the request includes a request for a priority processing schedule, the time slice management unit 203 determines when and how much time slice to allocate to each job. The time slice management unit 203 then outputs the job switching request and information on the determined time slice to the job switching unit 202.
[0097] The job switching unit 202 receives an input of a job switching request from the time slice management unit 203. Furthermore, if time slice information exists, the job switching unit 202 receives an input of the time slice information from the time slice management unit 203.
[0098] Then, the job switching unit 202 outputs a job switching instruction corresponding to the request to the job management unit 201. Furthermore, when the time slice information is acquired, the job switching unit 202 counts the elapsed time using its own timer, and when the time slice time has elapsed, outputs a request to switch to the next job to the job management unit 201.
[0099] The job management unit 201 manages jobs being executed on this calculation node 2. The job management unit 201 receives a job switching instruction from the job switching unit 202. If the job execution unit 21 is currently executing a job, the job management unit 201 causes the job execution unit 21 to switch the job to be executed from the currently executing job to the specified job. If no job is currently being executed, the job management unit 201 causes the job execution unit 21 to start executing the specified job.
[0100] The job execution unit 21 executes a job deployed to the calculation node 2 on which it operates. The job execution unit 21 switches the job to be executed in response to an instruction from the job management unit 201.
[0101] Fig. 5 is a diagram showing an example of a job execution state by gang scheduling. Fig. 6 is a diagram showing an example of a job execution state by an HPC system according to an embodiment. In both Figs. 5 and 6, the vertical axis represents nodes #1 to #N, and the horizontal axis represents time. Next, a comparison between job execution by gang scheduling and job execution by an HPC system 100 according to an embodiment will be described with reference to Figs. 5 and 6.
[0102] Here, the following situation will be described as an example. The HPC system 100 is a cluster environment having N (N is a number greater than 4) computation nodes 2, that is, nodes #1 to #N. A strict batch job using N-4 computation nodes 2 is already running. This strict batch job is a long-running job and will not finish within the time frame described here. Next, a weak batch job using four computation nodes 2 and with a maximum delay time of one hour is submitted to the HPC system 100. In this case, the management node 1 causes the submitted weak batch job to be executed on the four available computation nodes 2. As a result, there are no available computation nodes 2. This submitted weak batch job is also a long-running job and will not finish within the time frame described here. Next, a first on-demand job using three computation nodes 2 and with a maximum execution time of one hour is submitted to the HPC system 100. Because the maximum delay time of the Weak Batch job that has already started execution is one hour, the management node 1 causes the compute node 2 to execute the Weak Batch job and the first On-Demand job in a node-sharing manner. Here, the first On-Demand job has a maximum execution time of one hour, but it actually finishes in 30 minutes. However, the management node 1 does not know that the first On-Demand job will actually finish in 30 minutes. Furthermore, 45 minutes after the first On-Demand job is submitted, a second On-Demand job that uses two compute nodes 2 and has a maximum execution time of 30 minutes is submitted to the HPC system 100.
[0103] When each job is executed by gang scheduling under the above conditions, the execution state will be as shown in Figure 5. In Figure 5, nodes #5 to #N execute a strict batch job. Then, at time T1, a weak batch job is submitted, and nodes #1 to #4 execute the submitted weak batch job. The shaded area 351 in nodes #1 to #4 indicates that the weak batch job is being executed.
[0104] Next, at time T2, the first On-Demand job is submitted. Using gang scheduling, nodes #1 to #3 alternately execute the Weak Batch job and the first On-Demand job in the same time slice. The area 352 marked with a diagonal line pattern in nodes #1 to #3 indicates that the first On-Demand job is being executed. Here, by alternately executing the Weak Batch job and the first On-Demand job in the same time slice in area 353, nodes #1 to #3 can complete the first On-Demand job 60 minutes after time T2. However, while the first On-Demand job is being executed, it is unclear when the execution of the first On-Demand job will be completed.
[0105] Next, at time T3, a second On-Demand job is submitted. At time T3, the one-hour resource allocation from time T2 to time T4, which is available for node sharing in Weak Batch jobs, is reserved for the first On-Demand job, and no free nodes exist. Therefore, the second On-Demand job cannot be executed immediately. Therefore, the execution of the second On-Demand job results in an error.
[0106] On the other hand, the HPC system 100 according to this embodiment assumes the execution state shown in Fig. 6. In Fig. 6 as well, a strict batch job is executed in nodes #5 to #N. Then, at time T11, a weak batch job is submitted, and nodes #1 to #3 execute the submitted weak batch job. The gray-filled areas 361 in nodes #1 to #3 indicate that the weak batch job is being executed.
[0107] Next, at time T12, the first On-Demand job is submitted. The job allocation determination unit 104 of the management node 1 determines that the nodes #1 to #3 will execute the Weak Batch job and the first On-Demand job in a node-shared manner. The time resource management unit 105 determines that there will be a shortage of time resources because the available resources for executing the WB job until the end of the maximum execution time of the first On-Demand job are one hour, which is less than ten hours. Therefore, the priority processing determination unit 107 raises the priority of the first On-Demand job and creates a schedule such that two time slices of the first On-Demand job are executed for each time slice of the Weak Batch job. The area 362 with a diagonal line pattern in nodes #1 to #3 indicates that the first On-Demand job will be executed. As a result, the management node 1 causes nodes #1 to #3 to repeatedly execute the Weak Batch job in one time slice and then execute the first On-Demand job in two time slices in an area 363. In this case, the first On-Demand job is completed 45 minutes after time T12, and the over-reserved 30 minutes from time T13 onwards are released.
[0108] Next, at time T13, a second On-Demand job is submitted. At time T13, there is a 30-minute time resource available for node sharing, so the second On-Demand job is executed immediately. In this case, the job deployment determination unit 104 does not notify an error regarding the execution of the second On-Demand job.
[0109] As described above, even if gang scheduling results in an error and the second On-Demand job is not executed, by using the HPC system 100 according to the embodiment, both the first On-Demand job and the second On-Demand job can be executed.
[0110] 7 is a flowchart of the job scheduling process by the job scheduler 10. Next, the flow of the job scheduling process by the job scheduler 10 will be described with reference to FIG.
[0111] The job receiving unit 101 receives an submitted job (step S1). Hereinafter, the submitted job will be referred to as a "target job."
[0112] The job model determination unit 102 acquires the target job from the job receiving unit 101 and determines whether the job model of the target job is a strict batch job, a weak batch job, an on-demand job, or a spot job (step S2). The job information management unit 103 stores information about the target job, the job input time, and information about the job model.
[0113] The job allocation determining unit 104 determines whether or not resources for executing the target job exist based on the job model (step S3).
[0114] If the resources for job execution are available (step S3: Yes), the job allocation determination unit 104 allocates the job to an available computing node 2 (step S4).
[0115] Next, the time resource management unit 105 determines whether or not there is a shortage of time resources (step S5). If there is no shortage of time resources (step S5: No), the job scheduling process proceeds to step S10.
[0116] On the other hand, if there is a shortage of time resources (step S5: Yes), the priority processing determination unit 107 determines a job to be prioritized and creates a priority processing schedule by giving priority to the execution of the determined priority job (step S6). Then, the job scheduling process proceeds to step S10.
[0117] On the other hand, if there are no resources for executing the job (step S3: No), the job allocation determining unit 104 determines whether the target job is an interactive job (step S7).
[0118] If the target job is not an interactive job (step S7: No), the job allocation determination unit 104 stores the target job in a waiting queue (step S8), and the job scheduling process proceeds to step S10.
[0119] On the other hand, if the target job is an interactive job (step S7: Yes), the job allocation determination unit 104 issues an error notification (step S9), and the job scheduling process then proceeds to step S10.
[0120] Thereafter, if there is no shortage of time resources, the request sending unit 106 sends a request to switch to the target job to the scheduler agent 20 of the computing node 2 designated by the job placement determination unit 104 as the destination of the job. Alternatively, if there is a shortage of time resources, the request sending unit 106 sends a request to switch to the target job and a request to schedule priority processing to the scheduler agent 20 of the computing node 2 designated by the job placement determination unit 104 as the destination of the job. Then, the request sending unit 106 determines whether to terminate the job scheduler 10 (step S10). For example, the request sending unit 106 can determine whether to terminate the job scheduler 10 based on whether an instruction to stop operation has been input from an administrator using an input device (not shown). If it is determined not to terminate the job scheduler 10 (step S10: No), the job scheduling process returns to step S1. On the other hand, if it is determined that the job scheduler 10 should be terminated (step S10: Yes), the job scheduler 10 stops operating. Here, the request sending unit 106 determines whether or not to terminate the job scheduler 10, but another function in the management node 1 may also make the determination.
[0121] 8 is a flowchart of the job management process by the scheduler agent 20. Next, the flow of the job management process by the scheduler agent 20 will be described with reference to FIG.
[0122] The request receiving unit 204 receives a request transmitted from the request transmitting unit 106 of the job scheduler 10 (step S21).
[0123] Next, the time slice management unit 203 determines whether or not there is a request for priority processing among the requests received by the request receiving unit 204 (step S22).
[0124] If there is no request for priority processing (step S22: No), the job switching unit 202 notifies the job management unit 201 of the job switching. Upon receiving the notification of the switching, the job management unit 201 switches the job to be executed by the job execution unit 21 to the target job specified in the request (step S23). At this time, if the job is executed by node sharing, the job management unit 201 instructs the job management unit 201 to alternately switch between the job being executed and the target job for each time slice. Then, the job management process proceeds to step S26.
[0125] On the other hand, if a request for priority processing exists (step S22: Yes), the time slice management unit 203 sets a time slice according to the schedule specified in the request for priority processing (step S24).
[0126] The job switching unit 202 instructs the job management unit 201 to switch between the currently running job and the target job in accordance with the time slice set by the time slice management unit 203. Upon receiving the instruction from the job switching unit 202, the job management unit 201 switches between the currently running job and the target job in accordance with the time slice and causes the job execution unit 21 to execute the job (step S25). Then, the job management process proceeds to step S26.
[0127] Thereafter, the job management unit 201 determines whether to terminate the scheduler agent 20 (step S26). For example, the job management unit 201 can determine whether to terminate the scheduler agent 20 based on whether an instruction to stop operation has been input from an administrator using an input device (not shown). If it is determined that the scheduler agent 20 should not be terminated (step S26: No), the job management process returns to step S21. On the other hand, if it is determined that the scheduler agent 20 should be terminated (step S26: Yes), the scheduler agent 20 stops operating. Here, the job management unit 201 determines whether to terminate the job scheduler 10, but another function in the calculation node 2 may also make the determination.
[0128] As described above, the management node of the HPC system according to this embodiment determines whether time resources are constrained when a weak batch job and an on-demand job are executed in a time-sharing manner using node sharing. If time resources are not constrained, the management node executes the weak batch job and the on-demand job alternately in the same time slice on the compute node. In contrast, if time resources are constrained, the management node increases the priority of the on-demand job, allocates time resources to the compute node, and finishes the on-demand job early, creating more time resources.
[0129] This speeds up the release of over-reserved resources, reduces the number of cases where resources are insufficient when an interactive job is submitted, and increases the likelihood that the submitted interactive job can be executed immediately. In achieving interactivity, the probability that a submitted job will be executed immediately is an important indicator, and improving this probability can improve the user experience. Therefore, processing performance can be improved while improving convenience.
[0130] (Hardware configuration) 9 is a hardware configuration diagram of a computer. Next, an example of the hardware configuration of a computer 90 for realizing the management node 1 and the calculation nodes 2 will be described with reference to FIG.
[0131] The computer 90 includes, for example, a CPU (Central Processing Unit) 91, memory 92, a storage device 93, a network interface 94, a graphics processing device 95, an input interface 96, an optical drive device 97, and a device connection interface 98. The CPU 91, memory 92, storage device 93, network interface 94, graphics processing device 95, input interface 96, optical drive device 97, and device connection interface 98 are connected to each other via a bus so as to be able to communicate with each other.
[0132] The CPU 91 controls the entire computer 90. By executing a program, the CPU 91 realizes the functions of the job scheduler 10 illustrated in FIG. 1 if it is the management node 1, and realizes the functions of the scheduler agent 20 and the job execution unit 21 if it is the calculation node 2.
[0133] The computer 90 may implement the functions of the job scheduler 10, the scheduler agent 20, and the job execution unit 21 by executing a program recorded on a readable non-transitory recording medium, for example.
[0134] The program describing the processing to be executed by the CPU 91 can be recorded on various recording media. For example, the program to be executed by the CPU 91 can be stored in a storage device 93. The CPU 91 loads at least a part of the program in the storage device 93 into the memory 92 and executes the loaded program.
[0135] The program to be executed by the CPU 91 may also be recorded on a non-transitory portable recording medium such as an optical disk, a memory device, or a memory card. The program stored on the portable recording medium becomes executable after being installed in the storage device 13, for example, under the control of the CPU 91. The CPU 91 may also read and execute the program directly from the portable recording medium.
[0136] The memory 92 is a storage memory including a ROM (Read Only Memory) and a RAM (Random Access Memory). The RAM of the memory 92 is used as the main storage device of the computer 90. The RAM temporarily stores at least a part of the program to be executed by the CPU 91. The memory 92 also stores various data necessary for processing by the CPU 91.
[0137] The storage device 93 is a storage device such as a hard disk drive (HDD), a solid state drive (SSD), or a storage class memory (SCM), and stores various data. The storage device 93 is used as an auxiliary storage device for the computer 90.
[0138] The network interface 94 is connected to a network. The network interface 94 transmits and receives data via the network. Other information processing devices, communication devices, etc. may be connected to the network.
[0139] A monitor is connected to the graphics processing unit 95. The graphics processing unit 95 displays images on the monitor screen in accordance with commands from the CPU 91. A keyboard and a mouse, for example, are connected to the input interface 96. The input interface 96 transmits signals sent from the keyboard and mouse to the CPU 91.
[0140] The optical drive device 97 uses a laser beam or the like to read data recorded on an optical disc. An optical disc is a portable, non-transitory recording medium on which data is recorded so that it can be read by reflected light. Examples of optical discs include DVDs (Digital Versatile Discs), DVD-RAMs, CD-ROMs (Compact Disc Read Only Memory), and CD-Rs (Recordable) / RWs (Rewritable).
[0141] The device connection interface 98 is a communication interface for connecting peripheral devices to the computer 90. For example, a memory device or a memory reader / writer can be connected to the device connection interface 98. The memory device is a non-transitory recording medium, such as a USB (Universal Serial Bus) memory, that has a function for communicating with the device connection interface 98. The memory reader / writer writes data to or reads data from a memory card, which is a card-type non-transitory recording medium. [Explanation of symbols]
[0142] 1 Management Node 2 Compute nodes 10 Job Scheduler 20 Scheduler Agent 21 Job Execution Unit 100 HPC systems 101 Job Receiving Unit 102 Job model determination unit 103 Job Information Management Department 104 Job allocation decision unit 105 Time Resource Management Department 106 Request sending unit 107 Priority processing determination unit 201 Job Management Department 202 Job Switching Unit 203 Time Slice Management Unit 204 Request Receiver
Claims
1. receiving a first job for batch processing and a second job for interactive processing with a user; determining, over time, a pressure on time resources used to alternately execute the first job and the second job on a predetermined computing node; If the time resource is not tight, allocating equal time to the first job and the second job, and causing the predetermined computing node to execute the first job; When the time resource is tight, the priority of the execution of the second job is increased, time is allocated to the first job and the second job, and the second job is executed on the predetermined computing node. A job execution control program that causes a computer to execute a process.
2. The computer further executing a process of acquiring a maximum delay time, which is an upper limit of a delay in completing the execution of the first job, and a maximum execution time, which is an upper limit of an execution time of the second job; The process of determining includes a process of determining whether the time resource is tight based on the maximum delay time and the maximum execution time.
2. The job execution control program according to claim 1.
3. the first execution process includes a process of alternately allocating time slices of a predetermined time length to the first job and the second job over time and causing the predetermined computing node to execute the first execution process; The second execution process includes a process of increasing the priority of the execution of the second job, allocating the time slice, and executing the first job and the second job on the predetermined computing node.
2. The job execution control program according to claim 1.
4. 4. The job execution control program according to claim 3, wherein the second execution process includes a process of increasing the number of time slices allocated to the second job compared to the number allocated to the first job.
5. 4. The job execution control program according to claim 3, wherein the second execution process includes a process of making the length of the time slice allocated to the second job longer than that of the first job.
6. 2. The job execution control program according to claim 1, wherein the second execution process changes the priority according to a state of pressure on the time resource.
7. the receiving process includes a process of receiving the second job after receiving the first job and causing the predetermined computing node to execute the first job; The process of determining whether the time resource is tight when the predetermined computing node is changed from a state where the first job is executed to a state where the first job and the second job are executed alternately.
2. The job execution control program according to claim 1.
8. The computer determining whether the second job can be executed by the predetermined computing node; If the predetermined computing node is capable of executing the second job, the determination process is performed; If the predetermined computing node is not capable of executing the second job, an error is notified.
2. The job execution control program according to claim 1, further comprising: a job execution control program for executing a job execution control process;
9. The computer receiving a first job for batch processing and a second job for interactive processing with a user; determining, over time, a pressure on time resources used to alternately execute the first job and the second job on a predetermined computing node; If the time resource is not tight, allocating equal time to the first job and the second job, and causing the predetermined computing node to execute the first job; When the time resource is tight, the priority of the execution of the second job is increased, time is allocated to the first job and the second job, and the second job is executed on the predetermined computing node. A job execution control method for executing a process.
10. a receiving unit that receives a first job for batch processing and a second job for interactive processing with a user; a time resource management unit that determines, over time, whether or not time resources used for alternately executing the first job and the second job on a predetermined computing node are tight; a job allocation determination unit that, when the time resource management unit determines that the time resource is not tight, allocates equal time to the first job and the second job and causes the predetermined computing node to execute the first job and the second job; a priority processing determination unit that, when the time resource management unit determines that the time resource is tight, increases the priority of the execution of the second job, allocates time to the first job and the second job, and causes the predetermined computing node to execute the second job; A job execution control device comprising:
Citation Information
Patent Citations
Method for executing parallel process, and multi-processor computer
WO2002069174A1