WO2013058396A1 - Dispositif et procédé d'attribution de tâches - Google Patents
Dispositif et procédé d'attribution de tâches Download PDFInfo
- Publication number
- WO2013058396A1 WO2013058396A1 PCT/JP2012/077175 JP2012077175W WO2013058396A1 WO 2013058396 A1 WO2013058396 A1 WO 2013058396A1 JP 2012077175 W JP2012077175 W JP 2012077175W WO 2013058396 A1 WO2013058396 A1 WO 2013058396A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- order
- weight
- tasks
- dependency
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Definitions
- the present invention relates to a multi-core, and more particularly, to a task placement apparatus and a task placement method for an AMP (Asymmetric Multi Processing) type multi-core.
- AMP Asymmetric Multi Processing
- the SMP method is not suitable for application to a real-time system.
- the AMP method has a function-distributed configuration in which each task is executed on a specific core. For this reason, the AMP method is suitable for a real-time system in which prediction of system behavior is important, a system in which a core to which specific hardware is connected is limited, and the like.
- Such an AMP multi-core system has different performance based on which core the task is arranged. For this reason, the AMP multi-core system needs to search various task placements and determine the optimum placement so as to be in an optimal execution state.
- Patent Document 1 describes an apparatus that supports such multi-core task placement.
- the apparatus described in Patent Document 1 first acquires information (granularity information) regarding the granularity allocated to each core.
- the granularity is, for example, a unit of processing of the processor, and is a generic name for tasks, functions, and processes constituting the functions.
- this apparatus calculates the number of appearances for each task or for each function of the task based on the acquired granularity information, and generates information (structure information) regarding the calculated number of appearances.
- this device generates information (dependence information) related to dependence on other tasks or functions for each task or for each function of the task based on the acquired granularity information.
- this apparatus displays the information showing the dependence which exists between different cores based on granularity information, structure information, and dependence information. Based on this configuration, the device described in Patent Document 1 can support task placement that reduces the number of dependencies existing between different cores in a multi-core system. JP 2007-264734 A
- inter-core dependency refers to a dependency relationship between tasks arranged in different cores.
- the existence of such inter-core dependency is because a task placed on a core needs to wait for a task on another core to finish even though one core is free to execute the task. This is a cause of wasted time that it cannot be executed.
- the apparatus described in Patent Document 1 has a certain effect on the reduction of dead time based on waiting for dependence, based on minimizing the number of inter-core dependences.
- dead time is not sufficiently reduced by minimizing inter-core dependence. Such a case will be described below.
- the dependency between tasks may become a critical problem.
- a task set For example, as the execution of the entire task group (hereinafter also referred to as a task set) approaches the end, the dependency between tasks may become a critical problem. The reason for this will be described. Immediately after starting the execution of the task set, many tasks are ready to be executed. For this reason, immediately after the start of execution of the task set, even if there is some inter-core dependence, there is not much dependence waiting time. However, in a situation where the execution of the task set has advanced, the execution of many tasks has already been completed. This reduces the number of tasks that can be executed other than the task waiting for dependency.
- the dependency waiting based on inter-core dependency is more likely to occur as the position where each task can be executed (hereinafter also referred to as an order) in the flow of execution of the entire task set is backward (closer to the end). Moreover, even if it is not near the end of execution of the entire task set, a situation in which there are few executable tasks may occur. For example, there may be a problem of inter-core dependency between tasks having similar ranks in the flow of execution of the entire task set. The reason will be described. When tasks having dependency relationships are arranged in different cores, if the end of execution of the dependency source task is delayed based on some factor, a situation in which the dependency destination task waits occurs.
- An object of the present invention is to solve the above-mentioned problems, and to reduce the influence of non-uniform inter-core dependence based on the order for AMP-based multi-core systems, and achieve task performance with higher performance. To provide an apparatus.
- the task placement device of the present invention for a task set that is a set of tasks to be placed, a task set parameter holding means for holding a task set parameter including information representing a dependency relationship between the tasks, the task set parameter, Based on the order in which each task can be executed in the execution flow of the entire task set, an ordering weight that is a coefficient representing a weight based on the order is assigned to each dependency relationship between the tasks.
- the rank weight assigned to the dependency relationship between the two tasks placed in different cores is included in different cores.
- an arrangement means for calculating an evaluation value by using and arranging a task based on the calculated evaluation value.
- the task placement method of the present invention holds a task set parameter including information representing a dependency relationship between the tasks for a task set that is a set of tasks to be placed, and the task set parameter and the entire task set And assigning rank weights, which are coefficients representing weights based on the ranks, to the dependency relationships between the tasks, based on ranks that are positions where each task can be executed in the flow of execution of
- rank weights which are coefficients representing weights based on the ranks
- the program of the present invention is a task set parameter holding process for holding a task set parameter including information representing a dependency relationship between tasks for a task set which is a set of tasks to be arranged, the task set parameter, Based on the order in which each task can be executed in the execution flow of the entire task set, an ordering weight that is a coefficient representing a weight based on the order is assigned to each dependency relationship between the tasks.
- the order weight assignment process and when a task belonging to the task set is placed in one or more cores according to the dependency relation, the order weight given to the dependency relation between two tasks placed in different cores And calculating an evaluation value using the computer, and causing the computer to execute a placement process for arranging a task based on the calculated evaluation value.
- FIG. 1 is a block diagram showing an example of a hardware configuration of a task placement device as a first exemplary embodiment of the present invention.
- FIG. 2 is a block diagram showing an example of the function of the task placement device as the first exemplary embodiment of the present invention.
- FIG. 3 is a block diagram showing an example of the configuration of the rank weight assigning unit in the first embodiment of the present invention.
- FIG. 4 is a block diagram illustrating an example of the configuration of the arrangement unit according to the first embodiment of the present invention.
- FIG. 5 is a flowchart for explaining an example of the operation of the task placement device as the first exemplary embodiment of the present invention.
- FIG. 6 is a schematic diagram showing an example of a task set targeted by the task placement device as the first exemplary embodiment of the present invention.
- FIG. 7A is a diagram illustrating an example of a data structure of a task set parameter holding unit according to the first embodiment of this invention.
- FIG. 7B is a diagram illustrating an example of a data structure of a task set parameter holding unit according to the first embodiment of this invention.
- FIG. 7C is a diagram illustrating an example of a data structure of a task set parameter holding unit according to the first embodiment of this invention.
- FIG. 8 is a schematic diagram illustrating an example of a sequence code assigned to each task according to the first embodiment of this invention.
- FIG. 9 is a schematic diagram illustrating another example of a sequence code assigned to each task in the first embodiment of the present invention.
- FIG. 10 is a schematic diagram showing still another example of the ordinal code assigned to each task in the first embodiment of the present invention.
- FIG. 11 is a schematic diagram illustrating an example of rank weights assigned to each dependency relationship according to the first embodiment of this invention.
- FIG. 12 is a schematic diagram illustrating another example of rank weights assigned to each dependency relationship according to the first embodiment of this invention.
- FIG. 13 is a schematic diagram showing still another example of the ordering weights given to each dependency relationship in the first embodiment of the present invention.
- FIG. 14 is a schematic diagram for explaining inter-core dependence existing in task placement candidates in the first exemplary embodiment of the present invention.
- FIG. 15 is a block diagram showing an example of the function of the task placement device as the second exemplary embodiment of the present invention.
- FIG. 16A is a diagram illustrating an example of a data structure of an ordinal code holding unit according to the second embodiment of the present invention.
- 16B is a diagram illustrating an example of a data structure of an ordinal code holding unit in the second embodiment of the present invention. It is a flowchart explaining an example of operation
- positioning apparatus as the 2nd Embodiment of this invention.
- the task placement apparatus is configured to configure each task set when designing and implementing a function-distributed AMP multicore system in which each task is executed by a specific core.
- This is a device that determines in which core a task is to be placed.
- the performance of an AMP multi-core system differs depending on which core the task is placed on.
- task placement that enhances the performance of a multi-core system is possible based on the task placement device of each embodiment of the present invention.
- an AMP multicore system targeted in each embodiment of the present invention is simply referred to as a multicore system.
- FIG. 1 shows an example of the hardware configuration of the task placement device 1 as the first exemplary embodiment of the present invention.
- a task placement device 1 includes a CPU (Central Processing Unit) 1001, a RAM (Random Access Memory) 1002, a ROM (Read Only Memory) 1003, and a storage device 1004 such as a hard disk, and constitutes a computer. is doing.
- the ROM 1003 and the storage device 1004 store programs and various data for causing a computer to function as the task placement device 1 of the present embodiment.
- the CPU 1001 reads the program and various data stored in the ROM 1003 and the storage device 1004 into the RAM 1002 and executes them.
- the task placement device 1 includes a task set parameter holding unit 11, an ordering weight assigning unit 12, and a placement unit 13.
- the task set parameter holding unit 11 is configured using, for example, a storage device 1004.
- the rank weight assigning unit 12 and the arranging unit 13 are configured using, for example, a CPU 1001 that reads a computer program and various data stored in the ROM 1003 and the storage device 1004 into the RAM 1002 and executes them.
- the hardware configuration configuring each functional block of the task placement device 1 is not limited to the configuration described above.
- the task set parameter holding unit 11 holds task set parameters input from the outside.
- the task set parameter is information representing the characteristics of individual tasks constituting a task set (a set of one or more tasks to be arranged).
- the task set parameter includes information representing a dependency relationship between tasks.
- the task set parameter may include information representing the task start cycle, execution time, required memory size, and the like.
- the task set parameter holding unit 11 copies the task set parameter. There is no need to hold it.
- the task set parameter holding unit 11 may hold information indicating the file or the like.
- the task set parameter holding unit 11 may further hold information indicating the order of each task.
- the rank weight assigning unit 12 refers to the task set parameters held in the task set parameter holding unit 11 and assigns rank weights to each dependency based on the rank of each task.
- the rank of each task means a position where each task can be executed in the flow of execution of the entire task set based on the dependency relationship.
- the rank weight is a coefficient representing the weight based on the rank. Specifically, it can be said that the rank weight is a coefficient representing the degree of ease of execution waiting time based on the dependency. The ease of occurrence of such an execution waiting time changes based on the order of related tasks related to the dependency. Therefore, the rank weight is information based on the rank.
- the order weight assigning unit 12 includes an order code generation unit 121 and a weighting unit 122, as shown in FIG.
- the order code generation unit 121 generates an order code indicating the order of each task in the target task set.
- the order code generation unit 121 may calculate the order code of each task based on the task set parameter held in the task set parameter holding unit 11.
- the rank code generation unit 121 omits the process of calculating the rank code, and the task set parameter holding unit 11 What is necessary is just to acquire the order code of a task.
- the task set parameter holding unit 11 may hold an order code or may hold information on each task in an order corresponding to the order code.
- the weighting unit 122 assigns a sequence weight to each dependency relationship between tasks based on the sequence code generated (or acquired) using the sequence code generation unit 121. For example, the weighting unit 122 may increase the rank weight as the rank of each task having a dependency relationship is closer to the end in the flow of execution of the entire task set. Further, for example, the weighting unit 122 may increase the order weight as the order of two tasks having a dependency relationship is closer.
- heavy ordering weight means that the dependency waiting time based on the dependency relationship is more likely to occur. The value of the ordering weight may be larger as it is heavier or smaller as it is heavier.
- the placement unit 13 When the placement unit 13 places a task belonging to a task set on one or more cores according to the dependency relationship, the placement unit 13 calculates the order weights given to the dependency relationship between two tasks placed on different cores. The task is arranged based on the evaluated value.
- the dependency relationship between two tasks arranged in different cores is also simply referred to as inter-core dependency.
- the arrangement unit 13 includes an evaluation value calculation unit 131 and an optimum arrangement search unit 132, as shown in FIG.
- the evaluation value calculation unit 131 calculates an evaluation value that represents the goodness of the arrangement of a task arrangement candidate described later.
- the evaluation value calculation unit 131 calculates an evaluation value by using the rank weight assigned to the inter-core dependency.
- the optimum arrangement search unit 132 arranges tasks in one or more cores according to the dependency relationship, and generates task arrangement candidates. Then, the optimum arrangement search unit 132 searches for candidate task arrangements with good evaluation values calculated using the evaluation value calculation unit 131.
- a full search can be cited.
- the optimal arrangement search unit 132 When using the full search, the optimal arrangement search unit 132 generates all task arrangement candidates, and outputs an arrangement with the best evaluation value among them as a search result.
- the optimum arrangement search unit 132 apply a generally known high-speed search method such as a branch and bound method, a greedy method, or a genetic algorithm as a search method more efficient than the full search.
- the task set parameter holding unit 11 holds task set parameters input from the outside (step S101).
- the optimal arrangement search unit 132 generates task arrangement candidates (candidate data indicating which tasks are arranged in which cores) (S102).
- the order code generation unit 121 refers to the task set parameters held in the task set parameter holding unit 11 and obtains the order codes for each task. As described above, the order code generation unit 121 may calculate the order code of each task, or may obtain the order code already assigned to each task. Then, the weighting unit 122 generates an ordering weight based on the ordering code of each task (step S103).
- the weighting unit 122 may give rank weights to all the dependency relationships existing in the task set. However, the weighting unit 122 may give an ordering weight for the dependency necessary for the evaluation value calculation unit 131. Based on this operation, the task placement device 1 can improve the efficiency of the grant process. For example, when the evaluation value calculation unit 131 calculates the evaluation value using the ordering weight assigned to the inter-core dependency, the weighting unit 122 determines the order for the inter-core dependency in the task placement candidate generated in step S102. What is necessary is just to give a weight. Note that when ordering weights are assigned to all the dependency relationships, the above-described steps S102 and S103 are in no particular order.
- the task placement device 1 can also execute step S103 and step S102 in this order, and simultaneously execute step S102 and step S103.
- the evaluation value calculation unit 131 calculates an evaluation value indicating the goodness of task arrangement using the rank weights given to the inter-core dependence in step S103 for the task arrangement candidates generated in step S102 (step S103). S104).
- the optimum arrangement search unit 132 determines whether or not the generated task arrangement candidate and its evaluation value satisfy a task arrangement search termination condition (step S105). If the task placement search termination condition is not satisfied, the task placement device 1 repeats the processing from step S102 again.
- the optimum placement search unit 132 outputs the task placement candidate having the best evaluation value among the task placement candidates generated so far as the optimization result (step S106). . Then, the task placement device 1 ends the operation.
- the task placement search termination condition differs according to the optimization algorithm employed by the optimum placement search unit 132. For example, when a simple full search is used as the optimization algorithm, the task layout search end condition is the generation end of all task layout candidates that can be generated. In this case, the optimum arrangement search unit 132 outputs a task arrangement candidate having an optimum evaluation value among all the task arrangement candidates as an optimization result.
- the task placement search termination condition may be a determination that the evaluation value does not become better in the optimization algorithm.
- the task placement search termination condition may be a determination that the evaluation value does not improve even if the task placement candidate generation is repeated a predetermined number of times.
- FIG. 6 is a graph representation of the dependency relationships existing in the task set composed of tasks 1 to 6.
- a graph is also referred to as a task graph.
- arrows connecting the tasks represent dependency relationships between the tasks at both ends.
- the arrow indicating the dependency relationship indicates that it is necessary to end the task on the start point side in order to start the task on the end point side. It can be said that such a task graph represents the flow of execution based on the dependency of the entire task set.
- FIGS. 7A to 7C An example of the data structure of the task set parameters of the task set represented by such a task graph is shown in FIGS. 7A to 7C. For example, as shown in FIG.
- the task set parameter holding unit 11 may hold the dependency destination task in association with each task constituting the task set. For example, in FIG. 7A, for task 1, tasks 2, 4 and 5 are held as the dependency destination tasks. Further, the task set parameter holding unit 11 may hold other parameters for each task. Other parameters may be, for example, the task start cycle, execution time, and required memory size, as described above. Alternatively, as illustrated in FIG. 7B, the task set parameter holding unit 11 may hold a dependency source task in association with each task constituting the task set. For example, in FIG. 7B, tasks 3, 4, and 5 are held as the dependency source task for task 6. Also in this case, the task set parameter holding unit 11 may further hold other parameters as described above for each task. Alternatively, as illustrated in FIG.
- the task set parameter holding unit 11 may hold information representing a combination of a dependency source task and a dependency destination task for each dependency relationship.
- the dependency number is information for identifying the dependency relationship.
- dependency number 1 represents a dependency relationship from task 1 (dependency source task) to task 2 (dependency destination task).
- the task set parameter holding unit 11 sets other parameters for each task as a table different from the table holding the dependency relationship. You can hold it.
- the order code generation unit 121 assigns an order code having a smaller numerical value to a task whose order is higher in the task graph (closer to the start task), that is, a task that is more likely to be executed in an earlier order / time zone. Also good. In other words, the order code generation unit 121 may assign an order code having a larger numerical value to a task whose order is backward (far from the start task), that is, a task that is likely to be executed in a later order / time zone. . Note that the order code assigned to each task may be different from the actual execution order. This is because the task execution order when the task set is actually executed is not uniquely determined.
- FIG. 8 shows an example of a sequence code assigned to each task using the topological sort. In FIG. 8, the numerical value surrounded by a circle indicates an ordinal code assigned to each task.
- the topological sort means that each node (task in the present invention) is ordered in an acyclic directed graph so that any node (task in the present invention) comes before the node ahead of its output edge (dependency based on the present invention). It is a technique to arrange them. This method outputs a sequence of nodes as a result. As a result, the rank code calculated using the topological sort is a unique value for each task.
- Known techniques such as an algorithm based on the described Kahn and an algorithm using a depth-first search can be applied.
- the order code generation unit 121 assigns task order codes based on the number of each task in the flow that continues from the start task through dependency. Further, when this method is used, the order code generation unit 121 assigns an order code based on a flow having the largest number of tasks for a task that passes through a plurality of flows from the start task.
- FIG. 9 shows an example of a sequence code assigned to each task using the breadth-first search. In the task graph of FIG. 6, task 1 is a start task. Therefore, as shown in FIG. 9, the order code generation unit 121 assigns an order code 0 to the task 1.
- task 2 task 4, and task 5 are the first task in the flow that continues from the start task through dependency. Therefore, the order code generation unit 121 assigns order code 1 to these tasks.
- Task 3 is the second task that follows task 2 in the flow that continues from the start task through dependency. Therefore, the order code generation unit 121 assigns the order code 2 to the task 3.
- the task 6 is the third task from the start task in the flow following the task 3, and is the second task from the start task in the flow following the tasks 4 and 5. At this time, when an order code is assigned based on the flow having the largest number of tasks, the order code generation unit 121 assigns an order code 3 to the task 6.
- the order code generation unit 121 may assign 1 to the order code of the start task, or may assign other values.
- the third order code calculation method a method using execution time information will be described. When this method is used, the task set parameter holding unit 11 holds the execution time of each task. In this example, the order code generation unit 121 assigns an order code to each task in consideration of the execution time of each task based on the breadth-first search method.
- the order code generation unit 121 assigns a task order code based on the total execution time of each task in a flow that continues from the start task through dependency. Further, when this method is used, the order code generation unit 121 assigns an order code based on the longest total execution time for a task that passes through a plurality of flows from the start task.
- the order code calculated in this way is an order code that reflects the difference in the effect of a task with a long execution time and a task with a short execution time.
- FIG. 10 shows an example of a sequence code assigned to each task using the execution time information. As shown in FIG. 10, the order code generation unit 121 assigns 2 as the execution time to the task 1 as the start task as the order code.
- the order code generation unit 121 assigns to the task 2 6 as an order code, which is obtained by adding the execution time 4 of the task 2 to the order code (execution time) 2 of the task 1. Similarly, the order code generation unit 121 assigns an order code 5 to the task 4 and assigns an order code 7 to the task 5. Further, the order code generation unit 121 executes the task 6 with respect to the task 6 in the order code 8 of the task 3 having the largest order code (that is, the longest total execution time) among the tasks that depend on the task 6. 11 with time 3 added is assigned as an ordinal code. In step S103, the order code generation unit 121 may use the order code of each task input from the outside, instead of calculating the order code of each task used to assign the order weight as described above.
- step S101 information corresponding to the order code of each task is input from the outside, and the task set parameter holding unit 11 holds it.
- the ordinal code generation unit 121 may acquire the ordinal code of each task with reference to the task set parameter holding unit 11.
- the task set parameter holding unit 11 may hold information related to each task in an order corresponding to topological sorting.
- the order code generation unit 121 may acquire the order in which the information about each task held in the task set parameter holding unit 11 is held as an order code.
- maintenance part 11 may hold
- the weighting unit 122 assigns rank weights to each dependency relationship in step S103.
- the higher the order weight the larger the order weight value.
- the arrangement unit 13 searches for an arrangement that is as far away as possible (an arrangement on the same core as much as possible) as the dependency relationship has a larger numerical value of the ordering weight.
- assigning rank weights a method will be described in which the rank order weights are made heavier as the dependency relationship between tasks in the task graph is closer to the rear (distant from the start task). As described above, the closer to the rear in the task graph, the greater the influence on the execution performance of the entire task set when arranged between different cores.
- the weighting unit 122 may increase the numerical value of the rank weight as the rank becomes backward (away from the start task).
- the weighting unit 122 sets the dependency relationship with 1 / n tasks (where n represents a positive integer and “/” represents division) as the dependency source in order from the smallest sequence code.
- an order weight 1 may be assigned.
- the weighting unit 122 may assign the ordering weight 2 to the dependency having the whole task of 1 / n to 2 / n as a dependency source, and may be repeated in the same manner.
- the weighting unit 122 may assign an ordering weight based on the ordering code assigned to the dependency source task (the task executed first) of each dependency relationship. For example, the weighting unit 122 may assign the numerical value of the ordinal code assigned to the dependency source task of each dependency relationship to the dependency relationship as it is as the order weight.
- the rank weights assigned in this way are shown in FIG. In FIG. 11, a numerical value surrounded by a circle represents an ordering code, and a numerical value surrounded by a double circle represents an ordering weight. In FIG.
- an order weight 0 is assigned to each dependency relationship from task 1 to tasks 2, 4, and 5 with order code 0.
- an order weight 1 is assigned to each dependency relationship from task 2 to task 3 with order code 1 and tasks 4 and 5 with order code 1 from task 4.
- the order weight 2 is given to the dependency relation of the order code 2 from the task 3 to the task 6.
- the weighting unit 122 may assign the ordering weight based on the ordering code assigned to the dependency source task (task to be executed first) of each dependency relationship.
- FIG. 12 shows the sequence weights assigned in this way.
- a numerical value surrounded by a circle represents an ordering code
- a numerical value surrounded by a double circle represents an ordering weight.
- an order weight 2 is assigned to each dependency relationship from task 1 to task 2, 4, and 5 with order code 2.
- the dependency weights from task 2 to task 3 with order code 6, task 4 to task 6 with order code 5, and task 5 to task 6 with order code 7 are assigned as order weights 6, 5 and 7 respectively. Is granted.
- an order weight 8 is given to the dependency relationship of the order code 8 from task 3 to task 6.
- the weighting unit 122 increases the ordering weight as the dependency relationship between the tasks whose order is closer to the rear in the task graph.
- the weighting unit 122 may use a value obtained by subtracting the absolute value of the difference between the order codes of two tasks having a dependency relationship from the maximum value of the order code in the entire task set as the dependency order weight. .
- the weighting unit 122 subtracts the absolute value of the difference between the order codes of two tasks having the corresponding dependency from the maximum value of the difference between the order codes of the two tasks having the dependency. It is good also as an ordering weight of a dependency.
- the weighting unit 122 gives an ordering weight to each dependency relationship.
- a numerical value surrounded by a circle represents an order code
- a numerical value surrounded by a dotted triangle represents an absolute value of a difference between the order codes
- a numerical value surrounded by a double circle represents an order weight.
- the absolute value of the difference between the order codes at both ends of the dependency relationship between tasks 4 to 6 and tasks 5 to 6 is 2.
- the absolute value of the difference between the order codes at both ends of the other dependency relationships is 1.
- the maximum value of the ordinal code is 3.
- the order weight of each dependency relationship between tasks 4 to 6 and tasks 5 to 6 is 1 obtained by subtracting the absolute value 2 of the difference between the order codes at both ends from the maximum value 3.
- the ordering weight of other dependency relationships is 2 obtained by subtracting the absolute value 1 of the difference between the ordering codes at both ends from the maximum value 3.
- the weighting unit 122 increases the ordering weight as the dependency relationship between the tasks having a similar order on the task graph.
- a method combining the above two methods is also possible.
- the weighting unit 122 uses the maximum value of the order code of the second example with respect to the order weight value generated by the method of increasing the order weight by 1 / n of the whole of the first example.
- the order weight may be a value obtained by multiplying the order weights obtained by subtracting the absolute value of the difference between the order codes at both ends of each dependency.
- the weighting unit 122 can generate an ordering weight that is heavier as a dependency relationship between tasks whose order is closer to the rear on the task graph and heavier as a dependency relationship between tasks whose order is closer on the task graph.
- the weighting unit 122 assigns an order weight that reflects the degree of ease of occurrence of the dependency waiting time in accordance with the order of two tasks having the dependency relation for each dependency relation. May be generated. Further, the weighting unit 122 may generate the rank weight by combining these various methods.
- the task set targeted by the task placement apparatus 1 may have as a parameter a weight based on these other factors relating to the dependency between tasks in advance.
- the weighting unit 122 sets, for each dependency relationship, a value (for example, a multiplication value) that is a combination of the weight value based on other factors given in advance and the order weight value calculated as described above. You may give with respect to each dependence.
- the evaluation value calculation unit 131 calculates an evaluation value indicating the goodness of task arrangement using the rank weight assigned to the inter-core dependency.
- the evaluation value calculation unit 131 may calculate, as an evaluation value, a value obtained by adding or multiplying all rank weights assigned to inter-core dependence.
- the evaluation function F w Is represented by the following equation (1).
- the inter-core dependence in the target task placement candidate is n.
- FIG. 14 shows a task placement candidate.
- tasks 2, 3 and 6 are arranged on the core 0, and tasks 1, 4 and 5 are arranged on the core 1.
- the inter-core dependence in this task placement candidate is the dependence from task 1 to 2, the dependence from task 4 to 6, and the dependence from task 5 to 6.
- the number of inter-core dependencies in this task placement candidate is three.
- the ordering weights assigned to these inter-core dependencies are 0 for the dependency from task 1 to 2, 1 for the dependency from task 4 to 6, and 1 from the dependency from task 5 to 6, respectively. Is granted.
- the evaluation value calculation unit 131 calculates 2 as the evaluation value based on the formula (1) for this task placement candidate.
- FIG. 14 illustrates an example of calculating the evaluation value when the number of cores is 2.
- the evaluation value calculation unit 131 can similarly calculate the evaluation value even when the number of cores is 3 or more. It is.
- the evaluation value calculation unit 131 may calculate an evaluation value based on other evaluation functions other than the expression (1). For example, the evaluation value calculation unit 131 may calculate, as the evaluation value, a value obtained by subtracting all the order weights given to inter-core dependence from a predetermined value.
- the evaluation value calculated in this way represents that the influence of inter-core dependence on the execution performance of the entire task set is relatively small as the value is large, that is, the task arrangement is good.
- the evaluation value calculation unit 131 calculates an evaluation value using the start cycle, execution time, required memory size, etc. of each task in addition to the ordinal weight given to inter-core dependency. Also good.
- information such as the activation period, execution time, or required memory size is held in the task set parameter holding unit 11. For example, a system is assumed in which it is appropriate that the total execution time of tasks assigned to each core is equal in each core.
- the evaluation value calculation unit 131 additionally calculates an evaluation value based on the difference in the total execution time of the tasks assigned to each core in addition to the evaluation value based on the rank weight assigned to the inter-core dependency. An evaluation value obtained by integrating these may be calculated.
- the core utilization rate of each task can be calculated as “task execution time ⁇ task activation cycle”.
- the evaluation value calculation unit 131 additionally calculates an evaluation value based on the difference in the core utilization rate of each core in addition to the evaluation value based on the order weight given to the inter-core dependency, and integrates these. An evaluation value may be calculated.
- the evaluation value calculation unit 131 in addition to the evaluation value based on the rank weight assigned to the inter-core dependency, the evaluation value calculation unit 131 additionally calculates an evaluation value based on the difference in the required memory size of each core, and integrates them. An evaluation value may be calculated. As described above, when the task set parameter holding unit 11 holds other task set parameters in addition to the dependency relationship between tasks, the evaluation value calculation unit 131 adds these other task set parameters incidentally. The evaluation value can be calculated by using this. In this case, the placement unit 13 can perform task placement in consideration of factors other than these inter-core dependencies. As described above, various methods can be applied to the evaluation value calculation method using the rank weight assigned to the inter-core dependency.
- the optimal placement search unit 132 generates task placement candidates, and using the evaluation values calculated for the generated task placement candidates, the generated task placement candidates and their evaluation values are used as search end conditions. It is determined whether or not it is satisfied. If the task placement is better as the evaluation value is smaller, the optimum placement search unit 132 searches for task placement candidates that minimize the evaluation value.
- the task placement search termination condition differs based on the optimization algorithm employed by the optimum placement search unit 132. For example, when a simple full search is adopted as an optimization algorithm, the generation of all task placement candidates that can be generated as the search end condition ends.
- the optimum arrangement search unit 132 outputs the task arrangement candidate for which the minimum evaluation value is calculated among all the task arrangement candidates as the optimization result. Further, for example, when another general optimization algorithm is adopted, the search end condition is determined that the evaluation value based on the algorithm is not further reduced, and generation of task placement candidates is repeated a predetermined number of times. It may be determined that the evaluation value does not become small.
- the task set parameter holding unit 11, the order weight assigning unit 12, the evaluation value calculating unit 131, and the optimum arrangement searching unit 132 can employ various data structures and various methods. In the present embodiment, the data structures and methods employed for each of these functional blocks can be employed in various combinations. Further, this embodiment can also employ a combination of a plurality of methods in each functional block.
- the task placement apparatus can perform task placement with higher performance by further reducing the influence of non-uniform inter-core dependence based on the rank.
- the reason is that the ordering weight assigning unit assigns ordering weights to each dependency existing between tasks based on the order in which each task can be executed in the execution flow of the entire task set. It is.
- the placement unit places the task in one or more cores according to the dependency relationship, the evaluation value calculated based on the rank weight assigned to the dependency relationship between the tasks placed between different cores is This is because tasks are arranged so as to improve.
- the task placement device as the present embodiment is for a task set in which an inter-core dependency waiting time occurs even if the number of inter-core dependencies based on the device described in Patent Document 1 is minimized. It is possible to generate a task arrangement that further reduces the dependency waiting time.
- the task placement apparatus according to the first exemplary embodiment of the present invention can output a task placement that can fully exhibit the multi-core performance. That is, the task placement apparatus according to the present embodiment can realize task placement reflecting the magnitude of the influence on the execution performance depending on the order of the cores in the multi-core system.
- the task placement device as the first exemplary embodiment of the present invention can perform task placement with higher performance by further reducing the dependency waiting time at a position near the end of execution of the task set.
- the reason is that the order weight assigning unit increases the order weights as the dependency relationship between the tasks whose order in the task graph is closer to the rear.
- the placement unit calculates an evaluation value indicating that the placement is worse as the inter-core dependency between the tasks whose ranks are closer to the rear is larger. Then, the placement unit searches for a task placement that improves the evaluation value. Therefore, in the task placement searched in this way, a task having a dependency relationship near the end of execution of the entire task set is less likely to be placed on a different core.
- the task placement device as the first exemplary embodiment of the present invention can cope with the critical dependency problem that appears behind the rank on the task graph.
- the task placement device as the first exemplary embodiment of the present invention can reduce task dependency waiting time between tasks having similar execution orders in a task set, and perform task placement with higher performance.
- the reason for this is that the ordering weight assigning unit increases the ordering weight as the dependency between tasks having a small difference in the ordering code in the task graph.
- the placement unit calculates an evaluation value indicating that the placement is worse as the inter-core dependency between tasks having similar ranks increases. Then, the placement unit searches for a task placement that improves the evaluation value.
- the task placement device 2 further includes an order code holding unit 24 and an order weight holding unit 25 in addition to the same configuration as the task placement device 1 as the first embodiment of the present invention.
- the task placement device 2 may be configured using a computer device including the configuration shown in FIG. 1, similarly to the task placement device 1 as the first exemplary embodiment of the present invention.
- the order code holding unit 24 and the order weight holding unit 25 are configured using the storage device 1004. Note that the hardware configuration constituting each of these functional blocks is not limited to the above-described configuration.
- the rank code holding unit 24 holds the rank code calculated by the rank weight assigning unit 12.
- FIGS. 16A and 16B An example of information held by the ordinal code holding unit 24 is shown in FIGS. 16A and 16B.
- the ordinal code holding unit 24 may hold an ordinal code for each task as shown in FIG. 16A.
- the order code holding unit 24 may hold information for identifying a task to which the order code is assigned for each order code value.
- FIG. 16B shows that the order code 1 is assigned to tasks 2, 4 and 5.
- the ordinal code holding unit 24 may be included in the task set parameter holding unit 11.
- the order code storage unit 24 includes the task set parameter storage unit 11.
- the order code may be held using an expression obtained by rearranging the information on each task held in the order in the order of the order. Based on this operation, the rank code holding unit 24 can hold the calculated rank code without using an area of the storage device for holding the rank code.
- the order weight holding unit 25 uses the order weight generation unit 12 to hold the order weight assigned to each dependency relationship.
- the order code generation unit 121 can apply the technique described in detail in the first embodiment of the present invention as a technique for calculating the order code.
- the rank code holding unit 24 holds the calculated rank code (step S202).
- the weighting unit 122 assigns an ordering weight to each dependency relationship based on the ordering code held in the ordering code holding unit 24 (step S203).
- the weighting unit 122 can apply the method described in detail in the first embodiment of the present invention as a weighting method.
- the rank weight holding unit 25 holds the rank weight generated using the weighting unit 122 (step S204).
- the optimum arrangement search unit 132 generates task arrangement candidates (step S102).
- the evaluation value calculation unit 131 calculates an evaluation value, which is an evaluation value indicating the goodness of task placement, for the generated task placement candidate using the rank weight held in the rank weight holding unit 25 (step S104).
- the evaluation value calculation unit 131 can apply the method described in detail in the first embodiment of the present invention as the evaluation value calculation method.
- the optimum placement search unit 132 determines whether the task placement candidate and the evaluation value satisfy a task placement search termination condition (step S105). For example, as the search end condition, the condition described in detail in the first embodiment of the present invention is applicable. If the task placement search termination condition is not satisfied, the task placement device 2 repeats the processing from step S102 again.
- the optimum placement search unit 132 outputs a task placement optimization result (step S106). Then, the task placement device 2 ends the operation.
- the weighting unit 122 may assign rank weights to inter-core dependence in task placement candidates.
- the task placement device 2 may execute steps S203 to S204 after generating task placement candidates in step S102.
- movement of the 2nd Embodiment of this invention is complete
- the task placement apparatus as the second exemplary embodiment of the present invention when placing a task for a multi-core system, performs a process of calculating an ordering weight reflecting the ease of occurrence of dependency waiting time depending on the core. Increase efficiency.
- the rank code holding unit holds the rank code of each task used for calculating the rank weight.
- the order weight assigning unit refers to the order code of the task a plurality of times in order to calculate the order weight.
- the task placement device as the second exemplary embodiment of the present invention can further reduce the processing time of the rank weight assigning unit based on the hold of the rank code holding unit of the rank code once calculated. Because.
- the task placement apparatus as the second exemplary embodiment of the present invention can further improve the efficiency of the process of searching for a better performance task placement by reducing the influence of non-uniform inter-core dependence based on the order. .
- the reason is that the rank weight holding unit holds the rank weight generated by using the rank weight generation unit.
- the rank weights are invariable once calculated and often need not be recalculated. Therefore, the order weight need not be recalculated every time the evaluation value is calculated for different task placement candidates. Therefore, the task placement device according to the second exemplary embodiment of the present invention can shorten the task placement search time based on holding the rank weights of the rank weight holding unit.
- the order code is mainly described as having a smaller value as it is closer to the start task on the task graph.
- the order code in the present invention is, for example, on the task graph. The closer to the start task, the larger the value may be.
- the order weight is mainly described as having a value that is large enough to generate the dependency waiting time.
- the order weight in the present invention generates, for example, the dependency waiting time. You may have a small value that is easy to do.
- the evaluation value is mainly described as having a smaller value as the task arrangement is better.
- the evaluation value in the present invention has a larger value as the task arrangement is better. Also good.
- the placement unit may search for a task placement candidate that increases the evaluation value.
- the operation of the task placement device described with reference to each flowchart is stored in a storage device (storage medium) of a computer as a program of the present invention.
- the CPU may read and execute.
- the present invention is configured using the code or storage medium of the program.
- each embodiment mentioned above can be implemented in combination as appropriate. The present invention is not limited to the above-described embodiments, and can be implemented in various modes.
- An order weight assigning means for assigning an order weight that is a coefficient representing; When a task belonging to the task set is arranged in one or more cores according to the dependency relationship, an evaluation value is calculated using the order weights given to the dependency relationship between two tasks arranged in different cores And placement means for placing tasks based on the calculated evaluation value; Including a task placement device.
- the rank weight assigning means includes The closer the order of each task having the dependency is to the end in the flow of execution of the entire task set, the heavier the order weight given to the dependency
- the task placement device according to Supplementary Note 1, wherein: (Appendix 3) The rank weight assigning means includes The closer the order of the two tasks having the dependency relationship is, the heavier the order weight given to the dependency relationship is.
- the rank weight assigning means includes Based on the task set parameter held in the task set parameter holding means, an order code representing the order to be used for giving the order weight is calculated.
- the task placement device according to any one of supplementary notes 1 to 3, characterized in that: (Appendix 5) Further comprising an order code holding means for holding an order code calculated using the order weight assigning means;
- the rank weight assigning means includes Using the reference of the order code held in the order code holding means, the order weight is given to each dependency.
- the task placement device according to appendix 4, wherein (Appendix 6) And further comprising an order weight holding means for holding the order weight given using the order weight giving means,
- the arrangement means includes The evaluation value is calculated using the order weight held in the order weight giving means.
- the task placement device according to any one of Supplementary Note 1 to Supplementary Note 5, wherein (Appendix 7) For a task set that is a set of tasks to be arranged, a task set parameter including information indicating dependency between the tasks is retained, Using the reference to the task set parameter, a weight based on the order is assigned to each dependency between the tasks based on an order that is a position where each task can be executed in the execution flow of the entire task set.
- the task placement method according to appendix 7 characterized in that: (Appendix 9) When assigning the order weights to each dependency relationship, the closer the order of the two tasks having the dependency relationship is, the heavier the order weight given to the dependency relationship is. 9.
- the task placement method according to appendix 7 or appendix 8, characterized by the above. (Appendix 10) A task set parameter holding process for holding a task set parameter including information representing a dependency relationship between the tasks for a task set which is a set of tasks to be arranged; Using the reference to the task set parameter, a weight based on the order is assigned to each dependency between the tasks based on an order that is a position where each task can be executed in the execution flow of the entire task set.
- An order weighting process for assigning an order weight that is a coefficient to be represented When a task belonging to the task set is arranged in one or more cores according to the dependency relationship, an evaluation value is calculated using the order weights given to the dependency relationship between two tasks arranged in different cores And placement processing for task placement based on the calculated evaluation value;
- a program that causes a computer to execute. (Appendix 11) In the order weight assigning process, the order weights assigned to the dependency relations are made heavier as the order of the tasks having the dependency relations approaches the end in the execution flow of the entire task set.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
L'invention concerne un dispositif d'attribution de tâches qui permet d'améliorer l'attribution de tâches en réduisant davantage l'influence des dépendances entre les cœurs qui ne sont pas uniformes d'après la priorité. Le dispositif d'attribution de tâches comprend : une section d'enregistrement de paramètres d'ensemble de tâches (11) qui enregistre des paramètres d'ensemble de tâches comprenant des informations exprimant des relations de dépendance intertâches pour un ensemble de tâches qui est un ensemble de tâches à attribuer ; une section d'attribution de pondération de priorité (12) qui utilise les paramètres des tâches et la priorité, c'est-à-dire l'ordre d'exécution pour chaque tâche dans le flux d'exécution de l'ensemble de tâches complet, comme base pour affecter à chaque relation de dépendance intertâches une pondération de priorité qui est un coefficient exprimant une pondération basée sur la priorité ; et une section d'attribution (13) qui, lors de l'attribution de tâches appartenant à l'ensemble de tâches à plusieurs cœurs conformément aux relations de dépendance, utilise la pondération de priorité affectée à la relation de dépendance entre deux tâches différentes attribuées à différents cœurs pour calculer une valeur d'évaluation, et attribue les tâches d'après la valeur d'évaluation calculée.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013539721A JP5983623B2 (ja) | 2011-10-21 | 2012-10-16 | タスク配置装置及びタスク配置方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011231283 | 2011-10-21 | ||
JP2011-231283 | 2011-10-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013058396A1 true WO2013058396A1 (fr) | 2013-04-25 |
Family
ID=48141039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/077175 WO2013058396A1 (fr) | 2011-10-21 | 2012-10-16 | Dispositif et procédé d'attribution de tâches |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5983623B2 (fr) |
WO (1) | WO2013058396A1 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491931A (zh) * | 2017-07-12 | 2017-12-19 | 浙江大学 | 一种基于众创设计的设计任务数据分解方法 |
CN113534750A (zh) * | 2020-04-15 | 2021-10-22 | 北京旷视机器人技术有限公司 | 密集存储下的作业调度方法、装置、系统、设备及介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102452205B1 (ko) * | 2017-11-20 | 2022-10-06 | 삼성전자주식회사 | 멀티 코어 제어 시스템 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007264734A (ja) * | 2006-03-27 | 2007-10-11 | Fujitsu Ltd | チューニング支援装置、チューニング支援プログラム、チューニング支援プログラムを記録したコンピュータ読み取り可能な記録媒体およびチューニング支援方法 |
WO2010055719A1 (fr) * | 2008-11-14 | 2010-05-20 | 日本電気株式会社 | Appareil de décision de programmation, appareil d'exécution parallèle, procédé de décision de programmation et programme |
-
2012
- 2012-10-16 JP JP2013539721A patent/JP5983623B2/ja active Active
- 2012-10-16 WO PCT/JP2012/077175 patent/WO2013058396A1/fr active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007264734A (ja) * | 2006-03-27 | 2007-10-11 | Fujitsu Ltd | チューニング支援装置、チューニング支援プログラム、チューニング支援プログラムを記録したコンピュータ読み取り可能な記録媒体およびチューニング支援方法 |
WO2010055719A1 (fr) * | 2008-11-14 | 2010-05-20 | 日本電気株式会社 | Appareil de décision de programmation, appareil d'exécution parallèle, procédé de décision de programmation et programme |
Non-Patent Citations (2)
Title |
---|
NORIAKI SUZUKI ET AL.: "Designing Evaluation Functions of Multi Core Task Mapping for Hard Real-Time Systems", IEICE TECHNICAL REPORT, vol. 110, no. 473, 11 March 2011 (2011-03-11), pages 93 - 98 * |
NORIAKI SUZUKI ET AL.: "Multi Core Task Mapping Method by Weight Control for Dependencies between Descendent Tasks", IEICE TECHNICAL REPORT, vol. 111, no. 461, 24 February 2012 (2012-02-24), pages 97 - 102 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491931A (zh) * | 2017-07-12 | 2017-12-19 | 浙江大学 | 一种基于众创设计的设计任务数据分解方法 |
CN113534750A (zh) * | 2020-04-15 | 2021-10-22 | 北京旷视机器人技术有限公司 | 密集存储下的作业调度方法、装置、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2013058396A1 (ja) | 2015-04-02 |
JP5983623B2 (ja) | 2016-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5971334B2 (ja) | タスク配置装置、タスク配置方法、および、コンピュータ・プログラム | |
Chowdhury et al. | Implementation and performance analysis of various VM placement strategies in CloudSim | |
Viswanathan et al. | {CLARINET}:{WAN-Aware} Optimization for Analytics Queries | |
Tang et al. | A self-adaptive scheduling algorithm for reduce start time | |
KR101666395B1 (ko) | 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법 | |
Bicer et al. | Time and cost sensitive data-intensive computing on hybrid clouds | |
JP5929196B2 (ja) | 分散処理管理サーバ、分散システム、分散処理管理プログラム及び分散処理管理方法 | |
Bittencourt et al. | A performance‐oriented adaptive scheduler for dependent tasks on grids | |
JP5786863B2 (ja) | タスク配置最適化システム、タスク配置最適化方法、及びタスク配置最適化プログラム | |
Bleuse et al. | Scheduling independent tasks on multi‐cores with GPU accelerators | |
Choudhury et al. | Online scheduling of dynamic task graphs with communication and contention for multiprocessors | |
Wu et al. | Optimizing the performance of big data workflows in multi-cloud environments under budget constraint | |
EP3908920B1 (fr) | Optimisation d'instructions fifo matérielles | |
KR20200091789A (ko) | Gpu 연산의 동시 실행을 위한 플랫폼 | |
CN103297499A (zh) | 一种基于云平台的调度方法及系统 | |
US9471387B2 (en) | Scheduling in job execution | |
Li et al. | An effective scheduling strategy based on hypergraph partition in geographically distributed datacenters | |
Gandomi et al. | HybSMRP: a hybrid scheduling algorithm in Hadoop MapReduce framework | |
CN104199739A (zh) | 一种基于负载均衡的推测式Hadoop调度方法 | |
Lawrance et al. | Efficient Qos based resource scheduling using PAPRIKA method for cloud computing | |
JP5983623B2 (ja) | タスク配置装置及びタスク配置方法 | |
Khan et al. | An optimized hybrid algorithm in term of energy and performance for mapping real time workloads on 2d based on-chip networks | |
CN105740249B (zh) | 一种大数据作业并行调度过程中的处理方法及其系统 | |
Saule et al. | Optimizing the stretch of independent tasks on a cluster: From sequential tasks to moldable tasks | |
Lin et al. | Joint deadline-constrained and influence-aware design for allocating MapReduce jobs in cloud computing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12841791 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2013539721 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 12841791 Country of ref document: EP Kind code of ref document: A1 |