WO2014027444A1 - Dispositif d'ordonnancement et procédé d'ordonnancement - Google Patents

Dispositif d'ordonnancement et procédé d'ordonnancement Download PDF

Info

Publication number
WO2014027444A1
WO2014027444A1 PCT/JP2013/004623 JP2013004623W WO2014027444A1 WO 2014027444 A1 WO2014027444 A1 WO 2014027444A1 JP 2013004623 W JP2013004623 W JP 2013004623W WO 2014027444 A1 WO2014027444 A1 WO 2014027444A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
priority
execution order
execution
tasks
Prior art date
Application number
PCT/JP2013/004623
Other languages
English (en)
Japanese (ja)
Inventor
紀章 鈴木
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2014530463A priority Critical patent/JP6156379B2/ja
Publication of WO2014027444A1 publication Critical patent/WO2014027444A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Definitions

  • the present invention relates to an apparatus and method for scheduling a plurality of cores, and more particularly to scheduling of core processes.
  • Multi-core LSI Large Scale Integration
  • a system or apparatus equipped with a multi-core is roughly classified into a contrast type multiprocessing (SMP) system and an asymmetric multiprocessing (AMP) system.
  • SMP contrast type multiprocessing
  • AMP asymmetric multiprocessing
  • the SMP method switches the core that executes the task according to the availability of the core and the priority of the task being executed. Based on this switching, the SMP method can execute each task on any core. That is, the SMP method can dynamically distribute the core load. Since dynamic load distribution is possible, the SMP method can improve the performance of the entire system. However, dynamic load balancing makes it difficult to predict real-time performance. Therefore, the SMP method is not suitable for application to a real-time system.
  • the AMP method is a function distributed type in which each task is executed on a specific core. Therefore, the AMP method is suitable for a real-time system in which it is important to be able to predict system behavior, a system in which a core to which specific hardware is connected is limited, and the like.
  • An example of a technique for utilizing an AMP multi-core system is a method using an automatic parallelizing compiler.
  • a static task scheduling method has been studied as an automatic parallelizing compiler.
  • a static task scheduling technique for example, there is a technique using the following processing.
  • this method divides a program into tasks.
  • a task graph in which the tasks and the dependency relationships between the tasks are expressed in a graph is created.
  • tasks are statically arranged with respect to the multicore using the created task graph.
  • the task execution order on each core is statically scheduled.
  • the list scheduling method can obtain good performance, particularly in a system that does not dynamically change the task scheduling on each core.
  • Patent Document 1 and Non-Patent Document 1 are based on the premise that the execution order of tasks on each core can be determined.
  • the RTOS dynamically determines the scheduling on each of the multi-core cores when the task is executed. Therefore, in such a system, when a plurality of tasks having the same priority can be executed simultaneously, the task to be actually executed is determined based on the scheduling state of the RTOS. That is, the task execution order is indeterminate.
  • Patent Document 1 The method of the automatic parallelizing compiler described in Patent Document 1 and Non-Patent Document 1 has a problem that the effect based on multicore cannot be obtained because the execution order is uncertain in a model that executes tasks on RTOS. It was.
  • a method using prioritization for each task is used.
  • the method of using prioritization uses n priorities, that is, the priority of the number of tasks to be executed, and prioritizes the tasks in descending order of priority. Add.
  • n priorities that is, the priority of the number of tasks to be executed
  • An object of the present invention is to provide a scheduling apparatus and a scheduling method for solving the above-described problems and reducing the number of necessary priorities while keeping the execution order based on static task scheduling. .
  • the task scheduling apparatus of the present invention is a statically determined task scheduling including a core layout indicating which of a plurality of cores a task is to be allocated and an execution order of the tasks on the core.
  • Static task scheduling generation means for generating task scheduling results, and the execution order of the static task scheduling results are examined in the order in which the tasks are executed.
  • the best execution order which is the order in which execution can be started earliest when it is assumed to be executed prior to the task, is compared with the execution order of the static task scheduling results, the execution order is different.
  • Static task schedule of the priority assignment task after the execution start time when executed in the best execution order A priority lower than all the tasks that are executed in advance by the execution start time in the execution order of the ring result is given to the priority assignment target task, and if the execution order does not change, the execution is executed in the best execution order.
  • the priority given to the task to be given priority is equal to or higher than the lowest priority of all the tasks prior to the task to be given priority after the execution start time, or the static task scheduling result
  • the worst execution order which is the order that can be started, is compared with the execution order of the static task scheduling result.
  • the worst execution order The priority is given higher priority than all tasks executed after the execution end time in the execution order of the static task scheduling result of the priority assignment target task before the execution end time when executed in Giving to the target task, if the execution order does not change, priority equal to or lower than the highest priority of all tasks following the priority assignment task before the execution end time when executed in the worst execution order
  • Priority generation means for assigning a degree to the priority assignment target task.
  • the task scheduling method of the present invention includes, in a multi-core apparatus including a plurality of cores, a core arrangement indicating which of a plurality of cores a task is to be allocated to, and an execution order of the tasks on the core
  • a task to which a priority is to be given is a task that gives a priority by generating a static task scheduling result in which task scheduling is statically determined, looking at the execution order of the static task scheduling result in the order in which the tasks are executed Is compared to the execution order of the static task scheduling result, and the execution order is the order in which the execution of the static task scheduling result can be started earliest. If they are different, the static task schedule of the prioritized task after the execution start time when executed in the best execution order.
  • the execution is executed in the best execution order.
  • the priority given to the task to be given priority is equal to or higher than the lowest priority of all the tasks prior to the task to be given priority after the execution start time, or the static task scheduling result.
  • the worst execution order which is the order that can be started, is compared with the execution order of the static task scheduling results.
  • the priority is higher than all the tasks that are executed after the execution end time in the execution order of the static task schedule result of the priority assignment target task before the execution end time when executed in order When assigned to a task to be granted and the execution order does not change, it is equal to or lower than the highest priority of all tasks following the priority assignment task before the execution end time when executed in the worst execution order A priority is assigned to the priority assignment target task.
  • the program of the present invention is a multi-core device including a plurality of cores, a task scheduling including a core arrangement indicating which of a plurality of cores a task is to be allocated, and an execution order of the tasks on the core
  • a process for generating a static task scheduling result that is statically determined, and a task to be given a priority which is a task for giving a priority by looking at the execution order of the static task scheduling result in the order in which the tasks are executed Is compared to the execution order of the static task scheduling result, and the execution order is the order in which the execution of the static task scheduling result can be started earliest. If they are different, the static task schedule of the priority assignment task after the execution start time when executed in the best execution order.
  • the priority assignment task is given a lower priority than all tasks executed prior to the execution start time in the execution order of the execution results, and if the execution order does not change, it is executed in the best execution order. Processing for giving a priority equal to or higher than the lowest priority of all tasks preceding the priority assignment task after the execution start time in the case of the execution of the priority assignment target task, or the static task scheduling Look at the execution order of the results from the order in which the tasks are executed, and execute the latest when assuming that other tasks are executed in preference to the priority assignment task that is the task to which priority is given Is compared with the execution order of the static task scheduling result, and when the execution order is different, the worst execution order
  • the priority is given higher priority than all tasks executed after the execution end time in the execution order of the static task schedule result of the priority assignment target task before the execution end time when executed in Giving to the target task, if the execution order does not change, priority equal to or lower than the highest priority of all tasks following the priority assignment task before the execution end time when executed in the worst execution order And
  • FIG. 1 is a block diagram showing an example of the configuration of the multi-core system according to the first embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating an example of the configuration of the task scheduling apparatus according to the first embodiment.
  • FIG. 3 is a flowchart illustrating an example of the operation of the task scheduling apparatus according to the first embodiment.
  • FIG. 4 is a block diagram illustrating an example of the configuration of the task scheduling apparatus according to the first embodiment.
  • FIG. 5 is a block diagram illustrating an example of a configuration of a priority generation unit according to the second embodiment.
  • FIG. 6 is a flowchart illustrating an example of the operation of the priority generation unit according to the second embodiment.
  • FIG. 7 is a diagram illustrating an example of a static task scheduling result used for explanation.
  • FIG. 1 is a block diagram showing an example of the configuration of the multi-core system according to the first embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating an example of the configuration of the task scheduling apparatus according to
  • FIG. 8 is a diagram for explaining the operation according to the second embodiment.
  • FIG. 9 is a diagram for explaining an operation according to the second embodiment.
  • FIG. 10 is a diagram for explaining an operation according to the second embodiment.
  • FIG. 11 is a diagram for explaining an operation according to the second embodiment.
  • FIG. 12 is a diagram for explaining an operation according to the second embodiment.
  • FIG. 13 is a diagram for explaining an operation according to the second embodiment.
  • FIG. 14 is a flowchart illustrating an example of the operation of the priority generation unit according to the third embodiment.
  • FIG. 15 is a diagram for explaining the operation according to the third embodiment.
  • FIG. 16 is a diagram for explaining an operation according to the third embodiment.
  • FIG. 17 is a diagram for explaining an operation according to the third embodiment.
  • FIG. 15 is a diagram for explaining the operation according to the third embodiment.
  • FIG. 18 is a diagram for explaining an operation according to the third embodiment.
  • FIG. 19 is a diagram for explaining an operation according to the third embodiment.
  • FIG. 20 is a diagram for explaining an operation according to the third embodiment.
  • FIG. 21 is a flowchart illustrating an example of the operation of the priority generation unit according to the fourth embodiment.
  • FIG. 22 is a diagram illustrating an example of a static task scheduling result used for explanation.
  • FIG. 23 is a diagram illustrating a result of the second embodiment referred to in the description.
  • FIG. 24 is a diagram for explaining the operation according to the fourth embodiment.
  • FIG. 25 is a diagram for explaining an operation according to the fourth embodiment.
  • FIG. 26 is a diagram for explaining an operation according to the fourth embodiment.
  • FIG. 27 is a diagram for explaining the operation according to the fourth embodiment.
  • FIG. 28 is a diagram for explaining an operation according to the fourth embodiment.
  • FIG. 29 is a diagram for explaining an operation according to the fourth embodiment.
  • FIG. 30 is a diagram for explaining an operation according to the fourth embodiment.
  • FIG. 31 is a block diagram illustrating an example of a configuration of a task scheduling apparatus according to the fifth embodiment.
  • FIG. 32 is a flowchart illustrating an example of the operation of the task scheduling apparatus according to the fifth embodiment.
  • FIG. 33 is a diagram for explaining the operation according to the fifth embodiment.
  • FIG. 34 is a diagram for explaining an operation according to the fifth embodiment.
  • FIG. 35 is a diagram for explaining an operation according to the fifth embodiment.
  • FIG. 36 is a diagram for explaining the operation according to the fifth embodiment.
  • FIG. 37 is a diagram for explaining the operation according to the fifth embodiment.
  • FIG. 38 is a diagram for explaining the operation according to the fifth embodiment.
  • the processing unit executed by the core is not particularly limited.
  • the processing unit may be a task or a thread.
  • the processing unit may be an application program in which tasks or threads are collected.
  • these processing units will be collectively described as “tasks”. Therefore, in the following description of the embodiment, the scheduling device of the present invention will be described as a task scheduling device.
  • FIG. 1 is a block diagram showing an example of the configuration of a multi-core system 1 according to the first embodiment of the present invention.
  • the multi-core system 1 includes a task scheduling device 10, a core unit 20, and a task memory 30.
  • the core unit 20 includes a plurality of cores. Based on the scheduling generated by the task scheduling device 10, the core is assigned a task and executes the assigned task.
  • Task scheduling device 10 schedules a task and causes a predetermined core to execute the task, as will be described in detail later.
  • Task memory 30 stores tasks executed by the core.
  • the multi-core system 1 may be an embedded LSI in which all configurations are incorporated.
  • the multi-core system 1 may be an LSI system in which a plurality of LSIs including one or more functions are connected by signal lines.
  • the multi-core system 1 may be a system in which a plurality of devices including one or more functions are connected by a bus or a communication line.
  • the task scheduling apparatus 10 shown in FIG. 1 is included in the multi-core system 1.
  • the task scheduling apparatus 10 of this embodiment is not limited to this.
  • the task scheduling apparatus 10 may not be included in the multicore system 1. That is, the multi-core system 1 may be configured not to include the task scheduling device 10.
  • the task scheduling apparatus 10 of the present embodiment creates task scheduling in advance. Then, the task scheduling apparatus 10 stores the created task scheduling in a storage device (not shown).
  • the multi-core system 1 may extract and use the created task scheduling from a storage device (not shown) when executing the task.
  • FIG. 2 is a block diagram showing an example of the configuration of the task scheduling apparatus 10.
  • the task scheduling apparatus 10 includes a static task scheduling generation unit 11 and a priority generation unit 12.
  • FIG. 2 shows functions related to the present invention, and other functions such as a multi-core selection function related to a task are omitted.
  • the static task scheduling generation unit 11 statically determines (generates) the core arrangement indicating which core the task is to be allocated to and the execution order of the task on each core. That is, the static task scheduling generation unit 11 generates a static task scheduling.
  • the priority generation unit 12 gives a priority to (assigns / generates) a task so that each task is executed according to the execution order on each core determined by the static task scheduling generation unit 11.
  • the priority generation unit 12 of this embodiment does not give different priorities to all tasks, but gives priorities to tasks so as to reduce the number of priorities to be used. This prioritization will be described later.
  • FIG. 3 is a flowchart showing an example of the operation of the task scheduling apparatus 10.
  • the static task scheduling generation unit 11 of the task scheduling apparatus 10 generates (determines) static task scheduling (step S100).
  • the static task scheduling generation unit 11 statically determines (generates) the following items as static task scheduling.
  • the result of static task scheduling may be referred to as “static task scheduling result”.
  • (2) Task execution order on each core Note that the static task scheduling generation unit 11 of this embodiment uses static task scheduling.
  • the static task scheduling generation unit 11 may use the technology described in Patent Document 1 or Non-Patent Document 1 already described.
  • the priority generation unit 12 of the task scheduling apparatus 10 assigns priorities to the tasks so that the tasks are executed in the execution order determined by the static task scheduling generation unit 11 (above (2)) ( Priority is generated) (step S101). However, the priority generation unit 12 of the present embodiment assigns priorities so as to reduce the number of priorities set for tasks.
  • the priority generation unit 12 assigns the highest priority (highest priority) to the task to be executed first (hereinafter referred to as “first task”). Then, the priority generation unit 12 lowers the priority given to the task as it goes to (follows) the task behind the static task scheduling result. Using such priority assignment, the priority generation unit 12 maintains the task execution order.
  • the priority generation unit 12 does not lower the priority to be assigned to the subsequent task in a portion where the execution order does not change regardless of the priority to be given. More specifically, the priority generation unit 12 determines the priority to be given to the subsequent task as the priority of the previous task for a portion where the execution order does not change regardless of the priority to be given. Equal or higher.
  • the priority generation unit 12 assigns the highest possible priority (most preferably, the highest priority equivalent to the priority of the head task). This is based on the following reason.
  • the priority generation unit 12 can assign the priority set for the task following the task from the priority following the high priority. Therefore, the priority generation unit 12 can reduce the number of priorities necessary for assigning tasks.
  • the operation of the priority generation unit 12 will be described in detail.
  • the priority generation unit 12 obtains the “best execution order” that is the order in which execution can be started earliest when it is assumed that the task to be given priority is executed with priority over other tasks.
  • the priority generation unit 12 compares the best execution order of each task from the top task with the execution order of the static task scheduling result. If the execution order is different as a result of the comparison, the task is a task whose execution order may change. On the other hand, if the execution order is the same as a result of the comparison, the task is a task that cannot change the execution order.
  • the priority generation unit 12 operates as follows. First, the priority generation unit 12 executes after the execution start time when the task is executed in the best execution order and before the execution start time in the execution order of the static task scheduling result of the task. All priorities of tasks (hereinafter referred to as “previous execution tasks”) are examined. Then, the priority generation unit 12 gives a priority lower than the priorities of all the preceding execution tasks to the task. In summary, the priority generation unit 12 gives the task a priority lower than the priorities of all preceding execution tasks of the task.
  • the priority generation unit 12 makes the priority of the preceding task relatively higher than the priority of the subsequent task. Based on this priority assignment, the priority generation unit 12 maintains the task execution order.
  • the priority generation unit 12 has a priority (already equal to or lower than the lowest priority of all tasks preceding the task). The highest priority is preferred) as given. That is, the priority generation unit 12 makes the priority of the preceding task relatively equal or lower than the priority of the subsequent task. Based on this priority assignment, the priority generation unit 12 reduces the number of necessary priorities.
  • the priority generation unit 12 gives the lowest priority (lowest priority) to the task that is executed last (hereinafter referred to as “final task”). And the priority generation part 12 raises the priority provided to a task according to going to the task before the static task scheduling result (returning). Using such priority assignment, the priority generation unit 12 maintains the task execution order.
  • the priority generation unit 12 does not increase the priority to be assigned to the previous task in a portion where the execution order does not change regardless of the priority to be given. More specifically, the priority generation unit 12 equals the priority given to the previous task to the priority of the subsequent task in a portion where the execution order does not change regardless of the priority given. Or lower.
  • the priority generation unit 12 assigns the lowest possible priority (most preferably, the lowest priority equivalent to the priority of the final task). This is based on the following reason.
  • the priority generation unit 12 can assign the priority set for the task preceding the task from the priority following the low priority. Therefore, the priority generation unit 12 can reduce the number of priorities necessary for giving to tasks.
  • the operation of the priority generation unit 12 will be described in detail.
  • the priority generation unit 12 obtains the “worst execution order” that is the order in which execution can be started at the latest when it is assumed that other tasks are executed with priority over the task to be given priority.
  • the priority generation unit 12 compares the worst execution order of each task with the execution order of the static task scheduling result from the last task. If the order is different as a result of the comparison, the task is a task whose execution order may change. On the other hand, when the order is the same as a result of the comparison, the task is a task that cannot change the execution order.
  • the priority generation unit 12 operates as follows. First, the priority generation unit 12 executes a task that is executed before the execution end time when the task is executed in the worst execution order and subsequent to the execution end time in the execution order of the static task scheduling result of the task. All the priorities (hereinafter referred to as “subsequent execution tasks”) are checked. Then, the priority generation unit 12 gives a priority higher than the priority of all subsequent execution tasks to the task. In summary, the priority generation unit 12 gives a priority higher than the priority of all subsequent execution tasks of the task.
  • the priority generation unit 12 makes the priority of the preceding task relatively higher than the priority of the subsequent task. Based on this priority assignment, the priority generation unit 12 maintains the execution order of tasks.
  • the priority generation unit 12 has a priority equal to or lower than the priority of all the tasks subsequent to the task (described above). Is given to the task). That is, the priority generation unit 12 makes the priority of the preceding task relatively equal or lower than the priority of the subsequent task. Based on this priority assignment, the priority generation unit 12 reduces the number of necessary priorities.
  • the priority generation unit 12 preferably calculates the worst execution order after excluding tasks that are further subordinate to the subsequent task from the examination target.
  • the priority generation unit 12 may use, for example, a numerical value of the task execution order as the best execution order or the worst execution order.
  • the execution order used by the priority generation unit 12 of the present embodiment is not limited to the task execution order.
  • the execution order used by the priority generation unit 12 is not limited in the expression form as long as the order generation task 12 can determine the task order relationship such as the task execution start time or the execution end time. For example, when a task is activated while another high priority is given during execution of a certain task, the execution transitions to the activated task. In such a case, the priority generation unit 121 cannot simply represent the order as a sequence of tasks. In such a case, the priority generation unit 12 may use an expression using time as the execution order.
  • the configuration of the task scheduling apparatus 10 of the present embodiment is not limited to the configuration shown in FIG. Each configuration may be further divided into a plurality of configurations. Alternatively, the task scheduling apparatus 10 may include the configuration illustrated in FIG. 2 in one configuration.
  • the hardware configuration of the task scheduling apparatus 10 of the present embodiment is not particularly limited.
  • the task scheduling apparatus 10 may be realized as a computer including a CPU (Central Processing Unit), a ROM (Read Only Memory), and a RAM (Random Access Memory).
  • CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • FIG. 4 is a diagram illustrating an example of a hardware configuration of the task scheduling apparatus 60 that operates in the same manner as the task scheduling apparatus 10 of the present embodiment.
  • the task scheduling device 60 includes a CPU 610, a ROM 620, a RAM 630, a storage device 640, an IO (Input / Output) 650, an input device 660, and a display device 670, and constitutes a computer.
  • the CPU 610 reads a program from the ROM 620 or the storage device 640.
  • the CPU 610 realizes each function as the static task scheduling generation unit 11 and the priority generation unit 12 of the task scheduling apparatus 10 illustrated in FIG. 2 based on the read program.
  • the CPU 610 uses the RAM 630 and the storage device 640 as temporary storage when realizing each function.
  • the CPU 610 receives input data from the input device 660 via the IO 650 and displays the data on the display device 670.
  • the CPU 610 may read a program included in the storage medium 700 storing a computer-readable program using a storage medium reading device (not shown). Alternatively, the CPU 610 may receive a program from an external device via a network (not shown).
  • ROM 620 stores programs executed by CPU 610 and fixed data.
  • the ROM 620 is, for example, a P-ROM (Programmable-ROM) or a flash ROM.
  • the RAM 630 temporarily stores programs executed by the CPU 610 and data.
  • the RAM 630 is, for example, a D-RAM (Dynamic-RAM).
  • the storage device 640 stores data and programs stored in the task scheduling device 60 for a long time. In addition, the storage device 640 may operate as a temporary storage device for the CPU 610.
  • the storage device 640 is, for example, a hard disk device, a magneto-optical disk device, an SSD (Solid State Drive), or a disk array device.
  • the IO 650 mediates data between the CPU 610, the input device 660, and the display device 670.
  • the IO 650 is, for example, an IO interface card.
  • the input device 660 is an input unit that receives an input instruction from an operator of the task scheduling device 60.
  • the input device 660 is, for example, a keyboard, a mouse, or a touch panel.
  • the display device 670 is a display unit of the task scheduling device 60.
  • the display device 670 is a liquid crystal display, for example.
  • the 4 may include the functions of the core unit 20 and the task memory 30 illustrated in FIG. 1 in addition to the functions as the task scheduling apparatus 10, and may operate as the multi-core system 1.
  • the CPU 610 includes the core unit 20 shown in FIG. 1, that is, a plurality of cores.
  • the task scheduling device 60 may use the built-in memory as the task memory 30.
  • the task scheduling device 60 may use the RAM 630 or the storage device 640 as the task memory 30.
  • the task scheduling apparatus 10 of the present embodiment configured as described above can obtain an effect of reducing the number of priorities necessary for maintaining the execution order while maintaining the execution order based on the static task scheduling result. it can.
  • the task scheduling apparatus 10 of this embodiment determines a static task scheduling result. Then, the task scheduling apparatus 10 classifies each task into a place (task) where the execution order can be changed based on the priority of the task and a place (task) where the execution order cannot be changed regardless of the priority.
  • the task scheduling apparatus 10 gives the priority so that the priority of the preceding task is relatively higher than the priority of the subsequent task. Therefore, the task scheduling apparatus 10 can maintain the task execution order.
  • the task scheduling apparatus 10 makes the priority of the preceding task relatively equal to or lower than the priority of the subsequent task.
  • the task scheduling apparatus 10 assigns a priority equal to or higher than the lowest priority of all preceding tasks.
  • the task scheduling apparatus 10 assigns a priority equal to or lower than the highest priority of all subsequent tasks. Therefore, the task scheduling apparatus 10 can reduce the number of necessary priorities.
  • the method used by the task scheduling apparatus 10 of the present embodiment is a method of defining the priority from the top task in the execution order based on the static task scheduling result, and includes the following operations: .
  • the task scheduling apparatus 10 classifies a place where the execution order can change based on the priority of each task and a place where the execution order does not change based on the priority.
  • the task scheduling device 10 defines the priority of the subsequent task lower than the priority of the preceding task at a place where the execution order can be changed. Based on this operation, the task scheduling apparatus 10 maintains the task execution order.
  • the task scheduling apparatus 10 does not lower the priority of the subsequent task with respect to the priority of the preceding task at a place where the execution order does not change. Based on this operation, the task scheduling apparatus 10 suppresses the number of necessary priorities.
  • the priority generation unit 12 of the task scheduling apparatus 10 of the present embodiment includes the configuration shown in FIG.
  • the configuration of the task scheduling apparatus 10 of this embodiment is the same as that of the first embodiment except for the configuration of the priority generation unit 12 shown in FIG.
  • FIG. 5 is a block diagram showing an example of the configuration of the priority generation unit 12 of the present embodiment.
  • the priority generation unit 12 includes a priority control unit 121, a priority assignment target task holding unit 122, and a priority holding unit 123.
  • the priority control unit 121 controls the process of setting (giving) task priority.
  • the priority assignment target task holding unit 122 holds information indicating which task the priority assignment target task is.
  • the priority holding unit 123 holds the priority value set for the task.
  • the priority holding unit 123 includes at least an area for holding a priority value of the number of tasks for which priority is set.
  • the task scheduling apparatus 10 of the present embodiment may be realized by a computer including a CPU 610, a ROM 620, and a RAM 630, similarly to the task scheduling apparatus 60 shown in FIG.
  • FIG. 6 is a flowchart showing an example of the operation of the priority generation unit 12 of the present embodiment.
  • the priority generation unit 12 performs the process shown in FIG. 6 for each core to be scheduled. Note that the highest priority used for task scheduling may be set in the task scheduling apparatus 10 in advance.
  • the priority control unit 121 sets the highest priority used for task scheduling (step S201).
  • the priority control unit 121 may use any value as the highest priority. Further, as described above, the priority control unit 121 may have the highest priority set in advance. Alternatively, the priority control unit 121 may remove the priority required for processing more important than the task set by task scheduling, and set the highest priority among the remaining available priorities as the highest priority. .
  • the priority control unit 121 selects tasks in order from the top in the static task scheduling result.
  • the selected task is referred to as a “priority assignment target task”.
  • the priority control unit 121 sets the priority assignment target task in the priority assignment target task holding unit 122 (step S202).
  • the priority control unit 121 checks the possibility of change in the execution order of the priority assignment target tasks (step S203).
  • the priority control unit 121 obtains the best execution order that is the order in which execution can be started earliest when it is assumed that the priority assignment target task is executed with priority over other tasks. Then, the priority control unit 121 compares the best execution order with the execution order of the static task scheduling result.
  • the priority control unit 121 determines that the execution order may change. On the other hand, when the execution order is equal, the priority control unit 121 determines that the execution order cannot change.
  • the priority control unit 121 assigns a priority lower than the priorities of all the prior execution tasks of the priority assignment target task to the priority assignment target task. (Step S204).
  • the priority control unit 121 sets a value with a large numerical value of priority, Set in the task to be given priority. This lowers the priority of the priority assignment target task.
  • the priority control unit 121 desirably has a value that lowers (lowers) the priority by one as the low priority. This is because when the setting is made in this way, the priority that is not used does not occur and the number of the priorities to be used is reduced.
  • the priority control unit 121 stores the assigned priority in the priority assignment target task area of the priority holding unit 123.
  • the priority control unit 121 maintains the task execution order.
  • Step S203 when the execution order cannot be changed (No in Step S203), the priority control unit 121 does not lower the priority given to the priority assignment target task (Step S205).
  • the priority control unit 121 precedes the task to be given priority. Give the task priority the same or lower value.
  • the priority control unit 121 sets the highest priority value as the priority. However, the priority control unit 121 may give a priority higher than the current priority other than the highest priority, if necessary, and may make the priorities equal.
  • the priority control unit 121 stores the assigned priority in the priority assignment target area of the priority holding unit 123.
  • the priority control unit 121 reduces the number of necessary priorities.
  • the priority control unit 121 determines whether or not the prioritization has been completed for all the tasks of the scheduling target core (step S206).
  • step S206 the priority control unit 121 ends the priority assignment processing.
  • step S206 the priority control unit 121 returns to step S202 and sets the next task (next task) of the static task scheduling result as a priority assignment target task. The above processing is repeated.
  • FIG. 7 is a diagram showing an example of a static task scheduling result used for explanation.
  • FIG. 7 shows two cores, core 0 and core 1. It is assumed that the priority control unit 121 gives priority to the task of the core 0. On the core 0, as shown in FIG. 7, six tasks from task A to task F are arranged. The display of the task of core 1 is omitted. In addition, the dependency relationship between the tasks is indicated by a dashed arrow. This dependency relationship is a relationship that allows the task at the end of the arrow to be executed after the task at the base of the arrow is completed.
  • Task A is the top task.
  • the task B is a task that can be executed after completion of the task of the core 1 (not shown).
  • Task C is an executable task after task A is completed.
  • Task D is an executable task after task A is completed.
  • Task E is an executable task after task D is completed.
  • Task F is the final task and is an executable task after task D is completed.
  • the priority of a task with a small numerical value is high. That is, when a plurality of tasks can be executed at the same time, a task having a low priority value is executed. If the priority of a task with a small numerical value is low, the numerical value may be switched. The highest priority is “3”. (In other words, the minimum priority value is “3”.) Next, the operation of the priority control unit 121 will be described with reference to the drawings using the static task scheduling result shown in FIG.
  • FIG. 8 to 13 are diagrams for explaining the priorities set by the priority control unit 121.
  • FIG. The numerical value in the figure is the priority set for the task.
  • the priority control unit 121 defines (assigns) the priority of the task A that is the first task of the static task scheduling result. (This means that the priority control unit 121 sets task A as a priority assignment target task.) Task A is the first task. Therefore, the priority control unit 121 defines “3” which is the highest priority for the task A (FIG. 8).
  • the priority control unit 121 sets a task B to be executed next to the task A as a priority assignment target task. Then, the priority control unit 121 determines the task B execution order change possibility. More specifically, the priority control unit 121 determines whether or not there is a possibility that the task B is executed before the scheduled time.
  • the task B is not executed before the scheduled execution position based on the dependency relationship with the core 1. That is, the best execution order of task B is the same as the execution order of the static task scheduling results shown in the figure. Therefore, the priority control unit 121 determines that there is no possibility that the execution order of the task B is changed.
  • the priority control unit 121 does not perform the process of lowering the priority of the task B from the preceding task A, and sets the priority of the task B to “3” (FIG. 9).
  • the priority control unit 121 sets task C to be executed next to task B as a priority assignment target task. Then, the priority control unit 121 determines the possibility of changing the execution order of the task C.
  • Task C has a dependency relationship with task A, but has no dependency relationship with task B. Therefore, based on the priority, task C may be replaced with task B and executed before. That is, the best execution order of task C is immediately after task A. This order is different from the execution order of the static task scheduling results. Therefore, the priority control unit 121 determines that the execution order of the task C may be changed.
  • the priority control unit 121 gives a lower priority to the task C than all the preceding execution tasks of the task C.
  • the task B preceding execution task is task B. Therefore, the priority control unit 121 sets the priority of task C to “4”, which is lower than the priority “3” of task B (FIG. 10).
  • the priority control unit 121 sets the task D executed next to the task C as a priority assignment target task. Then, the priority control unit 121 determines the possibility of changing the execution order of the task D.
  • Task D has a dependency relationship with task A, but has no dependency relationship with task B and task C. Therefore, based on the priority, task D may be replaced with task B and task C and executed before. That is, the best execution order of task D is immediately after task A. This order is different from the execution order of the static task scheduling results. Therefore, the priority control unit 121 determines that the execution order of the task D may change.
  • the priority control unit 121 gives a lower priority to the task D than all the preceding execution tasks of the task D.
  • the pre-execution tasks for task D are task B and task C. Therefore, the priority control unit 121 sets the priority of the task D to “5”, which is lower than the priority “4” of the task C (FIG. 11).
  • the priority control unit 121 sets a task E to be executed next to the task D as a priority assignment target task. Then, the priority control unit 121 determines the possibility of changing the execution order of the task E.
  • Task E has a dependency relationship with Task A and Task D. Therefore, the best execution order of task E is immediately after task D. Task E is immediately after the same task D in the static task scheduling result. As a result, the priority control unit 121 determines that there is no possibility that the execution order of the task E changes.
  • the priority control unit 121 gives the highest priority “3” that can be set without lowering the priority of the task E from the priority of the preceding task D (FIG. 12).
  • the priority control unit 121 sets a task F executed next to the task E as a priority assignment target task. Then, the priority control unit 121 determines the possibility of task F execution order fluctuation.
  • Task F has a dependency relationship with task D, but has no dependency relationship with task E. Therefore, based on the priority, task F may be replaced with task E and executed before. That is, the best execution order of task F is immediately after task D. This order is different from the execution order of the static task scheduling results. Therefore, the priority control unit 121 determines that the execution order of the task F may be changed.
  • the priority control unit 121 gives a lower priority to the task F than all the preceding execution tasks of the task F.
  • the task F preceding execution task is task E. Therefore, the priority control unit 121 sets the priority of the task F to “4”, which is lower than the priority “3” of the task E (FIG. 13).
  • the task scheduling apparatus 10 of the second embodiment configured as described above can obtain an effect of generating many tasks with high priority in addition to the effect of the first embodiment.
  • the task scheduling apparatus 10 of the second embodiment defines (assigns) priorities from the first task executed at the beginning of the static task scheduling result that sets a high priority. .
  • the task scheduling apparatus 10 of this embodiment is particularly effective when it is desired to secure the priority value in the low priority area as much as possible.
  • the method used by the task scheduling apparatus 10 of the present embodiment is a method of defining priority from the final task in the execution order based on the static task scheduling result, and includes the following operations.
  • the task scheduling apparatus 10 classifies a place where the execution order can change based on the priority of each task and a place where the execution order does not change based on the priority.
  • the task scheduling apparatus 10 defines the priority of the preceding task higher than the priority of the subsequent task at a place where the execution order can be changed. Based on this operation, the task scheduling apparatus 10 maintains the execution order.
  • the task scheduling apparatus 10 does not increase the priority of the preceding task in a place where the execution order does not change. Based on this operation, the task scheduling apparatus 10 suppresses the number of necessary priorities.
  • the configuration of the task scheduling apparatus 10 of the present embodiment is the same as that of the second embodiment, and thus the description of the configuration is omitted.
  • the task scheduling apparatus 10 of the present embodiment may be realized by a computer including a CPU 610, a ROM 620, and a RAM 630, similarly to the task scheduling apparatus 60 shown in FIG.
  • FIG. 14 is a flowchart showing an example of the operation of the priority generation unit 12 of the present embodiment.
  • the priority generation unit 12 performs the process shown in FIG. 14 for each core to be scheduled. Note that the minimum priority used in task scheduling may be set in the task scheduling apparatus 10 in advance.
  • the priority control unit 121 sets the lowest priority used for task scheduling (step S301).
  • the priority control unit 121 may use any value as the lowest priority. Further, as described above, the priority control unit 121 may have a minimum priority set in advance. Alternatively, the priority control unit 121 may remove the priority required for processing more important than the task set by task scheduling, and set the lowest priority among the remaining available priorities as the lowest priority. .
  • the priority control unit 121 selects tasks in order from the back of the execution order of the static task scheduling results.
  • the selected task is a “priority assignment target task”.
  • the priority control unit 121 sets a priority assignment target task in the priority assignment target task holding unit 122 (step S302).
  • the priority control unit 121 examines the possibility of change in the execution order of the priority assignment target tasks (step S303).
  • the priority control unit 121 first excludes tasks that are further subordinate to the subsequent task from the examination target. Then, the priority control unit 121 obtains the worst execution order, which is the order in which execution can be started latest, assuming that other tasks are executed with priority over the priority assignment target task. Then, the priority control unit 121 compares the worst execution order with the execution order of the static task scheduling result.
  • the priority control unit 121 determines that the execution order may change. On the other hand, when the execution order is equal, the priority control unit 121 determines that the execution order cannot change.
  • the priority control unit 121 assigns a priority higher than all the subsequent execution tasks of the priority assignment target task to the priority assignment target task (step S303). S304). For example, if the priority value given to a task with high priority is small and the priority value given to a task with low priority is large, the priority control unit 121 sets a value with a low priority value to Set in the task to be given priority. This raises the priority of the priority assignment target task. Note that the priority control unit 121 desirably sets the priority to a value that increases (increases) by one as the high priority. This is because when the setting is made in this way, the priority that is not used does not occur and the number of the priorities to be used is reduced. The priority control unit 121 stores the assigned priority in the priority assignment target task area of the priority holding unit 123. Based on this operation, the priority control unit 121 maintains the task execution order.
  • the priority control unit 121 does not increase the priority to be given to the priority assignment target task (step S305). For example, if the priority value given to a task with high priority is small and the priority value given to a task with low priority is large, the priority control unit 121 precedes the task to be given priority. Give the task priority the same or higher value. Note that the priority control unit 121 desirably sets the value of the lowest priority as the priority. However, the priority control unit 121 may assign a priority lower than the current priority other than the lowest priority as necessary, and may make the priorities equal. The priority control unit 121 stores the assigned priority in the priority assignment target area of the priority holding unit 123. Based on this operation, the priority control unit 121 reduces the number of necessary priorities.
  • the priority control unit 121 determines whether or not the prioritization has been completed for all the tasks of the scheduling target core (step S306).
  • step S306 the priority control unit 121 ends the priority assignment process.
  • step S306 the priority control unit 121 returns to step S302 and sets the next task (previous task) of the static task scheduling result as a priority assignment target task. The above processing is repeated.
  • the priority of a task with a small numerical value is high. That is, when a plurality of tasks can be executed at the same time, a task having a small numerical value is executed. If the priority of a task with a small numerical value is low, the numerical value may be switched. The lowest priority is “5”. (In other words, the maximum priority value is “5”.) 15 to 20 are diagrams for explaining the priority set by the priority control unit 121. The numerical value in the figure is the priority set for the task.
  • the priority control unit 121 defines (assigns) the priority of the task F that is the final task of the static task scheduling result. (This means that the priority control unit 121 sets the task F as a priority assignment target task.) The task F is a final task. Therefore, the priority control unit 121 defines “5” which is the lowest priority (maximum value as a numerical value) for the task F (FIG. 15).
  • the priority control unit 121 sets a task E to be executed before the task F as a priority assignment target task. Then, the priority control unit 121 determines whether the execution order of the task E may be changed. More specifically, the priority control unit 121 determines whether or not there is a possibility that the task E is executed after the scheduled time.
  • task E and task F depend on task D. Therefore, task F may be replaced with task E based on the priority and executed at the previous execution position. That is, the worst execution order of task E is after task F. This is different from the execution order of the static task scheduling result. Therefore, the priority control unit 121 determines that there is a possibility that the execution order of the task E may change. Note that task F is a subsequent execution task of task E.
  • the priority control unit 121 raises the priority of the task E over the subsequent task F (subsequent execution task). In this case, the priority of task F is “5”. Therefore, the priority control unit 121 sets the priority of the task E to “4” (FIG. 16).
  • the priority control unit 121 sets the task D executed before the task E as a priority assignment target task. Then, the priority control unit 121 determines the possibility of changing the execution order of the task D.
  • Task D has a dependency relationship with subsequent tasks E and F. Therefore, the task E and the task F are not executed before the task D regardless of the priority. That is, the worst execution order of task D is the same as the execution order of the static task scheduling result. Therefore, the priority control unit 121 determines that there is no possibility of the task D execution order fluctuation.
  • the priority control unit 121 does not perform the process of increasing the priority of the task D, and gives the lowest priority (the lowest priority “5”) to the task D (FIG. 17). .
  • the priority control unit 121 sets task C executed before task D as a priority assignment task. Then, the priority control unit 121 determines the possibility of changing the execution order of the task C.
  • the priority control unit 121 excludes the task E and the task F subordinate to the task D from the examination targets.
  • the reasons for exclusion are as follows. This is because if the priority control unit 121 sets the priority so that the task C is executed before the task D, the task E and the task F are not executed before the task C.
  • the dependency relationship between task C and task D is the same as that of task A. Therefore, the task D may be executed before the task C based on the priority. That is, the worst execution order of task C is after task D (immediately before task E). The worst execution order is different from the execution order of the static task scheduling result. For this reason, the priority control unit 121 determines that there is a possibility that the execution order of the task C may change.
  • the priority control unit 121 performs a process of raising the priority of task C over the subsequent execution task. More specifically, the priority control unit 121 raises the priority of all subsequent execution tasks of task C. In this case, the target subsequent execution task is task D. Therefore, the priority control unit 121 sets the priority of the task C to a priority “4” higher than the priority “5” of the task D (FIG. 18).
  • the priority control unit 121 sets task B executed before task C as a priority assignment task. Then, the priority control unit 121 determines the possibility of task B execution order fluctuation.
  • the priority control unit 121 excludes the task E and the task F from the order variation consideration targets.
  • Both task C and task D have dependencies from task A and no other dependencies. That is, task C and task D have no dependency with task B. Therefore, task C and task D may be replaced with task B based on the priority and executed before. That is, the worst execution order of task B is after task D (immediately before task E deleted from the examination target). The worst execution order is different from the execution order of the static task scheduling result. Therefore, the priority control unit 121 determines that there is a possibility of task B execution order fluctuation.
  • the priority control unit 121 raises the priority of task B higher than the priorities of all subsequent execution tasks of task B.
  • the target subsequent execution tasks are task C and task D. Therefore, the priority control unit 121 sets the priority of the task B to a priority “3” higher than the priority “4” of the task C (FIG. 19).
  • the priority control unit 121 sets task A executed before task B as a priority assignment task. Then, the priority control unit 121 determines the possibility of changing the execution order of the task A. First, the priority control unit 121 excludes task E and task F from the examination targets. Further, since task C and task D have a dependency relationship with task A, task C and task D are not executed before task A. Furthermore, the task B is not executed before the task A based on the dependency relationship with the core 1. That is, no task is executed before task A. That is, the worst execution order of task A is the same as the execution order of the static task scheduling result.
  • the priority control unit 121 determines that there is no possibility of task A execution fluctuation. As a result, the priority control unit 121 gives the lowest priority “5” to the task A (FIG. 20).
  • the task scheduling apparatus 10 of the third embodiment configured as described above can obtain the effect of generating many tasks with low priority in addition to the effect of the first embodiment.
  • the task scheduling apparatus 10 of the third embodiment defines (assigns) the priority from the final task executed at the end of the static task scheduling result that sets the priority to a low level. .
  • the task scheduling apparatus 10 of the present embodiment is particularly effective when it is desired to secure the priority value in the high priority area as much as possible.
  • a task in which a change in execution order affects the outside is referred to as a “order fluctuation prohibited task”.
  • the order variation prohibition task for example, a task that performs I / O access or a task that has a communication dependency with a task on another core is conceivable.
  • a task whose fluctuation in the execution order does not affect the outside for example, a task limited to arithmetic processing in the core or a task whose dependency is limited to tasks in the same core can be considered.
  • the task scheduling apparatus 10 of the fourth embodiment uses the same priority for a task group in which the change in the execution order does not affect the outside as long as the execution order of the order change prohibition task does not change. Based on such assignment of priorities, the task scheduling apparatus 10 of the present embodiment further reduces the number of necessary priorities compared to the first to third embodiments.
  • the task scheduling apparatus 10 includes a method (first method) for defining (giving) priority from the first task of the static task scheduling result, and a method (second method) for defining (giving) the last task. Both) can be used.
  • first method for defining (giving) priority from the first task of the static task scheduling result
  • second method for defining (giving) the last task. Both
  • the task scheduling apparatus 10 of the present embodiment may be realized by a computer including a CPU 610, a ROM 620, and a RAM 630, similarly to the task scheduling apparatus 60 shown in FIG.
  • FIG. 21 is a flowchart showing an example of the operation of the priority generation unit 12 of the present embodiment.
  • the priority generation part 12 implements the process demonstrated below about each core.
  • the highest priority may be set in advance as in the second embodiment.
  • the priority control unit 121 sets the highest priority used in task scheduling (step S401).
  • the priority control unit 121 may use any value as the highest priority. Further, as described above, the priority control unit 121 may set the highest priority in advance. Alternatively, the priority control unit 121 may remove the priority required for processing more important than the task set by task scheduling, and set the highest priority among the remaining available priorities as the highest priority. . Note that when the priority is set from the final task of the static task scheduling result, the priority control unit 121 sets the lowest priority.
  • the priority control unit 121 selects a priority assignment target task. Then, the priority control unit 121 sets (holds) the selected priority assignment target task in the priority assignment target task holding unit 122 (step S402).
  • the priority control unit 121 checks the possibility of change in the execution order of the priority assignment target tasks (step S403). More specifically, the priority control unit 121 operates as follows.
  • the priority control unit 121 obtains the best execution order of the priority assignment target tasks. Then, the priority control unit 121 compares the obtained best execution order with the execution order of the static task scheduling result. When the order is different, the priority control unit 121 determines that the execution order may change. When the execution order is equal, the priority control unit 121 determines that the execution order cannot change.
  • the priority control unit 121 reduces the number of necessary priorities using a process that does not lower the priority (step S407). Specifically, the priority control unit 121 performs the following operation.
  • the priority control unit 121 selects a priority equal to or higher than the priority of the preceding task as a numerical value of the priority, and stores the priority in the priority assignment target task area of the priority holding unit 123.
  • the priority control unit 121 desirably sets the highest priority value. However, the priority control unit 121 may increase the priority to a priority higher than the priority of the preceding task other than the highest priority, if necessary, or make the priority equal to the priority of the preceding task. After setting the priority, the priority control unit 121 proceeds to step S408.
  • the priority control unit 121 determines whether there is an external influence based on the change in the execution order of the priority assignment target tasks (step S404). ).
  • the priority control unit 121 determines the external influence based on the change of the execution order.
  • the order change prohibition task may be included in the preceding execution task of the priority assignment target task.
  • the execution order of the order variation prohibition task may be changed based on the execution order of the priority assignment target tasks.
  • the external influence may occur based on the execution order of the priority assignment target tasks that are not the order variation prohibition tasks. Therefore, when a part of the pre-execution task is an order change prohibition task, the priority control unit 121 assigns a priority to the process when there is no influence on the outside as long as the order change prohibition task is not affected. Apply to the target task.
  • the priority control unit 121 assigns a priority lower than all the prior execution tasks of the priority assignment target task to the priority assignment target task (Step S405). ).
  • the priority control unit 121 assigns a large value to the numerical value of the priority of the priority assignment target task. Then, the priority control unit 121 stores the selected priority in the priority assignment target task area of the priority holding unit 123. Note that the priority control unit 121 desirably selects a value that decreases the priority by one. Thereafter, the priority control unit 121 proceeds to step S408.
  • the priority control unit 121 assigns a priority that satisfies the following condition to the priority assignment target task.
  • Condition 1 Prior to the execution start time in the execution order of the static task scheduling results of all priority assignment tasks after the execution start time when the priority assignment target tasks are executed in the best execution order The priority is lower than the priority of all the order change prohibition tasks (hereinafter referred to as the "previous execution order change prohibition task") that are executed.
  • Condition 2 Execute after the execution start time in the execution order of the static task scheduling result of the priority assignment target task after the execution start time when the priority assignment target task is executed in the best execution order
  • the same priority as a task that is not an order change prohibition task hereinafter referred to as a “previous execution order change enable task”.
  • the priority control unit 121 assigns “4” as the priority, for example. Then, the priority control unit 121 stores the selected priority in the priority assignment target task area of the priority holding unit 123. It is desirable that the priority control unit 121 selects the highest priority as the same priority as that of the pre-execution order changeable task of the condition 2. Thereafter, the priority control unit 121 proceeds to step S408.
  • the priority control unit 121 determines whether or not prioritization has been completed for all tasks of the target core (step S408).
  • the priority control unit 121 ends the process.
  • step S408 If there is a task that has not been prioritized (No in step S408), the priority control unit 121 returns to step S402, sets the next task as a priority assignment target task, and repeats the processing described so far.
  • FIG. 22 is a diagram showing an example of a static task scheduling result used for explanation.
  • FIG. 22 shows two cores, core 0 and core 1. It is assumed that the priority control unit 121 gives priority to the task of the core 0. On the core 0, eight tasks from task G to task N are arranged as shown in FIG. In FIG. 22, the display of the task of the core 1 is omitted. Further, in FIG. 22, the dependency relationship between the tasks is indicated by a dashed arrow. This dependency relationship is a relationship that allows the task at the end of the arrow to be executed after the task at the base of the arrow is completed.
  • Task G is the top task.
  • Task H is a task that can be executed after task G ends.
  • Task I is an executable task after task G ends.
  • Task J is an executable task after task G ends.
  • Task K is an executable task after task H ends.
  • Task L is a task that can be executed after task I ends.
  • Task M is an executable task after task J is completed.
  • the task N is a final task and is an executable task after the tasks L and M are finished.
  • Task J, task K, and task N are assumed to be order variation prohibited tasks. Therefore, task J, task K, and task N are attached with an arrow whose dependency is the core 1.
  • Tasks other than task J, task K, and task N are not order variation prohibited tasks, and are allowed to change the execution order within a range that does not affect the order variation prohibited tasks.
  • the priority of a task with a small numerical value is high. That is, when a plurality of tasks can be executed at the same time, a task having a low priority value is executed. If the priority of a task with a small numerical value is low, the numerical value may be switched. The highest priority is “1”. (In other words, the minimum priority value is “1”.) As a reference for the description of the present embodiment, priorities to which the task scheduling apparatus 10 of the second embodiment gives the static task scheduling result shown in FIG. 22 are shown.
  • FIG. 23 is a diagram illustrating priorities assigned by the task scheduling apparatus 10 according to the second embodiment.
  • the task scheduling apparatus 10 according to the second embodiment uses six priorities of “1” to “6”, which are smaller than eight, as the priorities.
  • 24 to 30 are diagrams for explaining the priority set by the priority control unit 121 of the present embodiment.
  • the numerical value in the figure is the priority defined (set or assigned) to the task.
  • the priority control unit 121 sets a task G to be executed first in the core 0 as a priority assignment target task.
  • the priority control unit 121 defines the priority of the task G.
  • the priority control unit 121 sets “1” as the highest priority (minimum priority value) as the priority of the task G.
  • the priority control unit 121 sets the priority assignment target task as a task H to be executed next to the task G. Then, the priority control unit 121 determines the possibility of changing the execution order of the priority assignment target task (task H). Specifically, the priority control unit 121 determines whether or not the task H is likely to be executed before the time of the execution order of the static task scheduling result.
  • the task H is not executed before the execution position (execution order) of the static task scheduling result based on the dependency relationship with the task G. That is, the best execution order of task H is immediately after task G, which is the same as the execution order of the static task scheduling results shown in FIG. For this reason, the priority control unit 121 determines that the task H has no possibility of changing the execution order.
  • the priority control unit 121 gives priority to the task H.
  • the task H is not likely to be executed before the time of the execution order of the static task scheduling result regardless of the priority. For this reason, the priority control unit 121 does not perform a process of lowering the priority of the task H from the preceding task (task G), and sets the same priority as the task G (in this case, “1”) (FIG. 24). .
  • the priority control unit 121 sets the priority assignment target task as the task I to be executed next to the task H. Then, the priority control unit 121 determines the possibility of changing the execution order of the priority assignment target task (task I). Specifically, the priority control unit 121 determines whether or not the task I is likely to be executed before the time of the execution order of the static task scheduling result.
  • Task I has a dependency relationship with task G, but has no dependency relationship with preceding task H. Therefore, task I may be replaced with task H based on the priority and executed before the execution order of the static task scheduling result. That is, the best execution order of task I is immediately after task G, unlike the execution order of the static task scheduling results. For this reason, the priority control unit 121 determines that the task I may change the execution order.
  • the priority control unit 121 gives priority to the task I.
  • the priority control unit 121 determines that the task I may change in execution order. However, task I is not an order change prohibition task. That is, the priority control unit 121 is allowed to change the task I execution order within a range that does not affect the outside.
  • the variable range of the task I execution order is after the best execution order. Again, the best execution order of task I is immediately after task G. Therefore, the task that can be changed in order corresponding to the task I is the task H. Therefore, the priority control unit 121 does not perform a process of lowering the priority of the task I from the task H. In other words, the priority control unit 121 sets, as the priority of the task I, the same priority (in this case, “1”) as the priority of the task I that can be executed in an orderly variable order (task H in this case). Define (FIG. 25).
  • the priority control unit 121 sets the priority assignment target task as the task J to be executed next to the task I. Then, the priority control unit 121 determines the possibility of changing the execution order of the priority assignment target task (task J). Specifically, the priority control unit 121 determines whether or not the task J is likely to be executed before the time of the execution order of the static task scheduling result.
  • Task J has a dependency relationship from task G, but has no dependency relationship with other preceding tasks. Therefore, task J may be replaced with task H and task I based on the priority, and executed before the execution order of the static task scheduling result. That is, the best execution order of task J is immediately after task G, unlike the execution order of the static task scheduling results. For this reason, the priority control unit 121 determines that the task J may change the execution order.
  • the priority control unit 121 gives priority to the task J.
  • the priority control unit 121 determines that the task J may be changed in execution order.
  • Task J is an order variation prohibition task. Accordingly, the priority control unit 121 performs a process for lowering the priority of the task J.
  • the best execution order of task J is immediately after task G. Therefore, the priority control unit 121 sets the priority of the task J as a priority lower than the lowest priority (in this case, “1”) among all prior execution tasks (task H, task I). (For example, “2”) is defined (FIG. 26).
  • the priority control unit 121 sets the priority assignment target task as the task K to be executed next to the task J. Then, the priority control unit 121 determines the possibility of changing the execution order of the priority assignment target task (task K). Specifically, the priority control unit 121 determines whether or not the task K is likely to be executed before the time of the execution order of the static task scheduling result.
  • Task K has a dependency relationship with task H, but does not have a dependency relationship with task I or task J. For this reason, the task K may be replaced with the task I and the task J based on the priority, and may be executed before the execution order of the static task scheduling result. That is, the best execution order of task K is immediately after task H, unlike the execution order of the static task scheduling results. Therefore, the priority control unit 121 determines that the task K may change the execution order.
  • the priority control unit 121 gives priority to the task K.
  • the priority control unit 121 determines that the task K may change the execution order.
  • Task K is an order variation prohibition task. Accordingly, the priority control unit 121 performs a process for lowering the priority of the task K.
  • the best execution order of task K is immediately after task H. Therefore, the priority control unit 121 sets the priority of the task K that is lower than the lowest priority (in this case, “2”) among the priorities of all preceding execution tasks (task I and task J). (For example, “3”) is defined (FIG. 27).
  • the priority control unit 121 sets the priority assignment target task as the task L to be executed next to the task K. Then, the priority control unit 121 determines the possibility of changing the execution order of the priority assignment target task (task L). Specifically, the priority control unit 121 determines whether or not the task L is likely to be executed before the time of the execution order of the static task scheduling result.
  • Task L has a dependency relationship with task I, but has no dependency relationship with task J and task K. Therefore, the task L may be replaced with the task J and the task K based on the priority, and may be executed before the execution order of the static task scheduling result. That is, the best execution order of task L is immediately after task I, unlike the execution order of the static task scheduling results. For this reason, the priority control unit 121 determines that the task L may change the execution order.
  • the priority control unit 121 gives priority to the task L.
  • the priority control unit 121 determines that the execution order of the task L may be changed.
  • the task L is not an order variation prohibition task. That is, the priority control unit 121 is allowed to change the execution order of the task L within a range that does not affect the outside.
  • the priority control unit 121 sets the priority of the task L as a priority lower than the lowest priority (in this case, “3”) among all prior execution tasks (task J, task K). (For example, “4”) is defined (FIG. 28).
  • the priority control unit 121 sets the priority assignment target task as the task M to be executed next to the task L. Then, the priority control unit 121 determines the possibility of changing the execution order of the priority assignment target task (task M). Specifically, the priority control unit 121 determines whether or not there is a possibility of execution before the execution order time of the static task scheduling result of the task M.
  • Task M has a dependency relationship with task J, but does not have a dependency relationship with task K and task L. Therefore, the task M may be replaced with the task K and the task L based on the priority, and may be executed before the execution order of the static task scheduling result. That is, the best execution order of task M is immediately after task J, unlike the execution order of the static task scheduling results. For this reason, the priority control unit 121 determines that the task M may change the execution order.
  • the priority control unit 121 gives priority to the task M.
  • the priority control unit 121 determines that the execution order of the task M may be changed.
  • the task M is not an order variation prohibition task. That is, the priority control unit 121 is allowed to change the execution order of the task M within a range that does not affect the outside.
  • task K is an order variation prohibited task. That is, task M cannot be replaced with task K. Therefore, the priority control unit 121 uses the priority of the task M, which is lower than the priority of the preceding execution order change prohibition task (task K), as the priority of the task M.
  • a priority (“4”) equivalent to the degree (“4” in this case) is defined (FIG. 29).
  • the priority control unit 121 sets the priority assignment target task as the task N to be executed next to the task M. Then, the priority control unit 121 determines the possibility of changing the execution order of the priority assignment target task (task N). Specifically, the priority control unit 121 determines whether or not there is a possibility of execution before the time of the execution order of the static task scheduling result of the task N.
  • Task N has a dependency relationship with task L and task M.
  • Task L and task M are not order variation prohibition tasks. That is, there is a possibility that the execution order of the task L and the task M is switched.
  • task N has a dependency relationship with both task L and task M. Therefore, regardless of the execution order of task L and task M, task N is executed after the execution of the two tasks. That is, the best execution order of task N is the same as the execution order of the static task scheduling result (immediately after task M). Therefore, the priority control unit 121 determines that the task N is not likely to change the execution order.
  • the priority control unit 121 gives priority to the task N.
  • the priority control unit 121 determines that the task N has no possibility of changing the execution order. Therefore, the priority control unit 121 defines the highest priority (in this case, “1”) among the priorities that can be set as the priority of the task N without performing a process lower than the preceding task ( FIG. 30).
  • the task scheduling apparatus 10 of the present embodiment uses the second implementation as the priority. Four less than six of the forms are used.
  • the task scheduling apparatus 10 can obtain an effect of reducing the number of priorities to be used from the task scheduling apparatus 10 according to the first to third embodiments.
  • the task scheduling apparatus 10 uses the same priority for a task whose task execution order does not affect the outside.
  • FIG. 31 is a block diagram showing an example of the configuration of the task scheduling apparatus 10A according to the present embodiment.
  • the same components as those in FIG. 2 are denoted by the same reference numerals, and detailed description thereof is omitted.
  • the task scheduling apparatus 10A includes an apparatus control unit 13 in addition to the static task scheduling generation unit 11 and the priority generation unit 12 included in the task scheduling apparatus 10 illustrated in FIG.
  • the device control unit 13 controls the operations of the static task scheduling generation unit 11 and the priority generation unit 12. More specifically, the device control unit 13 causes the static task scheduling generation unit 11 to execute a static task scheduling of a task. Then, the device control unit 13 causes the priority generation unit 12 to assign a priority to the task subjected to the static task scheduling. The device control unit 13 repeats this operation until all tasks are completed.
  • the device control unit 13 closely links the static task scheduling generation unit 11 and the priority generation unit 12 to facilitate detection of the best execution order.
  • the task scheduling apparatus 10A of this embodiment may be realized by a computer including a CPU 610, a ROM 620, and a RAM 630, similarly to the task scheduling apparatus 60 shown in FIG.
  • FIG. 32 is a flowchart showing an example of the operation of the task scheduling apparatus 10A of the present embodiment.
  • the device control unit 13 instructs the static task scheduling generation unit 11 to perform static task scheduling for a task to be processed.
  • the static task scheduling generation unit 11 executes static task scheduling for determining the core arrangement of the designated task and the execution order of the tasks on the core (step S501). Note that as the method used for the static task scheduling, the method of the embodiment described above may be used. In addition, since the task for which static task scheduling has been performed is processed next by the priority generation unit 12, it becomes a priority assignment target task.
  • the device control unit 13 instructs the priority generation unit 12 to give priority to the task for which static task scheduling has been completed.
  • the priority generation unit 12 gives priority to the priority assignment target task for which static task scheduling has been completed (step S502).
  • the method used by the priority generation unit 12 for assigning priority may be the method of the embodiment described above.
  • the task scheduling apparatus 10A determines whether the prioritized tasks are statically scheduled in the best execution order (or worst execution order). Can be easily determined.
  • the device control unit 13 determines whether or not all tasks have been processed (step S503).
  • step S503 If there is a task that has not been processed (No in step S503), the apparatus control unit 13 returns to step S501 and repeats the process for the next task.
  • step S503 the apparatus control unit 13 ends the process.
  • the task scheduling apparatus 10A may process static task scheduling and priority generation by integrating a plurality of cores.
  • the description is complicated. Therefore, in the following, the operation of the core 0 will be described for clarity of explanation.
  • the priority of the task with a small numerical value is high. That is, when a plurality of tasks can be executed at the same time, it is assumed that a task with a small numerical value given as a priority is executed with priority. When the priority of a task with a small numerical value is low, the determination of the numerical value may be switched.
  • priorities are set in the order in which tasks are executed, and the highest priority (minimum value of priority values) is “3”.
  • 33 to 38 are diagrams for explaining the priorities set by the task scheduling apparatus 10A of the present embodiment.
  • the numerical value in the figure is the priority defined (set, assigned) to the task.
  • the device control unit 13 instructs the static task scheduling generation unit 11 to perform static task scheduling of the first task.
  • the static task scheduling generation unit 11 determines that the execution of the task A first on the core 0 is good for performance improvement. Therefore, the static task scheduling generation unit 11 performs static task scheduling for task A.
  • the priority assignment target task is task A.
  • tasks that can be executed after task A during the static task scheduling become clear.
  • the tasks that can be executed are the task B from which the dependency from the core 1 is eliminated, and the task C and the task D from which the dependency from the task A is eliminated. That is, the task scheduling apparatus 10A can know that the best execution order of task B, task C, and task D is immediately after task A.
  • a task whose dependency is eliminated and placement is possible is referred to as a “placeable task”.
  • the device control unit 13 instructs the priority generation unit 12 to define the priority of the task A.
  • Task A is the top task. Therefore, the priority generation unit 12 sets (gives) “3”, which is the highest priority (minimum value of priority), as the priority of task A (FIG. 33).
  • the device control unit 13 processes the next task because there are still tasks remaining.
  • the device control unit 13 instructs the static task scheduling generation unit 11 to perform static task scheduling for the next task.
  • the static task scheduling generation unit 11 determines that the next task B on the core 0 is good for performance improvement. Therefore, the static task scheduling generation unit 11 performs static task scheduling for task B.
  • the priority assignment target task is task B.
  • the device control unit 13 instructs the priority generation unit 12 to define (assign) the priority of the priority assignment target task (task B).
  • the priority generation unit 12 determines that the task B has no possibility of changing the execution order. Then, the priority generation unit 12 sets the priority of the task B to the highest priority (in this case, “3”) without performing a process of lowering the priority of the task B from the preceding task A (FIG. 34). In this case, since the priority of the preceding task A is the highest priority, the priority of the task B is the same as the priority of the task A.
  • the device control unit 13 processes the next task because there are still tasks remaining.
  • the device control unit 13 instructs the static task scheduling generation unit 11 to perform static task scheduling for the next task.
  • the static task scheduling generation unit 11 determines that the next task C execution on the core 0 is good for performance improvement. Therefore, the static task scheduling generator 11 performs static task scheduling for task C.
  • the priority assignment target task is task C.
  • the device control unit 13 instructs the priority generation unit 12 to define (assign) the priority of the priority assignment target task (task C).
  • the priority generation unit 12 determines that the task C may change the execution order. Then, the priority generation unit 12 sets the priority of the task C to a priority (for example, “4”) lower than the priority (“3”) of the preceding execution task (task B) (FIG. 35).
  • the device control unit 13 processes the next task because there are still tasks remaining.
  • the device control unit 13 instructs the static task scheduling generation unit 11 to perform static task scheduling for the next task.
  • the static task scheduling generation unit 11 determines that the next execution of the task D on the core 0 is good for performance improvement. (Note that the task remaining in the task that can be arranged at this time is task D (see FIG. 35).) Therefore, the static task scheduling generation unit 11 performs static task scheduling of task D.
  • the priority assignment target task is task D.
  • tasks that can be executed after task D become clear.
  • the tasks that can be arranged are the task E and the task F whose dependency on the task D is eliminated. That is, the task scheduling apparatus 10A can know that the best execution order of the task E and the task F is immediately after the task D.
  • the device control unit 13 instructs the priority generation unit 12 to define (assign) the priority of the priority assignment target task (task D).
  • the priority generation unit 12 determines that the task D may change the execution order. Then, the priority generation unit 12 sets the priority of the task D to a priority (for example, “5”) lower than the lowest priority (“4”) among the preceding execution tasks (task B and task C). (FIG. 36).
  • the device control unit 13 processes the next task because there are still tasks remaining.
  • the device control unit 13 instructs the static task scheduling generation unit 11 to perform static task scheduling for the next task.
  • the static task scheduling generation unit 11 determines that the next task E on the core 0 is good for performance improvement. Therefore, the static task scheduling generator 11 performs static task scheduling for task E.
  • the priority assignment target task is task E.
  • the device control unit 13 instructs the priority generation unit 12 to define (assign) the priority of the priority assignment target task (task E).
  • the priority generation unit 12 determines that the task E has no possibility of changing the execution order. Then, the priority generation unit 12 sets the highest priority (in this case, “3”) that can be set without performing a process of lowering the priority of the task E over the preceding task D (FIG. 37).
  • the device control unit 13 processes the next task because there are still tasks remaining.
  • the device control unit 13 instructs the static task scheduling generation unit 11 to perform static task scheduling for the next task.
  • the static task scheduling generation unit 11 determines that the next execution of the task F on the core 0 is good for performance improvement. (The remaining task that can be arranged is task F (see FIG. 37).) Therefore, the static task scheduling generation unit 11 performs static task scheduling of task F.
  • the priority assignment target task is task F.
  • the best execution order of task F is immediately after task D.
  • Task F may replace task E based on priority. That is, the best execution order of task F is different from the execution order of the static task scheduling result. For this reason, the priority generation unit 12 determines that the task F may be changed in execution order. Then, the priority generation unit 12 sets the priority of the task F as a priority (for example, “4”) lower than the lowest priority (“3”) in the preceding execution task (task E) (FIG. 38). ).
  • a priority for example, “4”
  • the task scheduling device 10A can easily detect the best execution order. It was.
  • the method for detecting the best execution order by the task scheduling apparatus 10A of the present embodiment is not limited to this.
  • the static task scheduling generation unit 11 may assign a code indicating whether or not the static task scheduling is performed in the best execution order.
  • the task scheduling apparatus 10A of the present embodiment separates the operations of the static task scheduling generation unit 11 and the priority generation unit 12 and has the same configuration as described with reference to FIG. An effect can be obtained.
  • the task scheduling apparatus 10A of the fifth embodiment is not limited to the configuration described above, and various modifications are possible.
  • the task scheduling apparatus 10A of the present embodiment can obtain the effect of facilitating detection of the best execution order.
  • the task scheduling apparatus 10A of the present embodiment includes the apparatus control unit 13 and realizes cooperation between the static task scheduling generation unit 11 and the priority generation unit 12.
  • the task scheduling apparatus 10A sets a code at a place where the execution order can change.
  • the present invention can be used for a software development tool that reduces the number of priorities necessary for maintaining the execution order while maintaining the execution order based on static task scheduling.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Selon l'invention, de manière à maintenir une séquence d'exécution qui est basée sur un ordonnancement statique de tâches tout en réduisant le nombre de niveaux de priorité requis pour maintenir la séquence d'exécution, un résultat d'ordonnancement statique de tâches généré est comparé à la séquence d'exécution optimale vue depuis la tâche antérieure dans le résultat d'ordonnancement statique de tâches, et à la séquence d'exécution la moins optimale vue depuis la tâche la plus en arrière, et quand la séquence d'exécution n'a pas changé, le niveau de priorité de la tâche est réglé au même niveau que le niveau de priorité le plus bas des tâches subséquentes à l'instant de démarrage d'exécution ou à un niveau supérieur, quand la séquence est exécutée avec le niveau de priorité des tâches dans la séquence d'exécution optimale, ou est réglé au même niveau que le niveau de priorité le plus haut des tâches successivement suivantes avant l'instant de fin d'exécution ou à un niveau inférieur, quand la séquence est exécutée dans la séquence d'exécution la moins optimale.
