Job management program, job management method, and job management device

WO2025037397A1PCT designated stage expired Publication Date: 2025-02-20FUJITSU LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2023/029548
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-08-15
Publication Date
2025-02-20

Smart Images

  • Figure JP2023029548_20022025_PF_FP_ABST
    Figure JP2023029548_20022025_PF_FP_ABST
Patent Text Reader

Abstract

The present invention involves a system (110) having a plurality of nodes (111). An information processing device (100) stores recording information (130) about each of a plurality of jobs (120) entered into the system (110). The information processing device (100) identifies, on the basis of the recording information (130), one or more jobs (120), from among the plurality of jobs (120), for each of which an execution wait-period exceeding a predetermined length has occurred. The information processing device (100) generates, for each job (120) of the identified one or more jobs (120), output information (140) for visualizing the number of nodes (111) for executing the job (120) and the execution wait-period for the job (120). The output information (140) shows, for example, a Gantt chart format display screen (141) including an M-number of strip-shaped display regions (150) arranged in parallel along a time axis.
Need to check novelty before this filing date? Find Prior Art

Description

Job management program, job management method, and job management device

[0001] The present invention relates to an information processing program, an information processing method, and an information processing device.

[0002] Conventionally, there are systems that include multiple nodes and execute submitted jobs using one or more nodes. For example, the system executes jobs using the number of nodes specified when the job is submitted. Here, as the number of jobs submitted to the system increases, jobs may become queued for execution.

[0003] Prior art techniques include, for example, determining whether the minimum number of processors required by jobs waiting to be executed are available. Another technique pre-stores the number of processors that can be used simultaneously by jobs of each job class. Another technique executes a processing delay check job for each processing delay check pattern. Another technique dispatches jobs from a queue. Another technique graphically displays the status of a process.

[0004] Japanese Patent Application Publication No. 2012-146049

[0005] However, with the conventional technology, it is difficult to grasp the reason why a job is waiting to be executed. For example, it is conceivable to display a Gantt chart for each node that shows the period during which a job is being executed using that node in association with an identifier that identifies that job, but it is difficult to grasp the reason why a job is waiting to be executed.

[0006] In one aspect, the present invention aims to make it easier to understand the reason why a job is waiting to be executed.

[0007] According to one embodiment, an information processing program, an information processing method, and an information processing device are proposed that, for each of a plurality of jobs submitted to a system having a plurality of nodes, identify one or more of the plurality of jobs that have experienced a waiting period for execution exceeding a predetermined length based on recorded information representing the number of nodes executing the job, the time when the job was submitted, and the time when the job started to be executed, and generate output information that visualizes, for each of the one or more identified jobs, the number of nodes executing the job and the period for which the job has been waiting to be executed.

[0008] According to one aspect, it is possible to easily grasp the reason why a job is waiting to be executed.

[0009] FIG. 1 is an explanatory diagram illustrating an example of an information processing method according to an embodiment. FIG. 2 is an explanatory diagram illustrating an example of a job management system 200. FIG. 3 is a block diagram illustrating an example of the hardware configuration of an information processing device 100. FIG. 4 is an explanatory diagram illustrating an example of the operation flow of the job management system 200. FIG. 5 is an explanatory diagram illustrating an example of the contents stored in a log information management table. FIG. 6 is a block diagram illustrating an example of the functional configuration of the information processing device 100. FIG. 7 is an explanatory diagram (part 1) illustrating an example of the operation of the information processing device 100. FIG. 8 is an explanatory diagram (part 2) illustrating an example of the operation of the information processing device 100. FIG. 9 is an explanatory diagram (part 3) illustrating an example of the operation of the information processing device 100. FIG. 10 is an explanatory diagram (part 4) illustrating an example of the operation of the information processing device 100. FIG. 11 is a flowchart illustrating an example of a calculation process procedure. FIG. 12 is a flowchart illustrating an example of a determination process procedure. FIG. 13 is a flowchart illustrating an example of an overall process procedure.

[0010] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, an information processing program, an information processing method, and an information processing device according to embodiments of the present invention will be described in detail with reference to the accompanying drawings.

[0011] (Example of Information Processing Method According to an Embodiment) Fig. 1 is an explanatory diagram showing an example of an information processing method according to an embodiment. The information processing device 100 is a computer that makes it easy to understand the reason why a job is waiting to be executed in a target system. The information processing device 100 is, for example, a server or a PC (Personal Computer).

[0012] The target system is a system including multiple nodes. The target system executes a submitted job using one or more nodes. The target system executes a job using, for example, the number of nodes specified when the job was submitted. Specifically, the target system is a cluster system.

[0013] The target system is specifically a system for performing large-scale calculations such as HPC (High Performance Computing). The target system may specifically be a system that forms a quantum circuit simulator. The target system is used, for example, by multiple users. The users, for example, cause the target system to execute jobs and refer to the results of the job execution.

[0014] Conventionally, a job scheduler manages jobs to be executed in a target system. A user specifies the number of nodes to be used when executing a job via a terminal device and sends an execution request to the job scheduler requesting that the job be executed. In response to the execution request, the job scheduler, for example, reserves the specified number of nodes and controls the target system to execute the job.

[0015] Here, as the number of jobs submitted to the target system increases, jobs may become queued for execution. The longer a job is queued for execution, the lower the satisfaction or trust of the user who submitted the job with the target system tends to be. For this reason, it is desirable for users or administrators to understand the reasons why jobs are queued for execution in the target system.

[0016] However, conventionally, there is a problem that it is difficult for a user or an administrator to understand the reason why a job is waiting to be executed in the target system.

[0017] For example, a method can be considered in which statistical information regarding jobs corresponding to each user is output for each user, such as the number of nodes used by the jobs corresponding to the user, the length of time that the jobs corresponding to the user are running, the number of jobs corresponding to the user, or the length of time that the jobs corresponding to the user are waiting to be executed.

[0018] This method makes it difficult to easily understand the reasons why jobs are waiting to be executed in the target system. For example, the above-mentioned statistical information does not indicate the relationship between the execution status of jobs waiting to be executed and other jobs, or the bias in the timing at which jobs waiting to be executed use nodes. For this reason, even if a user or administrator refers to the above-mentioned statistical information, they cannot understand the reasons why jobs are waiting to be executed in the target system.

[0019] Another possible method is to display a Gantt chart that uses nodes to show the period during which a job is being executed. The Gantt chart includes, for example, multiple band-shaped display areas arranged in parallel along a time axis, each corresponding to a different node. For example, a Gantt chart can be displayed in which a frame representing the period during which a job is being executed using each node is placed in the display area corresponding to each node.

[0020] With this method, it is difficult to easily understand the reasons why jobs are waiting to be executed in the target system. For example, the above-mentioned Gantt chart shows the period during which a job is being executed, but does not show the period during which a job is waiting to be executed, and does not show the relationship between the execution status of a job waiting to be executed and other jobs, or the bias in the timing at which a job waiting to be executed uses a node. For this reason, even if a user or administrator refers to the above-mentioned Gantt chart, they cannot understand the reasons why a job is waiting to be executed in the target system.

[0021] Therefore, in this embodiment, an information processing method that can easily grasp the cause of a job waiting to be executed in a target system will be described.

[0022] 1, there is a system 110 having a plurality of nodes 111. When a job 120 is submitted to the system 110, the system 110 executes the job 120 using a specified number of nodes 111. For example, assume that a plurality of jobs 120 have been submitted to the system 110 and executed in the past.

[0023] The information processing device 100 stores record information 130 for each of the multiple jobs 120 submitted to the system 110. For each job 120, the record information 130 indicates, for example, the number of nodes 111 that execute the job 120, the time when the job 120 was submitted, and the time when the job 120 started to be executed.

[0024] (1-1) The information processing device 100 identifies, from among the multiple jobs 120, one or more jobs 120 for which a waiting period for execution exceeding a predetermined length has occurred, based on the recorded information 130. The predetermined length is set in advance, for example, as a threshold value. The threshold value may be, for example, 0.

[0025] (1-2) The information processing device 100 generates output information 140 that visualizes, for each of the one or more identified jobs 120, the number of nodes 111 that execute the job 120 and the period during which the job 120 is waiting to be executed. The output information 140 shows, for example, a Gantt chart-style display screen 141 that includes M strip-shaped display areas 150 arranged in parallel along a time axis. M is, for example, the maximum number of jobs that can be waiting to be executed simultaneously.

