Verification task assignment device and verification task assignment method
The verification task placement device optimizes task allocation by determining execution order and prioritizing tasks with high task amounts, reducing execution time by leveraging parallel processing and resource utilization.
Patent Information
- Application Number
- PCT/JP2024/006270
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-02-21
- Publication Date
- 2025-08-28
AI Technical Summary
Conventional network verification task allocation methods require manual determination of execution order and lack optimal arrangement of tasks, leading to inefficient execution times, especially when multiple nodes are involved.
A verification task placement device that determines an execution order for parallel processing of tasks, calculates task amounts based on processing time and node usage, and prioritizes tasks with high task amounts to optimize task placement.
Reduces the time required to execute multiple verification tasks by optimizing task placement and execution order, minimizing total processing time through parallel processing and resource utilization.
Smart Images

Figure JP2024006270_28082025_PF_FP_ABST
Abstract
Description
Verification task allocation device and verification task allocation method
[0001] The present invention relates to a verification task allocation device and a verification task allocation method, and more particularly to a verification task allocation device and a verification task allocation method for allocating network verification tasks.
[0002] In recent years, a mechanism has been established that allows the settings of network devices (nodes) to be changed using programs such as Python (registered trademark), and automation of processes using nodes has attracted attention. RobotFrameWork is a development tool that is often used for automating verification (see Non-Patent Document 1). Using this tool makes it possible to automatically execute node configuration, etc., and also to display verification results in a format that is easy for humans to read.
[0003] “ROBOT FRAME WORK”, [online], [Retrieved January 26, 2024], Internet〈URL: https: / / robotframework.org / 〉
[0004] However, the technology described in Non-Patent Document 1 only has a function for operating network devices according to a predefined execution procedure. Therefore, when using the conventional technology for automating verification to automatically execute node verification items, a human must determine in advance the order in which verification tasks should be executed from among multiple verification items.
[0005] Furthermore, in the conventional technology, when there are verification tasks that use multiple nodes, it is not possible to arrange the verification tasks in an optimal execution order. Specifically, in the conventional method, for example, multiple verification tasks are executed in sequential order, or a verification task that can be executed on an available node is executed. As a result, the conventional method sometimes takes more time than necessary to execute multiple verification tasks.
[0006] Therefore, an object of the present invention is to solve the above problem and reduce the time required to perform multiple verification tasks.
[0007] The verification task placement device of the present invention is characterized by comprising: a task placement unit that determines an execution order including parallel processing of multiple verification tasks, each of which uses at least one node in a network as a resource, and places the multiple verification tasks in accordance with the execution order; a task amount calculation unit that calculates for each verification task a task amount defined as the product of the processing time of the verification task and the number of nodes used for the verification task, based on the number of nodes that can be used simultaneously in the network, the processing time required for each of the multiple verification tasks, including verification tasks that use multiple nodes simultaneously, and the number of nodes used for the verification task; and a priority placement unit that gives priority to placement of verification tasks with large task amounts.
[0008] According to the present invention, the time required to perform multiple verification tasks can be reduced.
[0009] FIG. 1 is a schematic configuration diagram of a system including a verification task placement device according to a first embodiment. FIG. 2 is a schematic diagram showing an example when task volume is not taken into account. FIG. 3 is a schematic diagram showing an example when task volume is taken into account. FIG. 4 is a schematic diagram showing an example of task allocation. FIG. 5 is a diagram showing a topology at the end of task 71. FIG. 6 is a diagram showing a topology at the end of task 72. FIG. 7 is a diagram showing a topology at the end of task 73. FIG. 7 is a schematic diagram showing an example when wait time is not taken into account. FIG. 8 is a schematic diagram showing an example when wait time is taken into account.
[0010] A verification task placement device according to this embodiment will be described in detail below with reference to the drawings. The verification task placement device 100 shown in FIG. 1 is, as an example, a management device that manages a network 101. The verification task placement device 100 places verification tasks to automatically execute verification items of nodes 200 in the network 101. A simulator 300 is connected to the network 101 and executes multiple verification tasks, each of which uses at least one node as a resource. The simulator 300 causes each node 200 to execute the verification tasks according to the execution order of the verification tasks acquired from the verification task placement device 100.
[0011] The verification task placement device 100 includes a task placement unit 110 , a task amount calculation unit 120 , a priority placement unit 130 , a topology candidate extraction unit 140 , an unused resource calculation unit 150 , and an evaluation value calculation unit 160 .
[0012] The task placement unit 110 determines an execution order including parallel processing of a plurality of verification tasks, each of which uses at least one node in the network as a resource, and places the plurality of verification tasks in accordance with the execution order.
[0013] The task amount calculation unit 120 calculates, for each verification task, the task amount defined as the product of the processing time of the verification task and the number of nodes used for the verification task, based on the number of nodes that can be used simultaneously in the network, the processing time required for each of multiple verification tasks, including a verification task that uses multiple nodes simultaneously, and the number of nodes used for this verification task.
[0014] The priority placement unit 130 places verification tasks with a large task volume with priority. When accommodating at least one verification task and determining the next verification task to be accommodated, the topology candidate extraction unit 140 extracts multiple topology candidates along a time axis based on the processing time of the unaccommodated verification task and the number of nodes used for that verification task when one of the currently accommodated verification tasks ends.
[0015] The unused resource calculation unit 150 calculates, for each topology candidate, the amount of unused resources that would have been available if the resources had been released. The evaluation value calculation unit 160 calculates, for each topology candidate, an evaluation value defined as the difference between the amount of tasks for the verification task candidate to be placed next and the amount of unused resources. At this time, the priority placement unit 130 places, with priority, the verification task candidate that uses the topology candidate with the highest evaluation value.
[0016] The network 101 includes a plurality of nodes 200. When the network 101 is a communication network, the nodes 200 are configured, for example, by routers or switches, and the links connecting the nodes 200 are configured by optical fiber cables. In Fig. 1, the number of links connecting the nodes 200 and the number of nodes 200 are arbitrary. When the nodes need to be distinguished, they are represented as, for example, Switch #1 to Switch #6, and when they are not distinguished, they are represented as nodes 200.
[0017] Node verification tasks include verification tasks that can be performed by a single node and verification tasks that use multiple nodes. A verification task performed by a single node 200, for example, may involve rebooting Switch #6 and verifying that a startup notification has been sent after Switch #6 has started up. Another example is a verification task that uses Switch #6 and simulator 300 to verify whether Simple Network Management Protocol (SNMP) is sent correctly when Switch #6 is rebooted.
[0018] Furthermore, a verification task using multiple nodes 200 may include, for example, a verification task in which no shutdown is set on Switch #1 and confirmation is made that the interface of Switch #2 is UP. Another example is a verification task in which, for example, Switch #1, Switch #2, Switch #3, and the simulator 300 are used to confirm whether a route is correctly learned in BPG (Border Gateway Protocol).
[0019] The task placement unit 110 determines the next verification task to be accommodated using the node 200 that becomes available when a predetermined verification task is completed. The task amount A calculated by the task amount calculation unit 120 is calculated by multiplying the task execution time T by the number of nodes used N, and is defined by the following formula (1):
[0020]
[0021] For example, the task volume of verification task j (j=1, 2, 3, ...) is A j Then, the task amount A j is expressed by the following formula (2).
[0022]
[0023] Here, T j is the processing time of verification task j (task execution time), N j indicates the number of nodes used for verification task j (number of nodes used).
[0024] Next, the task amount calculated by the verification task placement device 100 will be described with reference to FIGS. 2A and 2B. Here, as an example, the number of nodes 200 that can be used simultaneously in the network 101 is assumed to be three. Also, assume that there are four unclaimed verification tasks as shown below. Hereinafter, verification tasks may be simply referred to as tasks.
[0025] (Task 61) Number of switches (nodes) used: 2 Estimated execution time (required processing time): 300 seconds (long processing time) (Task 62) Number of switches (nodes) used: 1 Estimated execution time (required processing time): 150 seconds (medium processing time) (Task 63) Number of switches (nodes) used: 1 Estimated execution time (required processing time): 110 seconds (medium processing time) (Task 64) Number of switches (nodes) used: 1 Estimated execution time (required processing time): 60 seconds (short processing time)
[0026] FIG. 2A is a schematic diagram showing the processing of a comparative example in which task volume is not considered and task 61 is not prioritized. Here, the explanation assumes that the start point of each verification task is the origin of the time axis (t=0). In this comparative example, task 62 is assigned to Switch #1. Task 64 is assigned to Switch #2. Task 63 is assigned to Switch #3. In this case, after task 64 is completed (t=60), Switch #2 (resource) is released. However, because there is only one free resource, task 61 cannot be assigned immediately. Subsequently, after task 63 is completed (t=110), Switch #3 (resource) is released. As a result, there are now two free resources, so task 61 can be assigned. Therefore, task 61 is completed at t=410, and processing of all verification tasks is completed.
[0027] In response to this, the verification task placement device 100 calculates the task amount of each verification task as follows, and places task 61 with priority: Task amount of task 61: 300×2=600 Task amount of task 62: 150×1=150 Task amount of task 63: 110×1=110 Task amount of task 64: 60×1=60
[0028] 2B is a schematic diagram showing processing in which task 61 is prioritized in consideration of the task volume. As shown in the figure, at time t=0, task 61 is assigned to Switch #1 and Switch #2, and task 62 is assigned to Switch #3. Finally, at time t=320, task 64 is completed, thereby completing processing of all verification tasks. Therefore, the processing time for all verification tasks is reduced by 90 seconds compared to the comparative example.
[0029] (Specific Example of Verification Task Allocation Method) Next, a specific example (example) of the verification task allocation method according to this embodiment will be described. First, specific examples of the underlying network configuration, the number of nodes that can be used simultaneously in the network, the number of nodes used by each verification task, and the processing time of each verification task will be described.
[0030] (Network Configuration) As shown in Figure 3, six switches are arranged at each vertex of a hexagon. Specifically, Switch #2 and Switch #4 are arranged at the vertex adjacent to Switch #1. Switch #3 and Switch #1 are arranged at the vertex adjacent to Switch #2. Switch #6 and Switch #2 are arranged at the vertex adjacent to Switch #3. Switch #1 and Switch #5 are arranged at the vertex adjacent to Switch #4. Switch #4 and Switch #6 are arranged at the vertex adjacent to Switch #5. Switch #5 and Switch #3 are arranged at the vertex adjacent to Switch #6. Switch #6 is arranged at the vertex opposite Switch #1. Switch #5 is arranged at the vertex opposite Switch #2. Switch #4 is arranged at the vertex opposite Switch #3. Each switch is connected to all other switches.
[0031] (Number of nodes used and processing time for each verification task) As another example, consider the following five unclaimed verification tasks.
[0032] (Task 71) Number of switches used (number of nodes): 2 Estimated execution time (required processing time): 300 seconds (Task 72) Number of switches used (number of nodes): 2 Estimated execution time (required processing time): 303 seconds (Task 73) Number of switches used (number of nodes): 2 Estimated execution time (required processing time): 480 seconds (Task 74) Number of switches used (number of nodes): 2 Estimated execution time (required processing time): 40 seconds (Task 75) Number of switches used (number of nodes): 4 Estimated execution time (required processing time): 200 seconds
[0033] Also, let us assume that the initial accommodation state is a state in which tasks 71, 72, and 73 are accommodated among the five unaccommodated verification tasks. Node group 401 consisting of Switch #3 and Switch #2 shown in FIG. 3 starts task 71 in the initial accommodation state. Node group 402 consisting of Switch #1 and Switch #4 starts task 72 in the initial accommodation state. Node group 403 consisting of Switch #5 and Switch #6 starts task 71 in the initial accommodation state. In the initial accommodation state, tasks 74 and 75 are unaccommodated.
[0034] When determining the next verification task to accommodate (task 74 or task 75), the topology candidate extraction unit 140 extracts multiple topology candidates along the time axis based on the processing time of the unaccommodated verification task and the number of nodes used for that verification task when one of the currently accommodated verification tasks ends. In the following explanation, the origin of the time axis (t=0) is defined as 300 seconds after the initial accommodation state, i.e., the point at which task 71 is completed. Figures 4A, 4B, and 4C are schematic diagrams illustrating multiple topology candidates extracted along the time axis corresponding to the completion of each task. As shown in Figure 4A, Switch #3 and Switch #2 (resources) are released after 0 seconds (the end of task 71). At the end of task 71 (t=0), Switch #3 and Switch #2 are candidates for free resources. As shown in Figure 4B, Switch #1 and Switch #4 (resources) are released after 3 seconds (the end of task 72). At the end of task 72 (t=3), Switch #3, Switch #2, Switch #1, and Switch #4 are candidates for free resources. As shown in Figure 4C, after 180 seconds (at the end of task 73), Switch #5 and Switch #6 (resources) are released. At the end of task 73 (t=180), all switches are candidates for free resources.
[0035] The unused resource calculation unit 150 calculates the amount of unused resources for each topology candidate. Here, the amount of unused resources indicates the resources that would have been available if the resources had been released. The amount of unused resources R is defined by the following formula (3), where P is the expected time for a topology change and Q is the number of unused nodes. The expected time for a topology change P and the number of unused nodes Q will be explained later along with formulas and specific examples.
[0036]
[0037] The evaluation value calculation unit 160 calculates an evaluation value when one of the multiple verification tasks is completed. Here, the evaluation value E is defined as the difference between the task amount A and the unused resource amount R for the next verification task candidate to be allocated. This is shown in the following formula (4).
[0038]
[0039] In formula (4), the task amount A is defined in formula (1). The unused resource amount R will be explained together with formulas and specific examples below. Specific examples of evaluation values calculated by the verification task placement device 100 will be described later.
[0040] The evaluation value etc. can also be generalized and expressed by the following formula. For example, the task volume of verification task m (m=1, 2, 3, ...) to be performed using topology k (k=1, 2, 3, ...) after the transition is expressed as A k,m Then, the task amount A k,m is expressed by the following formula (5).
[0041]
[0042] Here, T k,j is the processing time of verification task m executed using topology k after the transition, N k,m indicates the number of nodes used for verification task m to be performed using topology k after the transition.
[0043] The amount of unused resources for verification task m executed using topology k after the transition is R k,m Then, the amount of unused resources R k,mis defined by the following formula (6) for each resource release.
[0044]
[0045] Here, P k,m is the number of nodes that cannot be used until transition to topology k (number of unused nodes), Q k,m indicates the waiting time (expected topology change time) of a node that cannot be used until it transitions to topology k.
[0046] The evaluation value of the verification task m (the candidate verification task to be placed next) to be executed using the topology k after the transition is E k,m Then, the evaluation value E k,m is expressed by the following formula (7).
[0047]
[0048] Here, A k,m is expressed by the formula (5), and R k,m is expressed by Equation (6). Sigma is calculated by R k,m This means adding up the numbers.
[0049] Next, specific examples of evaluation values calculated by the verification task placement device 100 will be described with reference to FIGS. 4A to 4C. In the topology shown in FIG. 4A, after 0 seconds (when task 71 is completed), free resources are Switch #3 and Switch #2. Therefore, it is possible to allocate unused task 74 to Switch #3 and Switch #2. Task 74 uses two switches and has a predicted execution time of 40 seconds. Therefore, the task amount A is 40 × 2 = 80 according to equation (1). Furthermore, since no waiting time occurs, the unused resource amount R is 0. Therefore, the evaluation value E of the candidate for executing task 74 when transitioning to the topology shown in FIG. 4A is 80 according to equation (4).
[0050] In the topology shown in FIG. 4B , after 3 seconds (when task 72 is completed), the available resources are Switch #3, Switch #2, Switch #1, and Switch #4. Therefore, it is possible to assign the unused task 75 to Switch #3, Switch #2, Switch #1, and Switch #4. Task 75 uses four switches and has a predicted execution time of 200 seconds. Therefore, the task amount A of task 75 is calculated as 200 × 4 = 800 according to equation (1). The nodes that cannot be used until the topology shown in FIG. 4A transitions to the topology shown in FIG. 4B are Switch #1 and Switch #4. Therefore, the number of unused nodes Q is 2, and the waiting time (expected topology change time) P of the unavailable nodes is 3 seconds. Therefore, the amount of unused resources R is calculated as 3 × 2 = 6 according to equation (3). Therefore, the evaluation value E of the candidate for executing task 75 when transitioning to the topology shown in FIG. 4B is calculated as 200 × 4 - 3 × 2 = 794 according to equation (4).
[0051] In the topology shown in FIG. 4C, after 180 seconds (when task 73 is completed), all switches have free resources. Therefore, it is possible to assign unused task 75 to the free resources. Here, task 75 is assigned to Switch #1, Switch #4, Switch #5, and Switch #6. The amount of unused resources R from the topology shown in FIG. 4A to the topology shown in FIG. 4B (until the first resource release occurs) is 3 × 2 = 6. Furthermore, the nodes that cannot be used until the topology shown in FIG. 4B transitions to the topology shown in FIG. 4C (until the second resource release occurs) are Switch #1, Switch #4, Switch #5, and Switch #6. Therefore, the number of unused nodes Q during the transition from FIG. 4B to FIG. 4C is 4, and the waiting time (expected topology change time) P for these unavailable nodes is 177 seconds. Therefore, the amount of unused resources R during the transition from FIG. 4A to FIG. 4C is 177 × 4 + 3 × 2 = 714, according to equation (3). Therefore, the evaluation value E of the candidate for performing task 75 when transitioning to the topology shown in FIG. 4C is 200×4−(177×4+3×2)=86 according to equation (4).
[0052] In the verification task placement device 100, the evaluation value calculation unit 160 calculates an evaluation value for each topology candidate, and the priority placement unit 130 places the verification task candidate using the topology candidate with the highest evaluation value with priority. In this specific example, of the three candidates, the candidate that executes task 75 when transitioning to the topology shown in Figure 4B has the highest evaluation value E. Therefore, the priority placement unit 130 places task 75 in an available resource three seconds later (when task 72 is completed).
[0053] Next, the effects of an embodiment of the verification task allocation method will be described with reference to Figs. 5 and 6 (and Figs. 4A to 4C as appropriate). Fig. 5 is a schematic diagram showing a comparative example that does not take waiting time into consideration. The comparative example is a conventional method in which multiple verification tasks are performed in sequential order, or in which verification tasks that can be performed on available nodes are performed. Fig. 6 is a schematic diagram showing an embodiment that takes waiting time into consideration.
[0054] 5 and 6, when task 71 is completed, Switch #3 and Switch #2 (resources) are released. The time when task 71 is completed is set as the origin of the time axis (t=0). At t=0, task 72 is being executed, and it takes about 3 seconds for Switch #1 and Switch #4 (resources) to be released. Also, at t=0, task 73 is being executed, and it takes about 180 seconds for Switch #5 and Switch #6 (resources) to be released.
[0055] When task 71 is completed (t=0), the available resources are Switch #3 and Switch #2. In the comparative example shown in FIG. 5 , when task 71 is completed (t=0), task 74 is assigned to the available resources (Switch #3 and Switch #2). Thereafter, when task 72 is completed (t=3), Switch #1 and Switch #4 (resources) are released. However, since there are only two available resources, task 75 cannot be assigned immediately. Thereafter, when task 74 is completed (t=40), Switch #3 and Switch #2 (resources) are released. Therefore, after task 74 is completed, task 75 is assigned to Switch #3, Switch #2, Switch #1, and Switch #4. Therefore, task 75 is completed at t=240, and processing of all verification tasks is completed.
[0056] Meanwhile, the verification task placement device 100 prioritizes placement of the verification task (task 75) using the topology with the highest evaluation value ( FIG. 4B ). Task 75 uses four switches and has a predicted execution time of 200 seconds. In the example shown in FIG. 6 , after task 71 is completed, the priority placement unit 130 waits for task 72 to finish without using the currently available resources (Switch #3, Switch #2). Thereafter, when task 72 finishes (t=3), the available resources are Switch #3, Switch #2, Switch #1, and Switch #4. Therefore, after task 72 finishes, the priority placement unit 130 assigns task 75 to Switch #3, Switch #2, Switch #1, and Switch #4. Therefore, task 75 finishes at t=203. Meanwhile, when task 73 finishes (t=180), Switch #5 and Switch #6 (resources) are released, and Switch #5 and Switch #6 become available resources. Therefore, the priority placement unit 130 assigns task 74 to Switch #5 and Switch #6 when task 73 is completed (t=180). As a result, task 74 ends at time t=220, completing the processing of all verification tasks. Therefore, in the example shown in FIG. 6, the processing time for all verification tasks is reduced by 20 seconds.
[0057] In the above specific example, the initial accommodation state is assumed to be a state in which tasks 71, 72, and 73 are accommodated from the five unassigned verification tasks. This is the result of the verification task placement device 100 performing optimization to maximize the number of tasks accommodated in the topology. For example, linear programming can be used for optimization. When linear programming is used, the following variables and constraints can be used. Variables: Set of verification tasks: T(t) Set of nodes (verification devices): N(n) Variable X t,n : A binary variable that is set to 1 when task t uses node n and 0 when it does not. Constraint: The following equation (8) must be satisfied for all nodes n. In other words, multiple tasks cannot use one device at the same time.
[0058]
[0059] For all tasks t, the following formula (9) is satisfied. In other words, when executing a task, the number of nodes required is C t Use.
[0060]
[0061] The following formulas (10) and (11) are to be satisfied.
[0062]
[0063] [Operation of the Verification Task Placement Device] Next, the operation of the verification task placement device 100 according to the first embodiment will be described with reference to Fig. 7 (and Fig. 1 as appropriate). The verification task placement device 100 performs optimization so as to maximize the number of tasks accommodated in all topologies (step S11). The verification task placement device 100 performs optimization using, for example, the following equation (12) as an objective function:
[0064]
[0065] Here, T represents the task execution time, N represents the number of nodes used, and Sigma represents the sum of the task amounts A of the verification tasks when there are several unaccommodated verification tasks that can be executed based on the number of simultaneously available nodes in the target network. In this specific example, assuming that six simultaneously available nodes are available, tasks 71, 72, and 73 are accommodated from among five unaccommodated verification tasks as the initial accommodation state. The verification task placement device 100 then calculates the expected topology change time for each topology when the target verification task (e.g., task 71) is completed (step S12). The verification task placement device 100 then calculates the evaluation value E of each topology using equation (4) (step S13). The verification task placement device 100 then selects the topology with the highest evaluation value (step S14). The verification task placement device 100 then accommodates the corresponding verification task (e.g., task 75) (step S15).
[0066] The verification task placement device 100 then determines whether all verification tasks have been accommodated (step S16). If not all verification tasks have been accommodated (step S16: No), the verification task placement device 100 returns to step S12 and calculates each topology change expected time when the next target verification task (e.g., task 74) is completed. On the other hand, if all verification tasks have been accommodated (step S16: Yes), the verification task placement device 100 ends the process.
[0067] Second Embodiment The verification task placement device 100 according to the second embodiment differs from the first embodiment in that, if there is an immediately accommodating task among the outstanding verification tasks, the immediately accommodating task is placed before the next candidate verification task to be placed, even if the task quantity priority of the immediately accommodating task is low. An immediately accommodating task is a verification task that can be completed during the waiting time before the next candidate verification task to be placed is executed and can be processed using available resources.
[0068] The following task 76 is an example of an immediate accommodation task. (Task 76) Number of switches (nodes) used: 1 Estimated execution time (required processing time): 2 seconds In the example shown in FIG. 6 , after task 71 is completed (t=0), the system waits for task 72 to finish, and then, after task 72 finishes (t=3), task 75 is assigned. The verification task placement device 100 according to the second embodiment places task 76 before task 75, if there is task 76. As a result, after task 71 is completed (t=0), Switch #3 and Switch #2 execute task 76, and three seconds later (after task 76 is completed), Switch #3, Switch #2, Switch #1, and Switch #4 execute task 75.
[0069] Next, the operation of the verification task placement device 100 according to the second embodiment will be described with reference to FIG. 8 (and also with reference to FIG. 1 as appropriate). The processing up to step S14 is the same as in the first embodiment, and therefore a description thereof will be omitted. Following step S14, the verification task placement device 100 determines whether waiting is necessary before transitioning to the selected topology (step S21). If waiting is not necessary (step S21: No), the verification task placement device 100 accommodates the relevant verification task using a topology that does not require waiting (step S15). The subsequent processing is the same as in the first embodiment, and therefore a description thereof will be omitted.
[0070] On the other hand, if waiting is necessary in step S21 (step S21: Yes), the verification task placement device 100 determines whether there is an immediately accommodated task that will be completed by the transition time to the selected topology (step S22). If there is an immediately accommodated task that will be completed by the transition time (step S22: Yes), the verification task placement device 100 accommodates the immediately accommodated task (step S23). Thereafter, the verification task targeted in step S12 is completed (step S24). Note that if there is no immediately accommodated task that will be completed by the transition time (step S22: No), the verification task placement device 100 skips step S23.
[0071] The verification task placement device 100 then determines whether a transition to a topology with a higher evaluation value has occurred (step S25). In other words, the verification task placement device 100 determines whether a transition to a waiting topology has occurred. If a transition to a waiting topology has not occurred (step S25: No), the verification task placement device 100 returns to step S22. On the other hand, if a transition to a waiting topology has occurred (step S25: Yes), the verification task placement device 100 returns to step S15 and accommodates the corresponding verification task that uses the waiting topology. The subsequent processing is the same as in the first embodiment, and therefore a description thereof will be omitted.
[0072] [Hardware Configuration] The verification task placement device 100 according to each of the above embodiments is realized by a computer 900 having a configuration such as that shown in Fig. 9. Fig. 9 is a hardware configuration diagram showing an example of the computer 900 that realizes the functions of the verification task placement device 100 according to this embodiment. The computer 900 has a CPU (Central Processing Unit) 901, a ROM (Read Only Memory) 902, a RAM (Random Access Memory) 903, an HDD (Hard Disk Drive) 904, an input / output I / F (Interface) 905, a communication I / F 906, and a media I / F 907.
[0073] The CPU 901 operates based on programs stored in the ROM 902 or the HDD 904. The ROM 902 stores a boot program executed by the CPU 901 when the computer 900 is started up, programs related to the hardware of the computer 900, and the like.
[0074] The CPU 901 controls an input device 910 such as a mouse or keyboard, and an output device 911 such as a display or printer, via an input / output I / F 905. The CPU 901 acquires data from the input device 910 via the input / output I / F 905, and outputs generated data to the output device 911. Note that a GPU (Graphics Processing Unit) or the like may be used as a processor together with the CPU 901.
[0075] The HDD 904 stores programs executed by the CPU 901 and data used by the programs. The communication I / F 906 receives data from other devices via the communication network 920 and outputs the data to the CPU 901, and also transmits data generated by the CPU 901 to other devices via the communication network 920.
[0076] The media I / F 907 reads a program or data stored in the recording medium 912 and outputs it to the CPU 901 via the RAM 903. The CPU 901 loads a program related to a target process from the recording medium 912 onto the RAM 903 via the media I / F 907, and executes the loaded program. The recording medium 912 is an optical recording medium such as a DVD (Digital Versatile Disc) or a PD (Phase Change Rewritable Disc), a magneto-optical recording medium such as an MO (Magneto Optical Disk), a magnetic recording medium, or a semiconductor memory.
[0077] For example, when the computer 900 functions as the verification task placement device 100 according to the embodiment, the CPU 901 executes a program (verification task placement program) loaded onto the RAM 903 to realize the functions of the verification task placement device 100. The HDD 904 also stores data stored in the RAM 903. The CPU 901 reads and executes a program related to a target process from a recording medium 912. The CPU 901 can also read a program related to a target process from another device via a communication network 920.
[0078] [Effects] As described above, the verification task placement device 100 is characterized by comprising: a task placement unit 110 that determines an execution order, including parallel processing of multiple verification tasks, each of which uses at least one node 200 in the network 101 as a resource, and places the multiple verification tasks in accordance with the execution order; a task amount calculation unit 120 that calculates, for each verification task, a task amount A defined as the product of the processing time T of the verification task and the number N of nodes to be used for the verification task, based on the number of nodes 200 that can be used simultaneously in the network 101, the processing time T required for each of the multiple verification tasks, including verification tasks that use multiple nodes 200 simultaneously, and the number N of nodes to be used for the verification task; and a priority placement unit 130 that prioritizes placement of verification tasks with larger task amounts A.
[0079] By doing this, the verification task placement device 100 prioritizes verification tasks with a large task amount A, defined as the product of the processing time T and the number of nodes N. Here, the longer the processing time T, the greater the impact on the total processing time of all verification tasks if the verification task is delayed in accommodating it. Therefore, prioritizing verification tasks with long processing times T contributes to reducing the total processing time of all verification tasks. Furthermore, the larger the number of nodes N, the more difficult it becomes to accommodate that verification task. Therefore, prioritizing verification tasks that use a large number of nodes N contributes to reducing the total processing time of all verification tasks. Therefore, the verification task placement device 100 minimizes the total processing time of all verification tasks by prioritizing verification tasks that use a large number of nodes N and have a long processing time T. Therefore, the verification task placement device 100 can reduce the time required to execute multiple verification tasks.
[0080] The verification task placement device 100 accommodates at least one verification task and, when determining the next verification task to be accommodated, comprises: a topology candidate extraction unit 140 that extracts multiple topology candidates along a time axis based on the processing time of the unused verification task and the number of nodes used for that verification task when one of the currently accommodated verification tasks ends; an unused resource calculation unit 150 that calculates, for each topology candidate, the amount of unused resource R that indicates the resources that could have been used if the resources had been released; and an evaluation value calculation unit 160 that calculates, for each topology candidate, an evaluation value E defined as the difference between the task amount A and the amount of unused resource R for the next verification task candidate to be placed; and the priority placement unit 130 is characterized by preferentially placing verification task candidates that use the topology candidate with the highest evaluation value E.
[0081] In this way, the verification task placement device 100 calculates the unused resource amount R, which indicates the amount of resources that could have been used if the resources had been released, and prioritizes placement of verification task candidates that use the topology candidate that results in the highest evaluation value E, defined as the difference between the task amount A and the unused resource amount R. This allows the verification task placement device 100 to wait a short time and prioritize the execution of another verification task once the required number of nodes has been gathered. This allows the verification task placement device 100 to reduce the time required to execute multiple verification tasks.
[0082] The verification task placement device 100 is characterized in that, if there is an immediately accommodated task that can be completed by the transition time to the selected topology, the priority placement unit 130 accommodates the immediately accommodated task.
[0083] In this way, the verification task placement device 100 can place a verification task that can be processed using available resources during the waiting time before the next verification task candidate is executed. The verification task placement device 100 can optimize the placement of multiple verification tasks, further shortening the total processing time of all verification tasks.
[0084] The present invention is not limited to the above-described embodiments, and many modifications within the technical spirit of the present invention are possible for those skilled in the art. For example, the simulator 300 shown in FIG. 1 may be configured to include the verification task placement device 100. Furthermore, the simulator 300 is not essential. The verification task placement device 100 may be connected to a network 101 to execute multiple verification tasks, each of which uses at least one node 200 as a resource. The network 101 may also include a network controller that controls each node 200. In this case, the verification task placement device 100 may reconfigure not only the nodes 200 but also the network controller as verification target devices.
[0085] REFERENCE SIGNS LIST 100 Verification task placement device 101 Network 110 Task placement unit 120 Task quantity calculation unit 130 Priority placement unit 140 Topology candidate extraction unit 150 Unutilized resource calculation unit 160 Evaluation value calculation unit 200 Node
Claims
1. A verification task placement device comprising: a task placement unit that determines an execution order including parallel processing of multiple verification tasks, each of which uses at least one node in a network as a resource, and places the multiple verification tasks in accordance with the execution order; a task amount calculation unit that calculates for each verification task the task amount defined as the product of the processing time of the verification task and the number of nodes used for the verification task, based on the number of nodes that can be used simultaneously in the network, the processing time required for each of the multiple verification tasks, including verification tasks that use multiple nodes simultaneously, and the number of nodes used for the verification task; and a priority placement unit that prioritizes the placement of verification tasks with large task amounts.
2. A verification task placement device as described in claim 1, comprising: a topology candidate extraction unit that, when accommodating at least one verification task and determining the next verification task to be accommodated, extracts multiple topology candidates along a time axis based on the processing time of the unused verification task and the number of nodes used for that verification task at the time when one of the currently accommodated verification tasks ends; an unused resource calculation unit that calculates, for each topology candidate, the amount of unused resources that would have been available for execution if the resources had been released; and an evaluation value calculation unit that calculates, for each topology candidate, an evaluation value defined as the difference between the task amount and the amount of unused resources for the next verification task candidate to be placed, wherein the priority placement unit preferentially places the verification task candidate using the topology candidate with the highest evaluation value.
3. The verification task placement device according to claim 2, characterized in that, if there is an immediately accommodated task that can be completed by the transition time to the selected topology, the priority placement unit accommodates the immediately accommodated task.
4. A verification task placement method in a verification task placement device that determines an execution order including parallel processing of multiple verification tasks, each of which uses at least one node in a network as a resource, and places the multiple verification tasks in accordance with the execution order, wherein the verification task placement device calculates for each verification task a task amount defined as the product of the processing time of the verification task and the number of nodes used for the verification task, based on the number of nodes that can be used simultaneously in the network, the processing time required for each of the multiple verification tasks, including verification tasks that use multiple nodes simultaneously, and the number of nodes used for the verification task, and places verification tasks with a larger task amount with priority.
Citation Information
Patent Citations
Distributed computing system task allocation method and related equipment
CN111782359A
Information processing apparatus, parallel computing system, job schedule setting program, and job schedule setting method
JP2017016541A