PCT/JP2013/004623 2012-08-13 2013-07-31 Dispositif d'ordonnancement et procédé d'ordonnancement WO2014027444A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014530463A JP6156379B2 (ja) 2012-08-13 2013-07-31 スケジューリング装置、及び、スケジューリング方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012179495 2012-08-13
JP2012-179495 2012-08-13

Publications (1)

Publication Number Publication Date
WO2014027444A1 true WO2014027444A1 (fr) 2014-02-20

Family

ID=50685498

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/004623 WO2014027444A1 (fr) 2012-08-13 2013-07-31 Dispositif d'ordonnancement et procédé d'ordonnancement

Country Status (2)

Country Link
JP (1) JP6156379B2 (fr)
WO (1) WO2014027444A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016206817A (ja) * 2015-04-20 2016-12-08 株式会社デンソー 電子制御装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102252079B1 (ko) * 2019-09-20 2021-05-13 인천대학교 산학협력단 실시간 시스템을 위한 실시간성 분석 장치 및 그 동작 방법
KR102497255B1 (ko) * 2020-12-15 2023-02-06 현대오토에버 주식회사 멀티 코어 환경에서 코어 연동 시스템 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007140710A (ja) * 2005-11-15 2007-06-07 Sony Computer Entertainment Inc タスク割り当て方法およびタスク割り当て装置
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
WO2012020478A1 (fr) * 2010-08-10 2012-02-16 富士通株式会社 Ordonnanceur, système processeur multicœur et procédé d'ordonnancement

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007140710A (ja) * 2005-11-15 2007-06-07 Sony Computer Entertainment Inc タスク割り当て方法およびタスク割り当て装置
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
WO2012020478A1 (fr) * 2010-08-10 2012-02-16 富士通株式会社 Ordonnanceur, système processeur multicœur et procédé d'ordonnancement

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016206817A (ja) * 2015-04-20 2016-12-08 株式会社デンソー 電子制御装置