[0026] The information processing device 100 prepares, for example, an empty display screen 141. For example, the information processing device 100 selects, from the M display areas 150, a number of display areas 150 equal to the number of nodes 111 that execute each of the one or more identified jobs 120. The information processing device 100 updates the display screen 141 so that, for each of the one or more identified jobs 120, a frame indicating a period during which the job 120 is waiting to be executed is placed on each selected display area 150. The frame may, for example, identifiably indicate the job 120 waiting to be executed. The frame may, for example, identifiably indicate the user who submitted the job 120 waiting to be executed.

[0027] The information processing device 100 generates, for example, output information 140 that shows an updated display screen 141. This allows the information processing device 100 to generate output information 140 that serves as a guide for analyzing the cause of a job 120 waiting to be executed in the system 110. The information processing device 100 can generate output information 140 that makes it easier for a user or an administrator to understand, for example, the relationship between the execution statuses of the jobs 120 waiting to be executed, or the bias in the timing at which the jobs waiting to be executed use nodes.

[0028] (1-3) The information processing device 100 outputs the generated output information 140. The information processing device 100 displays a display screen 141 in a Gantt chart format, for example, based on the generated output information 140. The information processing device 100 may transmit the generated output information 140 to another computer, for example. This allows the information processing device 100 to make it easier for a user or an administrator to understand the reason why a job 120 is waiting to be executed in the system 110. The information processing device 100 makes it easier for a user or an administrator to understand, for example, the relationship between the execution statuses of the jobs 120 waiting to be executed, or the bias in the timing at which the jobs waiting to be executed use nodes.

[0029] The information processing device 100 can, for example, make it easier for a user or an administrator to understand which users tend to have jobs 120 waiting to be executed. The information processing device 100 can, for example, make it easier for a user or an administrator to determine measures to reduce the frequency of jobs waiting to be executed or measures to reduce the length of the waiting period for jobs to be executed. As a result, the information processing device 100 can improve the user's satisfaction or reliability with the system 110. The information processing device 100 can distribute the load on the system 110.

[0030] Here, the case where the display screen 141 includes only M strip-shaped display areas 150 has been described, but this is not limited thereto. For example, the display screen 141 may include N strip-shaped display areas (not shown) and M strip-shaped display areas 150 arranged in parallel along a time axis. N is, for example, the number of nodes 111. For example, of the N display areas, a frame representing a period during which each of the multiple jobs 120 is being executed may be placed on the display areas corresponding to the number of nodes 111 that execute each of the multiple jobs 120. Furthermore, for example, the N display areas may be associated with different nodes 111, and a frame representing a period during which each of the multiple jobs 120 is being executed may be placed on the display area corresponding to the node 111 that executes each of the multiple jobs 120.

[0031] Here, the case where the information processing device 100 is a single computer has been described, but this is not limiting. For example, the functions of the information processing device 100 may be realized by multiple computers. Specifically, the functions of the information processing device 100 may be realized on the cloud.

[0032] (Example of Job Management System 200) Next, an example of a job management system 200 to which the information processing apparatus 100 shown in FIG. 1 is applied will be described with reference to FIG.

[0033] Fig. 2 is an explanatory diagram showing an example of a job management system 200. In Fig. 2, the job management system 200 includes an information processing apparatus 100, a management apparatus 201, a plurality of computing nodes 202, and a client apparatus 203. The management apparatus 201 and the plurality of computing nodes 202 form, for example, a job execution system 220.

[0034] In the job management system 200, the information processing apparatus 100 and a management apparatus 201 are connected via a wired or wireless network 210. The network 210 is, for example, a local area network (LAN), a wide area network (WAN), or the Internet. The management apparatus 201 and the computing nodes 202 are connected via the wired or wireless network 210. The management apparatus 201 and the client apparatuses 203 are connected via the wired or wireless network 210.

[0035] (Example of Hardware Configuration of Information Processing Apparatus 100) Next, an example of the hardware configuration of the information processing apparatus 100 will be described with reference to FIG.

[0036] Fig. 3 is a block diagram showing an example of the hardware configuration of the information processing device 100. In Fig. 3, the information processing device 100 has a CPU (Central Processing Unit) 301, a memory 302, a network I / F (Interface) 303, a recording medium I / F 304, and a recording medium 305. Furthermore, each component is connected to each other by a bus 300.

[0037] Here, the CPU 301 is responsible for overall control of the information processing device 100. The memory 302 includes, for example, a read-only memory (ROM), a random access memory (RAM), and a flash ROM. Specifically, for example, the flash ROM and ROM store various programs, and the RAM is used as a work area for the CPU 301. The programs stored in the memory 302 are loaded into the CPU 301, causing the CPU 301 to execute the coded processes.

[0038] The network I / F 303 is connected to the network 210 via a communication line, and is connected to other computers via the network 210. The network I / F 303 manages the internal interface with the network 210 and controls the input and output of data from other computers. The network I / F 303 is, for example, a modem or a LAN adapter.

[0039] The recording medium I / F 304 controls reading and writing of data from and to the recording medium 305 under the control of the CPU 301. The recording medium I / F 304 is, for example, a disk drive, a solid state drive (SSD), or a universal serial bus (USB) port. The recording medium 305 is a non-volatile memory that stores data written under the control of the recording medium I / F 304. The recording medium 305 is, for example, a disk, a semiconductor memory, or a USB memory. The recording medium 305 may be detachable from the information processing device 100.

[0040] In addition to the components described above, the information processing device 100 may also include, for example, a keyboard, a mouse, a display, a printer, a scanner, a microphone, a speaker, etc. The information processing device 100 may also include a plurality of recording medium I / Fs 304 and recording media 305. The information processing device 100 may also not include the recording medium I / Fs 304 and recording media 305.

[0041] (Example of Hardware Configuration of Management Apparatus 201) The example of the hardware configuration of the management apparatus 201 is specifically similar to the example of the hardware configuration of the information processing apparatus 100 shown in FIG. 3, and therefore description thereof will be omitted.

[0042] (Example of Hardware Configuration of Computing Node 202) The example of the hardware configuration of the computing node 202 is specifically similar to the example of the hardware configuration of the information processing apparatus 100 shown in FIG. 3, and therefore a description thereof will be omitted.

[0043] (Example of Hardware Configuration of Client Device 203) The example of the hardware configuration of the client device 203 is specifically similar to the example of the hardware configuration of the information processing device 100 shown in FIG. 3, and therefore description thereof will be omitted.

[0044] (Operational Flow of Job Management System 200) Next, the operational flow of the job management system 200 will be described with reference to FIG.

[0045] FIG. 4 is an explanatory diagram showing the flow of operations of the job management system 200. In FIG. 4, the client device 203 is a computer for submitting a job to the job execution system 220. The client device 203 is used, for example, by a user of the job execution system 220. The client device 203 submits the job to the job execution system 220 by sending an execution request to the management device 201 to execute the job based on an operation input by the user. The client device 203 receives the results of the job execution from the management device 201. The client device 203 outputs the results of the job execution so that the user can refer to them. The client device 203 is, for example, a PC, a tablet terminal, or a smartphone.

[0046] The management device 201 is a computer that manages the job execution system 220. The management device 201 is used, for example, by an administrator who manages the job execution system 220. The management device 201 implements, for example, a job scheduler. The management device 201 receives an execution request for executing a job from a client device 203. The execution request includes a specification of the number of computing nodes 202 that will execute the job.

[0047] In response to the execution request, the management device 201 reserves a specified number of computation nodes 202 that are in an available state. An available state means a state in which no job is being executed. The management device 201 controls the reserved specified number of computation nodes 202 to execute all or part of the job. For example, the management device 201 transmits an execution request requesting the execution of all or part of the job to the specified number of computation nodes 202. As a result, if the specified number is two or more, the management device 201 can control two or more computation nodes 202 to share and execute the job among the two or more computation nodes 202.

[0048] When the management device 201 receives an execution request, if the specified number of available computation nodes 202 cannot be secured, the management device 201 manages the job as waiting for execution until the specified number of available computation nodes 202 can be secured. When the management device 201 receives an execution request, if the specified number of available computation nodes 202 cannot be secured, the management device 201 manages the job as waiting for execution until the specified number of available computation nodes 202 can be secured. The management device 201 manages the jobs waiting for execution, for example, in a FIFO (First In First Out) queue.

[0049] When a job is submitted to the job execution system 220, the management device 201 generates record information for the job and stores the record information using a log information management table described later in FIG. 5. The record information indicates, for example, the number of computing nodes 202 that execute the job, the time when the job was submitted, and the time when the job started to be executed. The record information may also indicate, for example, the time when the job ended to be executed.

