A non-transitory computer-readable medium, on which a task group program is recorded, said program causing a computer to function as a task group allocation device that allocates, to a processor having a plurality of cores, task groups included in an application executed by the processor, said task group allocation device comprising:
- a unit for measuring performances of the cores and disposition patterns, inherent to the manufacturing, of the cores after manufacture and before shipment of a chip including the processor or measuring performances of the cores and disposition patterns, inherent to the manufacturing, of the cores when a breakdown is detected by zero-performance of the chip at time of use of the chip, generating a restricting condition that associates the measured core performances and core disposition patterns with information indicating whether the application can be executed;
- and
- a unit for reallocating, to the cores, the task groups in an order specified in the application that have previously been allocated to the cores, with reference to the restricting condition;
- a unit for creating equations each describing a condition that one task group is allocated to only one core;
- a unit for creating equations each describing a condition that a number of task groups to be allocated to one core is zero or one;
- a unit for creating equations each presenting a coordinate of each core;
- a unit for creating equations each representing a distance between cores;
- a unit for creating equations each describing that the sum of terms, indicating a completion time of a task group plus a communication time between two task groups, obtained by multiplying a parameter indicating to which core a task is allocated by a predetermined multiplier is not larger than a maximum tolerable finish time in each communication between task groups;
- and
- a unit for simultaneously solving the above equations so as to determine a core to which each task group is allocated.