Also Published As

Publication number Publication date
JPWO2014027444A1 (ja) 2016-07-25
JP6156379B2 (ja) 2017-07-05

Similar Documents

Publication Publication Date Title
EP2176751B1 (fr) Ordonnancement par l'augmentation et le réduction d'allocation de ressources
KR101626378B1 (ko) 병렬도를 고려한 병렬 처리 장치 및 방법
JP5934094B2 (ja) データ並列スレッドを有する処理論理の複数のプロセッサにわたるマッピング
JP6241300B2 (ja) ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
JP4185103B2 (ja) 実行可能プログラムをスケジューリングするためのシステム及び方法
US20130346985A1 (en) Managing use of a field programmable gate array by multiple processes in an operating system
US20030056091A1 (en) Method of scheduling in a reconfigurable hardware architecture with multiple hardware configurations
US20110310107A1 (en) Information processing apparatus, method for controlling information processing apparatus, and program
KR20200091789A (ko) Gpu 연산의 동시 실행을 위한 플랫폼
CN112711478A (zh) 基于神经网络的任务处理方法、装置、服务器和存储介质
WO2016092856A1 (fr) Dispositif de traitement d'informations, système de traitement d'informations, procédé de traitement de tâches, et support de stockage pour stocker un programme
EP3097492B1 (fr) Procédé et appareil de prévention de conflit de bloc dans une mémoire
JP2020095441A (ja) 演算制御装置
JP6156379B2 (ja) スケジューリング装置、及び、スケジューリング方法
CN103294449B (zh) 发散操作的预调度重演
US8615762B2 (en) Multiprocessor system, multiple threads processing method and program
US20120137300A1 (en) Information Processor and Information Processing Method
JP7367365B2 (ja) タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム
US9705985B1 (en) Systems and methods for cross protocol automatic sub-operation scheduling
KR101952221B1 (ko) 캐시 부스팅과 경과시간 최소화를 통한 효율적인 멀티태스킹 그래픽처리장치
JP6753521B2 (ja) 計算資源管理装置、計算資源管理方法、及びプログラム
US10475151B2 (en) Graphics engine resource management and allocation system
CN112130977A (zh) 一种任务调度方法、装置、设备及介质
JP6322968B2 (ja) 情報処理装置、情報処理方法およびプログラム
Nitu et al. An improved gpu mapreduce framework for data intensive applications

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: 13879448

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014530463

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: 13879448

Country of ref document: EP

Kind code of ref document: A1