[0050] For example, in response to submitting a job to the job execution system 220, the management device 201 generates record information including the number of computing nodes 202 that will execute the job and the time when the job was submitted, and stores the record information using a log information management table. For example, in response to starting execution of a job in the job execution system 220, the management device 201 updates the record information to further include the time when execution of the job started. For example, in response to finishing execution of a job in the job execution system 220, the management device 201 updates the record information to further include the time when execution of the job finished.

[0051] The management device 201 receives an inquiry from the information processing device 100 regarding the record information for each of the multiple jobs submitted to the job execution system 220. In response to receiving the inquiry, the management device 201 transmits the record information for each of the multiple jobs submitted to the job execution system 220 to the information processing device 100. The management device 201 transmits, for example, the contents stored in a log information management table described later in FIG. 5 to the information processing device 100.

[0052] The management device 201 receives the results of executing all or part of a job from the computing node 202. When the management device 201 receives the results of executing all of the job, it transmits the results of executing all of the job to the client device 203. When the management device 201 receives the results of executing part of the job, it generates the results of executing the entire job and transmits them to the client device 203. The management device 201 is, for example, a server or a PC.

[0053] The computing node 202 is a computer that forms the job execution system 220. The computing node 202 executes all or part of a job submitted to the job execution system 220 under the control of the management device 201. The computing node 202 transmits the results of executing all or part of the job to the management device 201. The computing node 202 is, for example, a server or a PC.

[0054] The information processing device 100 is a computer that makes it easy to understand the reason why a job is waiting to be executed. The information processing device 100 is used, for example, by an administrator who manages the job execution system 220. The information processing device 100 has, for example, a usage analysis function 401 and a usage display function 402.

[0055] The information processing apparatus 100 uses the usage analysis function 401 to send an inquiry to the management apparatus 201 regarding the record information for each of the multiple jobs submitted to the job execution system 220. The information processing apparatus 100 uses the usage analysis function 401 to receive from the management apparatus 201 the record information for each of the multiple jobs submitted to the job execution system 220. The information processing apparatus 100 uses the usage analysis function 401 to receive, for example, the contents of a log information management table described later in FIG. 5 from the management apparatus 201. The information processing apparatus 100 uses the usage analysis function 401 to identify, based on the record information, one or more jobs among the multiple jobs that have experienced a waiting period for execution that exceeds a predetermined length. The predetermined length is set in advance as, for example, a threshold value. The threshold value may be, for example, 0.

[0056] The information processing apparatus 100 may use the usage analysis function 401 to identify, based on the recorded information, the job that has been running for the longest period, the job that has been waiting to be executed for the longest period, or the job that has the largest number of nodes to execute. The information processing apparatus 100 may use the usage analysis function 401 to identify, based on the recorded information, the user whose statistical value for the length of time that a job is running is the largest. The information processing apparatus 100 may use the usage analysis function 401 to identify, based on the recorded information, the user whose statistical value for the length of time that a job is waiting to be executed is the largest. The information processing apparatus 100 may use the usage analysis function 401 to identify, based on the recorded information, the user whose statistical value for the number of nodes is the largest. The statistical value may be, for example, an average value, a maximum value, a minimum value, a mode, or a median.

[0057] The information processing apparatus 100 uses the usage status display function 402 to generate output information that visualizes, for each of the one or more identified jobs, the number of computing nodes 202 executing the job and the period during which the job is waiting to be executed. The output information represents, for example, a display screen in the form of a Gantt chart. The display screen includes, for example, N strip-shaped display areas and M strip-shaped display areas arranged in parallel along a time axis. N is, for example, the number of computing nodes 202. M is, for example, the maximum number of jobs waiting to be executed simultaneously.

[0058] Within the display screen, for example, among N display areas, frames representing periods during which the jobs are being executed are arranged in display areas corresponding to the number of computing nodes 202 executing each of the multiple jobs. The frames representing periods during which the jobs are being executed may, for example, identifiably indicate the jobs. The frames representing periods during which the jobs are being executed may, for example, identifiably indicate the users who submitted the jobs.

[0059] The N display areas may be associated with different computing nodes 202. For example, in the display screen, a frame indicating the period during which each job is being executed may be placed on a display area among the N display areas corresponding to a computing node 202 that executes each of the multiple jobs.

[0060] Within the display screen, for example, among M display areas, frames representing periods during which the one or more identified jobs are waiting to be executed are arranged on display areas corresponding to the number of computing nodes 202 executing the jobs. The frames representing periods during which the jobs are waiting to be executed may, for example, identifiably indicate the jobs. The frames representing periods during which the jobs are waiting to be executed may, for example, identifiably indicate the users who submitted the jobs.

[0061] For example, in the display screen, when a job is being executed and another job submitted by the same user as the job is waiting to be executed, a frame indicating the period during which the other job is waiting to be executed may be displayed in a specific display mode.For example, in the display screen, when two jobs submitted by the same user are simultaneously waiting to be executed, a frame indicating the period during which at least one of the two jobs is waiting to be executed may be displayed in a specific display mode.

[0062] The information processing apparatus 100 uses the usage status display function 402 to display a Gantt chart-style display screen based on the output information so that the administrator can refer to it. This allows the information processing apparatus 100 to easily understand the reasons why jobs are waiting to be executed in the job execution system 220. The information processing apparatus 100 may use the usage status display function 402 to display information indicating the job that has been running for the longest period of time, the job that has been waiting to be executed for the longest period of time, or the job that is being executed by the largest number of nodes so that the administrator can refer to it. This allows the information processing apparatus 100 to easily understand the reasons why jobs are waiting to be executed in the job execution system 220.

[0063] The information processing apparatus 100 may use the usage status display function 402 to display, so that an administrator can refer to, information indicating the user with the largest statistical value for the length of time a job is in execution. The information processing apparatus 100 may use the usage status display function 402 to display, so that an administrator can refer to, information indicating the user with the largest statistical value for the length of time a job is waiting to be executed, or the user with the largest statistical value for the number of nodes. This allows the information processing apparatus 100 to make it easier for the administrator to understand the reasons why a job is waiting to be executed in the job execution system 220. The information processing apparatus 100 is, for example, a server or a PC.

[0064] Here, the case where the information processing device 100 is a device different from the management device 201 has been described, but this is not limiting. For example, the information processing device 100 may have the function of the management device 201 and may also operate as the management device 201.

[0065] Here, the case where the information processing device 100 is a device different from the computation node 202 has been described, but this is not limiting. For example, the information processing device 100 may have the function of the computation node 202 and may also operate as the computation node 202.

[0066] Here, the case where the information processing device 100 is a device different from the client device 203 has been described, but this is not limiting. For example, the information processing device 100 may have the function of the client device 203 and may also operate as the client device 203.

[0067] Here, the case where the management device 201 is a device different from the computing node 202 has been described, but this is not limiting. For example, the management device 201 may have the functions of the computing node 202 and may also operate as the computing node 202.

[0068] (Stored Contents of Log Information Management Table) Next, an example of stored contents of the log information management table will be described with reference to Fig. 5. The log information management table is realized by a storage area such as the memory 302 or recording medium 305 of the information processing device 100 shown in Fig. 3.

[0069] 5 is an explanatory diagram showing an example of the contents stored in the log information management table. As shown in FIG. 5, the log information management table has fields for job ID, user ID, number of used nodes, used node number, job input time, job start time, and job end time. In the log information management table, information is set in each field for each job, and recorded information is stored as record 500-a. a is an arbitrary integer.

[0070] The job ID field is set with a job ID that identifies the job. The user ID field is set with a user ID that identifies the user who submitted the job to the job execution system 220. The number of used nodes field is set with the number of used nodes that indicates the number of computing nodes 202 that execute the job. The used node number field is set with the used node number that identifies the computing node 202 that executes the job.

[0071] The job input time field is set with the job input time indicating the time when the job was input to the job execution system 220. The job start time field is set with the job start time indicating the time when the job started to be executed by the job execution system 220. The job end time field is set with the job end time indicating the time when the job ended to be executed by the job execution system 220.

[0072] (Example of functional configuration of information processing device 100) Next, an example of functional configuration of the information processing device 100 will be described with reference to Fig. 6. Specifically, the example of functional configuration of the information processing device 100 realizes the usage status analysis function 401 and the usage status display function 402 in the example of functional configuration of the job management system 200 shown in Fig. 4.

[0073] 6 is a block diagram showing an example of the functional configuration of the information processing device 100. The information processing device 100 includes a storage unit 600, an acquisition unit 601, a calculation unit 602, an analysis unit 603, a generation unit 604, and an output unit 605.

