Patent ID: 8250548
Filing Date: 2012-08-21
Classification: G06F,Y02D

Abstract:
1. A control method for allocating tasks in a heterogeneous multiprocessor system that includes a plurality of general-purpose processors and one or more accelerators, the one or more accelerators being processors for executing instruction sets that different than instruction sets executed by the general-purpose processors, the control method comprising: analyzing a depending characteristic of at least one of control and data among a plurality of preset tasks; extracting executable tasks based on depending relationships among the plurality of tasks; extracting parallelism of the extracted tasks based on the depending characteristic of at least either one of control and data among the extracted tasks; allocating the extracted tasks to general-purpose processor groups formed by grouping the plurality of general-purpose processors bused on the extracted parallelism or the extracted tasks; grouping the one or more accelerators into accelerator groups; calculating an execution cost for each of the extracted tasks individually; calculating a priority value for each of the extracted tasks individually based on the execution cost for the extracted task; determining a task to be reallocated from the extracted tasks based on the priority values calculated for the extracted tasks; comparing an execution cost of an accelerator group of the one or more accelerator groups executing the determined task with an execution cost of a general-purpose processor group of the general-purpose processor groups executing the determined task; upon a determination that the execution cost of the accelerator group executing the determined task is lower than the execution cost of the general-purpose processor group executing the determined task, allocating the determined task to the accelerator group; and upon a determination that the execution cost of the general-purpose processor group executing the determined task is lower than the execution cost of the accelerator group executing the determined task, reallocating the determined task to the general-purpose processor group, and wherein comparing the execution cost of the accelerator group executing the determined task with the execution cost of the general-purpose processor group executing the determined task comprises: calculating a predicted end time instant of a most recent task allocated to the general-purpose processor group and a predicted end time instant of a most recent task allocated to the accelerator group at a present time instant; calculating a task process time for execution of the determined task by the general-purpose processor group and a task process time for execution of the determined task by the accelerator group; calculating a data transfer time needed for transferring data tier execution of the determined task by the general-purpose processor group and a data transfer time needed for transferring data for execution of the determined task by the accelerator group; and comparing a value obtained by incorporating the data transfer time into a sum of the task process time and the predicted end time instant of the most recent task for the general-purpose processor group with a value obtained by incorporating the data transfer time into a sum of the task process time and the predicted end time instant of the most recent task for the accelerator group.