[0074] The storage unit 600 is realized by, for example, a storage area such as the memory 302 or the recording medium 305 shown in Fig. 3. The following describes a case where the storage unit 600 is included in the information processing device 100, but this is not limiting. For example, the storage unit 600 may be included in a device different from the information processing device 100, and the stored contents of the storage unit 600 may be accessible from the information processing device 100.

[0075] The acquisition unit 601 to the output unit 605 function as an example of a control unit. Specifically, the acquisition unit 601 to the output unit 605 realize their functions by, for example, causing the CPU 301 to execute a program stored in a storage area such as the memory 302 or the recording medium 305 shown in Fig. 3, or by using the network I / F 303. The processing results of each functional unit are stored in a storage area such as the memory 302 or the recording medium 305 shown in Fig. 3.

[0076] The storage unit 600 stores various information that is referenced or updated during processing by each functional unit. The storage unit 600 stores, for example, record information. For a job, the record information indicates the number of nodes that execute the job, the time when the job was submitted, and the time when execution of the job began. The record information may further indicate, for each of a plurality of jobs, the user corresponding to the job. Specifically, the storage unit 600 stores record information for each of a plurality of jobs submitted to a system having a plurality of nodes. More specifically, the storage unit 600 stores the log information management table shown in FIG. 5. The record information is acquired, for example, by the acquisition unit 601.

[0077] The acquisition unit 601 acquires various types of information used in the processing of each functional unit. The acquisition unit 601 stores the acquired various types of information in the storage unit 600 or outputs it to each functional unit. The acquisition unit 601 may also output the various types of information stored in the storage unit 600 to each functional unit. The acquisition unit 601 acquires various types of information based on, for example, an operation input by an administrator. The acquisition unit 601 may also receive various types of information from, for example, a device other than the information processing device 100.

[0078] The acquisition unit 601 acquires, for example, record information. Specifically, the acquisition unit 601 acquires record information for each of a plurality of jobs submitted to a system having a plurality of nodes. More specifically, the acquisition unit 601 receives record information for each of a plurality of jobs submitted to a system having a plurality of nodes from another computer. The other computer is, for example, the management device 201. More specifically, the acquisition unit 601 may acquire the record information for each of a plurality of jobs submitted to a system having a plurality of nodes by accepting input of record information based on an operation input from an administrator.

[0079] The acquisition unit 601 may receive a start trigger for starting processing by any of the functional units. The start trigger may be, for example, a predetermined operational input by an administrator. The start trigger may be, for example, reception of predetermined information from another computer. The start trigger may be, for example, output of predetermined information by any of the functional units. The acquisition unit 601 receives, for example, acquisition of recorded information as a start trigger for starting processing by the calculation unit 602, the analysis unit 603, and the generation unit 604.

[0080] The calculation unit 602 calculates the length of the execution period of each of the multiple jobs based on the record information acquired by the acquisition unit 601. For example, the calculation unit 602 calculates the length of the execution period of each of the multiple jobs as the length from when the execution of the job starts to when the execution of the job ends. This allows the calculation unit 602 to obtain a guideline for analyzing the execution trend of the job in the analysis unit 603.

[0081] The calculation unit 602 calculates the length of the execution waiting period for each of the multiple jobs based on the record information acquired by the acquisition unit 601. For example, the calculation unit 602 calculates the length of the execution waiting period for each of the multiple jobs as the length from the time when the job is submitted to the time when the execution of the job starts. This allows the calculation unit 602 to obtain a guideline for analyzing the execution tendency of the job in the analysis unit 603.

[0082] The calculation unit 602 calculates, for each user, a statistical value of the length of time during which a job corresponding to that user is being executed, based on the record information acquired by the acquisition unit 601. The statistical value may be, for example, an average value, a maximum value, a minimum value, a mode value, or a median value. This allows the calculation unit 602 to obtain a guideline for analyzing the job execution tendency in the analysis unit 603.

[0083] The calculation unit 602 calculates, for each user, a statistical value of the length of time that a job corresponding to that user is waiting to be executed, based on the record information acquired by the acquisition unit 601. The statistical value may be, for example, an average value, a maximum value, a minimum value, a mode value, or a median value. This allows the calculation unit 602 to obtain a guideline for analyzing the job execution tendency in the analysis unit 603.

[0084] The calculation unit 602 calculates, for each user, a statistical value of the number of nodes that executes jobs corresponding to that user, based on the record information acquired by the acquisition unit 601. The statistical value may be, for example, an average value, a maximum value, a minimum value, a mode value, or a median value. This allows the calculation unit 602 to obtain a guideline for analyzing the job execution tendency in the analysis unit 603.

[0085] The analysis unit 603 identifies one or more jobs among the multiple jobs that have experienced a waiting period for execution exceeding a predetermined length, based on the length of the waiting period for each job calculated by the calculation unit 602. The predetermined length may be, for example, 0. This allows the analysis unit 603 to obtain a guideline for generating output information in the generation unit 604 so that the cause of the waiting period for execution of the job can be identified.

[0086] The analysis unit 603 identifies the job that has been running for the longest period of time among the multiple jobs based on the length of the execution period of each job calculated by the calculation unit 602. This allows the analysis unit 603 to obtain guidelines for generating job information in the generation unit 604 so that the cause of the job waiting to be executed can be identified.

[0087] The analysis unit 603 identifies the job that has been waiting for execution for the longest period among the multiple jobs, based on the length of the waiting period for execution of each job calculated by the calculation unit 602. This allows the analysis unit 603 to obtain guidelines for generating job information in the generation unit 604 so that the cause of the waiting period for execution of the job can be identified.

[0088] The analysis unit 603 identifies the job that is executed by the largest number of nodes among the multiple jobs based on the record information acquired by the acquisition unit 601. This allows the analysis unit 603 to obtain guidelines for generating job information in the generation unit 604 so that the cause of the job waiting to be executed can be identified.

[0089] The analysis unit 603 identifies the user for whom the statistical value of the length of the period during which a job is being executed is the largest, based on the statistical value of the length of the period during which a job corresponding to that user is being executed, calculated for each user by the calculation unit 602. This allows the analysis unit 603 to obtain a guideline for generating user information in the generation unit 604, so that the cause of the job waiting to be executed can be identified.

[0090] The analysis unit 603 identifies the user for whom the statistical value of the length of the period during which a job corresponding to the user is waiting for execution is the largest, based on the statistical value of the length of the period during which a job corresponding to the user is waiting for execution calculated for each user by the calculation unit 602. This allows the analysis unit 603 to obtain a guideline for generating user information in the generation unit 604 so that the cause of the job waiting for execution can be identified.

[0091] The analysis unit 603 identifies the user with the largest statistical value of the number of nodes, based on the statistical value of the number of nodes that executes the job corresponding to that user, calculated for each user by the calculation unit 602. This allows the analysis unit 603 to obtain a guideline for generating user information in the generation unit 604, so that the cause of the job waiting to be executed can be identified.

[0092] The generating unit 604 generates output information. The output information visualizes, for each of the one or more jobs identified by the identifying unit, at least the number of nodes that execute the job and the period during which the job is waiting to be executed. The output information is, for example, screen information that shows a display screen in a Gantt chart format.

[0093] The display screen includes, for example, M belt-shaped awaiting job display areas arranged in parallel along a time axis. On the display screen, for example, for each of the one or more jobs identified by the identification unit, a frame representing the period during which the job is awaiting execution is arranged in the awaiting job display areas for the same number as the number of nodes that will execute the job.

[0094] A frame representing a period in which a job is waiting to be executed may, for example, identifiably show the job. Specifically, a frame representing a period in which a job is waiting to be executed may be shown with a pattern corresponding to the job. A frame representing a period in which a job is waiting to be executed may, for example, identifiably show the user who submitted the job. Specifically, a user ID identifying the user who submitted the job may be assigned to the frame representing a period in which a job is waiting to be executed.

[0095] The display screen may further include, for example, N band-shaped running job display areas arranged in parallel along a time axis. On the display screen, for each of a plurality of jobs, a frame representing the period during which the job is being executed is arranged in the running job display areas of the same number as the number of nodes executing the job.

[0096] The N active job display areas may be associated with different nodes. For example, for each of a plurality of jobs on the display screen, a frame representing the period during which the job is being executed may be placed on the active job display area corresponding to the node that executes the job.

[0097] A frame representing a period during which a job is being executed may, for example, identifiably show the job. Specifically, a frame representing a period during which a job is being executed may be shown with a pattern corresponding to the job. A frame representing a period during which a job is being executed may, for example, identifiably show the user who submitted the job. Specifically, a user ID identifying the user who submitted the job may be assigned to the frame representing a period during which a job is being executed.

[0098] For example, when a first job corresponding to a first user among a plurality of jobs is being executed and a second job corresponding to the first user among one or more jobs is waiting to be executed, a frame representing the period during which the second job is waiting to be executed may be displayed in a specific display mode on the display screen. The specific display mode is, for example, a thick line frame.

[0099] For example, if two jobs corresponding to the same user among the one or more jobs identified by the identification unit are simultaneously waiting to be executed, a frame representing the period during which at least one of the two jobs is waiting to be executed may be displayed in a specific display mode on the display screen. The specific display mode may be, for example, a thick line frame. This allows the generation unit 604 to obtain output information that serves as a guide for understanding the cause of the pending job.

[0100] The generating unit 604 generates job information indicating the job that has been executed for the longest period of time, which is identified by the identifying unit, among the multiple jobs. This allows the generating unit 604 to obtain job information that serves as a guide for understanding the cause of the job waiting to be executed.

[0101] The generating unit 604 generates job information indicating the job that has been waiting for execution for the longest period of time, as identified by the identifying unit, among the multiple jobs. This allows the generating unit 604 to obtain job information that serves as a guide for understanding the cause of the job waiting for execution.

[0102] The generating unit 604 generates job information indicating the job identified by the identifying unit among the plurality of jobs and having the largest number of nodes to execute the job. In this way, the generating unit 604 can obtain job information that serves as a guide for understanding the cause of the job waiting to be executed.

[0103] The generating unit 604 generates user information indicating the user identified by the identifying unit for whom the statistical value of the length of the period during which the job is being executed is the largest. In this way, the generating unit 604 can obtain user information that serves as a guide for understanding the cause of the job waiting to be executed.

[0104] The generating unit 604 generates user information indicating the user identified by the identifying unit for whom the statistical value of the length of the job waiting period is the largest. In this way, the generating unit 604 can obtain user information that serves as a guide for understanding the cause of the job waiting period.

[0105] The generating unit 604 generates user information indicating the user identified by the identifying unit for which the statistical value of the number of nodes is the largest, thereby enabling the generating unit 604 to obtain user information that serves as a guide for understanding the cause of the job waiting to be executed.

[0106] The output unit 605 outputs the processing results of at least one of the functional units. The output format may be, for example, display on a display, printout to a printer, transmission to an external device via the network I / F 303, or storage in a storage area such as the memory 302 or the recording medium 305. This allows the output unit 605 to notify the administrator of the processing results of at least one of the functional units, thereby improving the convenience of the information processing device 100.

[0107] The output unit 605 outputs the output information generated by the generation unit 604. The output unit 605 displays a display screen based on the output information generated by the generation unit 604, for example. In this way, the output unit 605 can enable an administrator to refer to the output information that serves as a guide for understanding the cause of the job waiting to be executed. The output unit 605 can make it easier for the administrator to understand the cause of the job waiting to be executed.

[0108] When displaying the display screen, the output unit 605 may accept a selection of a frame representing a period during which any one of a plurality of jobs is being executed or waiting to be executed. The output unit 605 may re-display the display screen so that a frame representing a period during which any other job corresponding to the same user as any one of the jobs corresponding to the frame for which the selection was accepted is being executed or waiting to be executed is displayed in a specific display mode. This allows the output unit 605 to make it easier for the administrator to understand the cause of the job waiting to be executed.

[0109] The output unit 605 may transmit the output information generated by the generation unit 604 to another computer, for example. This allows the output unit 605 to make the output information, which serves as a guide for understanding the cause of a job waiting to be executed, externally accessible. The output unit 605 makes it easier for an administrator to understand the cause of a job waiting to be executed.

[0110] (Example of Operation of Information Processing Device 100) Next, an example of operation of the information processing device 100 will be described with reference to FIGS.

[0111] 7 to 10 are explanatory diagrams showing an example of the operation of the information processing device 100. In FIG. 7, it is assumed that multiple jobs are submitted to the job execution system 220. The information processing device 100 acquires the contents stored in the log management table shown in FIG. 5. In the following description, among the contents stored in the log management table, the combination of values ​​in the fields of job ID, user ID, and used node number may be referred to as "job data."

[0112] The information processing apparatus 100 acquires the number N of computing nodes 202. The information processing apparatus 100 receives a display start time Ts and a display end time Te based on an operation input by an administrator. The information processing apparatus 100 identifies the maximum value M in the set of total values ​​of the number of computing nodes 202 used by jobs waiting for execution at each time, based on the contents stored in the log management table. Specifically, M is the maximum value in the set of total values ​​of the number of computing nodes 202 used by jobs waiting for execution whose length of waiting period for execution exceeds a threshold, at each time.

[0113] The information processing apparatus 100 generates a visualization framework 700 based on a display start time Ts, a display end time Te, and a maximum total value M of the number of computing nodes 202 used by jobs waiting to be executed simultaneously. The visualization framework 700 shows a Gantt chart 710. The Gantt chart 710 includes a time axis corresponding to the combination of the display start time Ts and the display end time Te. The Gantt chart 710 includes N strip-shaped display areas arranged in parallel along the time axis, each corresponding to a different computing node 202. The display area corresponding to a computing node 202 is displayed in association with, for example, a computing node 202 No. that identifies the computing node 202. The computing node 202 No. is 1, ..., N. The display area corresponding to the computing node 202 can include, for example, a frame representing a period during which a job is being executed on the computing node 202.

[0114] The Gantt chart 710 further includes M strip-shaped display areas arranged in parallel along the time axis, each corresponding to a different wait node. The M strip-shaped display areas are arranged in parallel with N strip-shaped display areas. The wait nodes are virtual nodes. The wait nodes are set so that an administrator can intuitively grasp the number of computation nodes 202 used by jobs waiting to be executed. For example, a job waiting to be executed is considered to be waiting in the wait node until it is executed on a computation node 202. The display area corresponding to the wait node is displayed, for example, in association with a wait node number that identifies the wait node. The wait node numbers are 1, ..., M. The display area corresponding to the wait node can have a frame representing the period during which the job is waiting to be executed at the wait node. Next, we move on to the description of Figure 8.

[0115] 8, the information processing device 100 identifies the computing node 202 that executed each of the multiple jobs submitted to the job execution system 220 based on the used node number stored in the log management table. The information processing device 100 identifies the period during which each of the multiple jobs is being executed based on the values ​​in the job start time and job end time fields stored in the log management table.

[0116] The information processing apparatus 100 displays, for each of the multiple jobs in the Gantt chart 710, a frame representing the period during which the job is being executed, aligned with the time axis in one or more display areas among the N display areas where the usage node No. is equal to the calculation node 202 No. In this case, the information processing apparatus 100 may display the frame representing the period during which each of the multiple jobs is being executed by applying a color or pattern corresponding to the job.

[0117] The information processing device 100 identifies a waiting period for each of a plurality of jobs based on the values ​​of the fields for job input time and job start time stored in the log management table, and calculates the length of the waiting period. The information processing device 100 identifies each of the plurality of jobs whose calculated waiting period exceeds a threshold. The threshold is, for example, one minute.

[0118] For each of the identified waiting jobs, the information processing apparatus 100 identifies, among the M display areas in the Gantt chart 710, a number of display areas equal to the number of computation nodes 202 that execute the identified waiting jobs. For each of the identified waiting jobs in the Gantt chart 710, the information processing apparatus 100 displays, in the identified display area, a frame that indicates a period during which the waiting job is waiting to be executed, aligned with the time axis.

[0119] For example, in the Gantt chart 710, the information processing apparatus 100 selects, for each identified waiting job, a waiting node number that is equal to or greater than the number of the computation nodes 202 that execute the identified waiting job. For example, in the Gantt chart 710, for each identified waiting job, the information processing apparatus 100 displays a frame representing the period during which the waiting job is waiting to be executed, aligned with the time axis, in the display area of ​​the selected waiting node number out of M display areas. At this time, the information processing apparatus 100 may display the frame representing the period during which each identified waiting job is being executed in a color or pattern corresponding to the waiting job.

[0120] Here, it is preferable that the information processing device 100 displays, for example, a frame representing a period during which a job is waiting to be executed so that it does not overlap with other frames. Here, for convenience, a case has been described in which the information processing device 100 selects a waiting node No. after identifying M, but this is not limiting. For example, the information processing device 100 may identify M while selecting a waiting node No. Specifically, it is possible that the information processing device 100 identifies M while selecting a waiting node No. by executing a calculation process described later in FIG. 11.

[0121] The information processing apparatus 100 displays, for example, a Gantt chart 710 so that the administrator can refer to it. This allows the information processing apparatus 100 to allow the administrator to refer to the Gantt chart 710, which serves as a guide for analyzing the reasons why jobs are waiting to be executed in the job execution system 220. Therefore, the information processing apparatus 100 makes it easier for the administrator to understand the reasons why the length of the period in which a job is waiting to be executed in the job execution system 220 exceeds a threshold.

[0122] The information processing device 100, for example, enables an administrator to grasp the relationship between the execution statuses of jobs waiting for execution whose execution waiting period exceeds a threshold. Furthermore, the information processing device 100, for example, enables an administrator to grasp the bias in time periods during which nodes are used by jobs waiting for execution whose execution waiting period exceeds a threshold. Specifically, the information processing device 100 enables an administrator to analyze in which time periods the length of jobs waiting for execution tends to exceed a threshold.

[0123] Therefore, the information processing device 100 makes it easier for the administrator to determine measures to reduce the frequency of jobs waiting for execution whose execution waiting period exceeds a threshold, or measures to reduce the length of the period a job waits for execution. As a result, the information processing device 100 can improve the user's satisfaction or reliability with the job execution system 220. The information processing device 100 can distribute the load on the job execution system 220.

[0124] Next, referring to Fig. 9, another example will be described in which the information processing apparatus 100 displays a Gantt chart 710. Here, similar to Fig. 8, the information processing apparatus 100 displays a frame representing a period during which each of a plurality of jobs is being executed in the Gantt chart 710. In this case, the information processing apparatus 100 assigns the user ID of the user who submitted the job to the frame representing the period during which the job is being executed.

[0125] 8, the information processing apparatus 100 displays a frame representing the waiting period for each job whose waiting period exceeds a threshold in the Gantt chart 710. In this case, the information processing apparatus 100 displays the user ID of the user who submitted the job in the frame representing the waiting period for the job.

[0126] 9 , the information processing device 100 further identifies, for each waiting job whose waiting period exceeds a threshold, other jobs that are being executed during the waiting period of the waiting job. For each waiting job whose waiting period exceeds a threshold, the information processing device 100 determines whether or not there is another job submitted by the same user as the waiting job among the identified other jobs.

[0127] When the information processing apparatus 100 determines that another job exists for any of the waiting jobs whose waiting period exceeds a threshold, the information processing apparatus 100 changes the display mode of the frame representing the waiting period for the waiting job. For example, when the information processing apparatus 100 determines that another job exists for any of the waiting jobs whose waiting period exceeds a threshold, the information processing apparatus 100 changes the display mode of the frame so as to lighten the color or pattern of the frame representing the waiting period for the waiting job. In the example of Figure 9, the information processing apparatus 100 changes the display mode of the frame 901 representing the waiting period for the waiting job submitted by user U2 whose waiting period exceeds a threshold by lightening the pattern of the frame 901 and changing the frame 901 to a dotted line.

[0128] The information processing apparatus 100 further determines whether combinations of waiting jobs whose execution waiting periods overlap and whose execution waiting periods exceed a threshold are combinations of jobs submitted by the same user. The information processing apparatus 100 changes the display mode of a frame representing the waiting period of at least one of the jobs among the combinations of waiting jobs whose execution waiting periods exceed a threshold, which the information processing apparatus 100 has determined to be combinations of jobs submitted by the same user. The information processing apparatus 100 changes the display mode of the frame representing the waiting period of one of the jobs, for example, by lightening the color or pattern of the frame. In the example of FIG. 9 , the information processing apparatus 100 changes the display mode of the frame 902 representing the waiting period of a waiting job submitted by user U3 whose execution waiting period exceeds a threshold, so that the frame 902 is displayed as a dotted line.

[0129] Specifically, the information processing device 100 changes the display mode of the frame indicating the waiting period for a waiting job by executing a determination process described later in Fig. 12. This allows the information processing device 100 to make it easier for the administrator to focus on waiting jobs whose waiting period exceeds a threshold, other than waiting jobs whose waiting period exceeds a threshold and that were submitted by the same user as the currently running job. The information processing device 100 makes it easier for the administrator to analyze which users tend to submit waiting jobs whose waiting period exceeds a threshold.

[0130] Furthermore, the information processing apparatus 100 may change the background of each display area for each time period in the Gantt chart 710. For example, the information processing apparatus 100 may change the background of a partial area corresponding to a daytime time period and a partial area corresponding to a nighttime time period within each display area in the Gantt chart 710. For example, the information processing apparatus 100 may change the background of a partial area corresponding to a weekday time period and a partial area corresponding to a holiday time period within each display area in the Gantt chart 710. This allows the information processing apparatus 100 to make it easier for the administrator to grasp the status of jobs that are currently being executed or are waiting to be executed.

[0131] Furthermore, the information processing apparatus 100 may accept a selection of a frame representing a period in which a job is being executed or waiting to be executed in the Gantt chart 710. The information processing apparatus 100 may highlight a frame representing a period in which another job submitted by the same user as the job corresponding to the frame for which the selection was accepted is being executed or waiting to be executed. This allows the information processing apparatus 100 to make it easier for the administrator to understand the status of jobs being executed or waiting to be executed.

[0132] The information processing apparatus 100 may display a predetermined number of jobs in descending order of the length of time they have been running, along with the combinations of the users who submitted the jobs. The predetermined number may be, for example, 1. In the example of Fig. 9, the information processing apparatus 100 may display the combination of the job corresponding to the frame 911 and user U2. This allows the information processing apparatus 100 to make it easier for the administrator to understand the status of jobs that are currently running or waiting to be executed.

[0133] The information processing apparatus 100 may display a predetermined number of jobs in descending order of the length of time they have been waiting to be executed, along with the combinations of the users who submitted the jobs. The predetermined number may be, for example, 1. In the example of Fig. 9, the information processing apparatus 100 may display the combination of the job corresponding to the frame 912 and user U3. This allows the information processing apparatus 100 to make it easier for the administrator to understand the status of jobs that are currently being executed or are waiting to be executed.

[0134] The information processing apparatus 100 may display a predetermined number of combinations of jobs and users who submitted the jobs in descending order of the number of nodes used. The predetermined number is, for example, 1. In the example of Fig. 9, the information processing apparatus 100 may display the combination of the job corresponding to the frame 913 and user U4. This allows the information processing apparatus 100 to make it easier for the administrator to understand the status of jobs that are currently being executed or waiting to be executed.

[0135] The information processing device 100 may calculate, for each user, a statistical value of the length of time during which a job submitted by that user is being executed, and display the user with the largest statistical value. The statistical value may be, for example, an average value or a total value. In the example of FIG. 9 , the information processing device 100 may display user U2 or user U4. This allows the information processing device 100 to make it easier for the administrator to understand the status of jobs that are being executed or waiting to be executed.

[0136] The information processing apparatus 100 may calculate, for each user, a statistical value of the length of time that jobs submitted by that user are waiting to be executed, and display the user with the largest statistical value. The statistical value may be, for example, an average value or a total value. In the example of FIG. 9 , the information processing apparatus 100 may display user U3. This allows the information processing apparatus 100 to make it easier for the administrator to understand the status of jobs that are currently being executed or waiting to be executed.

[0137] The information processing device 100 may calculate, for each user, a statistical value of the number of nodes used by jobs submitted by that user, and display the user with the largest statistical value. The statistical value may be, for example, an average value or a maximum value. In the example of FIG. 9 , the information processing device 100 may display user U4. This allows the information processing device 100 to make it easier for the administrator to understand the status of jobs being executed or waiting to be executed. By reducing the frequency at which user U4 submits jobs, the information processing device 100 allows the administrator to easily understand that jobs can be executed efficiently in the job execution system 220. Next, we will move on to the description of FIG. 10 and describe an example of the effect achieved by the information processing device 100.

[0138] 10 shows an example of the effect achieved by the information processing device 100. In the example of Fig. 10, the information processing device 100 displays a Gantt chart 1000. This allows the information processing device 100 to visualize the status of jobs being executed or waiting to be executed, making it easier for an administrator to understand the reason why a job is waiting to be executed.

[0139] For example, by referring to the Gantt chart 1000, the administrator can grasp the variation in the length of the waiting period for execution for each time period. For example, if the administrator determines that the variation in the length of the waiting period for execution for each time period is relatively large, the administrator can determine a strategy for guiding users to level out the length of the waiting period for execution. Specifically, if the administrator determines that the variation in the length of the waiting period for execution for each user is relatively large, the administrator will guide users who tend to have long waiting periods for execution to submit jobs during time periods when the waiting period for execution tends to be relatively short.

[0140] 10, the administrator determines that, for example, during the daytime, a relatively large number of jobs are submitted and the waiting period for execution is likely to be long, whereas, for example, during the nighttime, a relatively small number of jobs are submitted and the waiting period for execution is unlikely to be long.

[0141] Therefore, for example, the administrator may guide users who tend to have a relatively large statistical value for the length of the execution period to submit jobs during the nighttime hours. For example, the administrator may guide users who tend to have a relatively large statistical value for the length of the execution waiting period to submit jobs during the nighttime hours. For example, the administrator may guide users who tend to have a relatively large statistical value for the number of nodes used by the submitted jobs to submit jobs during the nighttime hours. For example, the administrator may also notify users who tend to have a relatively small statistical value for the number of nodes used by the submitted jobs of the time periods when the job waiting period for execution tends to be relatively short.

[0142] This allows the administrator to understand the cause of the length of the period in which a job waits for execution in the job execution system 220 exceeds the threshold, and to reduce the length of the period in which a job waits for execution. The administrator can improve the user's satisfaction with or reliability of the job execution system 220. The administrator can distribute the load on the job execution system 220.

[0143] The information processing device 100 may output the Gantt chart 1000 so that the user can refer to it. This allows the information processing device 100 to make it easier for the user to adjust the timing of submitting a job. The information processing device 100 allows the user to easily distribute the load on the job execution system 220.

[0144] 11, an example of a calculation process procedure executed by the information processing device 100 will be described. The calculation process is realized by, for example, the CPU 301, storage areas such as the memory 302 and the recording medium 305, and the network I / F 303 shown in FIG.

[0145] 11 is a flowchart showing an example of a calculation process procedure. In FIG. 11, the information processing apparatus 100 extracts job data j (j=1, ..., z) of jobs whose execution waiting period exceeds a threshold, sorted in order of job input time based on the contents stored in the log information management table. Furthermore, the job input time of job data j is set to Tsj. The job start time of job data j is set to Tej. The number of nodes used by job data j is set to Nj. The information processing apparatus 100 sets j=1 and M=0 (step S1101).

[0146] The information processing apparatus 100 sets a list WNj=[1, ..., Nj] of waiting node numbers corresponding to job data j (step S1102). The information processing apparatus 100 sets Nmax=Nj (step S1103). The information processing apparatus 100 sets Tmax=Tej (step S1104). If Nmax>M, the information processing apparatus 100 sets M=Nmax (step S1105).

[0147] The information processing device 100 sets j = j + 1 (step S1106). The information processing device 100 determines whether j > z (step S1107). If j > z (step S1107: Yes), the information processing device 100 ends the calculation process. On the other hand, if j > z but j ≤ z (step S1107: No), the information processing device 100 proceeds to the process of step S1108.

[0148] In step S1108, the information processing device 100 determines whether Tsj>Tmax (step S1108). If Tsj>Tmax (step S1108: Yes), the information processing device 100 returns to the process of step S1102. On the other hand, if Tsj>Tmax is not true but Tsj≦Tmax is true (step S1108: No), the information processing device 100 proceeds to the process of step S1109.

[0149] In step S1109, the information processing apparatus 100 acquires an allocation status WNtmp at time Tsj (step S1109). The allocation status WNtmp represents a set of waiting node numbers that have been allocated to a list of waiting node numbers corresponding to job data k of a job whose execution waiting period at time Tsj exceeds a threshold.

[0150] The information processing device 100 selects Nj waiting node Nos. that are not present in the allocation status WNtmp and sets them to WNj in ascending order (step S1110). The information processing device 100 sets Nmax=the maximum value of WNj (step S1111). If Tmax>Tej, the information processing device 100 sets Tmax=Tej (step S1112). If Nmax>M, the information processing device 100 sets M=Nmax (step S1113). Then, the information processing device 100 returns to the processing of step S1106.

[0151] (Determination Process Procedure) Next, an example of a determination process procedure executed by the information processing device 100 will be described with reference to Fig. 12. The determination process is realized by, for example, the CPU 301, storage areas such as the memory 302 and the recording medium 305, and the network I / F 303 shown in Fig. 3.

[0152] 12 is a flowchart showing an example of a procedure for the determination process. In FIG. 12, the information processing device 100 executes a calculation process (step S1201). The information processing device 100 sets j=1 (step S1202).

[0153] The information processing apparatus 100 identifies the user of each job currently being executed at time Tsj (step S1203). The information processing apparatus 100 determines whether the user of the jth job awaiting execution at time Tsj is the user of any of the jobs currently being executed (step S1204). If the user of the jth job awaiting execution is the user of any of the jobs currently being executed (step S1204: Yes), the information processing apparatus 100 proceeds to step S1208. On the other hand, if the user of the jth job awaiting execution is not the user of any of the jobs currently being executed (step S1204: No), the information processing apparatus 100 proceeds to step S1205.

[0154] In step S1205, the information processing apparatus 100 determines whether or not there are other jobs waiting to be executed at time Tsj other than the j-th job waiting to be executed (step S1205). If there are no other jobs waiting to be executed (step S1205: No), the information processing apparatus 100 proceeds to the process of step S1209. On the other hand, if there are other jobs waiting to be executed (step S1205: Yes), the information processing apparatus 100 proceeds to the process of step S1206.

[0155] In step S1206, the information processing apparatus 100 identifies the users of each of the other jobs waiting to be executed at time Tsj (step S1206). The information processing apparatus 100 determines whether the user of the jth job waiting to be executed at time Tsj is the user of any of the other jobs waiting to be executed (step S1207). Here, if the user of the jth job waiting to be executed is not the user of any of the other jobs waiting to be executed (step S1207: No), the information processing apparatus 100 proceeds to the processing of step S1209. On the other hand, if the user of the jth job waiting to be executed is the user of any of the other jobs waiting to be executed (step S1207: Yes), the information processing apparatus 100 proceeds to the processing of step S1208.

[0156] In step S1208, the information processing apparatus 100 sets a duplication flag to the j-th job waiting to be executed (step S1208), and then the information processing apparatus 100 proceeds to the process of step S1209.

[0157] In step S1209, the information processing device 100 sets j = j + 1 (step S1209). The information processing device 100 determines whether Tsj > Tmax (step S1210). Here, if Tsj > Tmax but Tsj ≤ Tmax (step S1210: No), the information processing device 100 returns to the processing of step S1203. On the other hand, if Tsj > Tmax (step S1210: Yes), the information processing device 100 ends the determination processing.

[0158] (Overall Processing Procedure) Next, an example of an overall processing procedure executed by the information processing device 100 will be described with reference to Fig. 13. The overall processing is realized by, for example, the CPU 301, storage areas such as the memory 302 and the recording medium 305, and the network I / F 303 shown in Fig. 3.

[0159] Fig. 13 is a flowchart showing an example of an overall processing procedure. In Fig. 13, the information processing device 100 executes the determination processing shown in Fig. 12 (step S1301). The information processing device 100 generates an empty Gantt chart based on WNj determined in the calculation processing shown in Fig. 11 (step S1302).

[0160] The information processing apparatus generates a Gantt chart based on the blank Gantt chart, arranging frames representing periods during which jobs are being executed and frames representing periods during which jobs whose waiting period exceeds a threshold are waiting to be executed (step S1303). The information processing apparatus changes the display mode of frames in the Gantt chart representing periods during which jobs with overlap flags are waiting to be executed, based on the overlap flags assigned in the determination process shown in Fig. 12 (step S1304). The information processing apparatus displays the Gantt chart (step S1305). The information processing apparatus then terminates the overall process.

[0161] As described above, the information processing device 100 can identify, based on recorded information, one or more jobs among a plurality of jobs for which a waiting period for execution exceeding a predetermined length has occurred. The information processing device 100 can generate output information that visualizes, for each of the identified one or more jobs, the number of nodes executing the job and the waiting period for execution of the job. This allows the information processing device 100 to prepare output information that is useful for an administrator to understand the cause of a job waiting for execution.

[0162] According to the information processing device 100, it is possible to generate output information showing a display screen in a Gantt chart format including a plurality of strip-shaped first display areas arranged in parallel along a time axis. According to the information processing device 100, for each of one or more identified jobs, it is possible to place a frame indicating the period during which the job is waiting to be executed in the same number of first display areas as the number of nodes that execute the job among the plurality of first display areas on the display screen. This allows the information processing device 100 to prepare output information showing a display screen that makes it easy for an administrator to intuitively understand the reasons why a job is waiting to be executed.

[0163] According to the information processing device 100, it is possible to generate output information showing a display screen in a Gantt chart format including a plurality of strip-shaped first display areas and a plurality of strip-shaped second display areas arranged in parallel along a time axis. According to the information processing device 100, for each of a plurality of jobs on the display screen, it is possible to place a frame representing the period during which the job is being executed in one of the plurality of second display areas corresponding to the node that executed the job. This allows the information processing device 100 to prepare output information showing a display screen that makes it easy for an administrator to intuitively understand the reasons why a job is waiting to be executed.

[0164] When a second job corresponding to the first user among one or more jobs is waiting to be executed while a first job corresponding to the first user is being executed, the information processing device 100 can display a frame indicating the period during which the second job is waiting to be executed in a specific display mode on the display screen. This allows the information processing device 100 to change the display mode so that the administrator can easily intuitively understand the reason why the job is waiting to be executed.

[0165] According to the information processing device 100, when two jobs corresponding to the same user among the one or more identified jobs are waiting to be executed at the same time, a frame indicating the period during which either of the two jobs is waiting to be executed can be displayed in a specific display mode on the display screen. This allows the information processing device 100 to change the display mode so that the administrator can easily intuitively understand the reason why the jobs are waiting to be executed.

[0166] The information processing device 100 can output information indicating, among multiple jobs, the job that has been running for the longest period, the job that has been waiting to be executed for the longest period, or the job that is being executed by the largest number of nodes. This allows the information processing device 100 to provide the administrator with information that makes it easier to understand the reason why a job is waiting to be executed.

[0167] According to the information processing device 100, it is possible to output the user with the largest statistical value for the length of the period during which a job is being executed, based on the statistical value calculated for each user for the length of the period during which a job corresponding to the user is being executed. According to the information processing device 100, it is possible to output the user with the largest statistical value for the length of the period during which a job is waiting to be executed, based on the statistical value calculated for each user for the length of the period during which a job corresponding to the user is waiting to be executed. According to the information processing device 100, it is possible to output the user with the largest statistical value for the number of nodes, based on the statistical value calculated for each user for the number of nodes executing a job corresponding to the user. In this way, the information processing device 100 can provide the administrator with information that makes it easier to understand the cause of a job waiting to be executed.

[0168] According to the information processing device 100, a display screen can be displayed based on the generated output information. This allows the information processing device 100 to make it easier for the administrator to intuitively understand the reason why a job is waiting to be executed.

[0169] According to the information processing device 100, when the display screen is displayed, it is possible to accept the selection of a frame representing a period during which one of a plurality of jobs is being executed or waiting to be executed. According to the information processing device 100, in response to accepting the selection, it is possible to redisplay the display screen so that the frame representing the period during which another job corresponding to the same user as one of the jobs is being executed or waiting to be executed is displayed in a specific display mode. In this way, the information processing device 100 can provide the administrator with information that makes it easier to understand the reason why a job is waiting to be executed.

[0170] The information processing method described in this embodiment can be realized by executing a prepared program on a computer such as a PC or a workstation. The information processing program described in this embodiment is recorded on a computer-readable recording medium and executed by being read from the recording medium by the computer. The recording medium may be a hard disk, a flexible disk, a CD (Compact Disc)-ROM, an MO (Magneto Optical Disc), a DVD (Digital Versatile Disc), or the like. The information processing program described in this embodiment may also be distributed via a network such as the Internet.

[0171] 100 Information processing device 110 System 111 Node 120 Job 130 Recorded information 140 Output information 141 Display screen 150 Display area 200 Job management system 201 Management device 202 Computing node 203 Client device 210 Network 220 Job execution system 300 Bus 301 CPU 302 Memory 303 Network I / F 304 Recording medium I / F 305 Recording medium 401 Usage analysis function 402 Usage display function 600 Storage unit 601 Acquisition unit 602 Calculation unit 603 Analysis unit 604 Generation unit 605 Output unit 700 Visualization framework 710, 1000 Gantt chart 901, 902, 911 to 913 Frames

Claims

1. An information processing program that causes a computer to execute a process of: identifying, for each of a plurality of jobs submitted to a system having a plurality of nodes, one or more of the plurality of jobs for which a waiting period for execution exceeding a predetermined length has occurred, based on recorded information indicating the number of nodes executing the job, the time when the job was submitted, and the time when the job began to be executed; and generating output information that visualizes, for each of the one or more identified jobs, the number of nodes executing the job and the period for which the job has been waiting to be executed.

2. The information processing program of claim 1, characterized in that the output information is screen information showing a display screen in Gantt chart format including a plurality of strip-shaped first display areas arranged in parallel along a time axis, and the generating process generates the output information on the display screen so that, for each of the one or more identified jobs, a frame indicating the period during which the job is waiting to be executed is placed on a number of first display areas among the plurality of first display areas equal to the number of nodes executing the job.

3. The information processing program of claim 2, characterized in that the output information is screen information showing a display screen in Gantt chart format including a plurality of strip-shaped first display areas and a plurality of strip-shaped second display areas arranged in parallel along the time axis, and the generating process generates the output information so that, for each of the plurality of jobs on the display screen, a frame representing the period during which the job is being executed is placed on a second display area among the plurality of second display areas corresponding to a node that executed the job.

4. The information processing program of claim 3, characterized in that the recording information further indicates, for each of the plurality of jobs, a user corresponding to that job, and the generating process generates the output information so that, when a first job of the plurality of jobs corresponding to a first user is being executed and a second job of the one or more identified jobs corresponding to the first user is waiting to be executed, a frame indicating the period during which the second job is waiting to be executed is displayed in a specific display manner on the display screen.

5. The information processing program of claim 4, characterized in that the generating process generates the output information so that, when two jobs corresponding to the same user among the one or more identified jobs are waiting to be executed simultaneously, a frame indicating the period during which at least one of the two jobs is waiting to be executed is displayed in a specific display manner on the display screen.

6. An information processing program according to any one of claims 1 to 5, characterized in that the computer is caused to execute a process of outputting information indicating, among the plurality of jobs, the job that has been in execution for the longest period of time, the job that has been waiting to be executed for the longest period of time, or the job that is being executed by the largest number of nodes.

7. The information processing program according to claim 6, characterized in that the output process outputs the user with the largest statistical value for the length of time a job is being executed, the user with the largest statistical value for the length of time a job is waiting to be executed, or the user with the largest statistical value for the number of nodes based on the statistical value calculated for each user of the length of time a job corresponding to the user is being executed, the statistical value of the length of time a job corresponding to the user is waiting to be executed, or the statistical value of the number of nodes executing jobs corresponding to the user.

8. The information processing program according to any one of claims 2 to 5, characterized in that the information processing program causes the computer to execute a process of displaying the display screen based on the generated output information.

9. The information processing program according to claim 8, characterized in that the display process, when the display screen is displayed, in response to receiving a selection of a frame representing a period during which any one of the multiple jobs is being executed or waiting to be executed, redisplays the display screen so that a frame representing a period during which another job corresponding to the same user as any one of the multiple jobs is being executed or waiting to be executed is displayed in a specific display mode.

10. An information processing method characterized by a computer executing the following process: for each of a plurality of jobs submitted to a system having a plurality of nodes, based on recorded information indicating the number of nodes executing the job, the time when the job was submitted, and the time when the job started to be executed, identify one or more of the plurality of jobs for which a waiting period for execution exceeding a predetermined length has occurred; and generate output information that visualizes, for each of the one or more identified jobs, the number of nodes executing the job and the period for which the job has been waiting to be executed.

11. An information processing device having a control unit that, for each of a plurality of jobs submitted to a system having a plurality of nodes, identifies one or more of the plurality of jobs for which a waiting period for execution exceeding a predetermined length has occurred based on recorded information indicating the number of nodes executing the job, the time when the job was submitted, and the time when the job started to be executed, and generates output information that visualizes, for each of the one or more identified jobs, the number of nodes executing the job and the period for which the job has been waiting to be executed.

Citation Information

Patent Citations

  • Control method for execution of parallel computer

    JP1995141305A

  • Processor allocation system

    JP1995200496A

  • Batch job delay alarm automatic raising system, automatic alarm raising method and program therefor

    JP2012146049A

  • Computer job scheduler with efficient node selection

    US20110072437A1

  • Method and apparatus for indicating the status of one or more computer processes

    US6289368B1