Patent ID: 9152462
Filing Date: 2015-10-06
Classification: G06F

Abstract:
1. A parallel processing device which includes a hardware processing unit having a plurality of processor cores, a parallel processing of a group of thread arrays each being a group of threads each representing a process unit enabling parallel processing, the parallel processing device comprising: a divided task acquisition unit which acquires information representing each of tasks into which the process of an application to be processed is divided in a manner to enable parallel processing; a concurrently executed task number setting unit which sets a concurrently executed task number which is the number of tasks concurrently executed in each of the thread arrays; an intra-array thread number setting unit which sets an intra-array thread number which is the number of threads within each of the thread arrays, on the basis of the number of threads able to be processed further in parallel in each of the tasks and the concurrently executed task number; a total array number setting unit which sets a total array number which is the total number of the thread arrays, on the basis of the total number of threads necessary for processing the application and the intraarray thread number; a thread array control unit which generates the threads and the thread arrays on the basis of the intra-array thread number and the total array number, and controls the processing unit to execute in parallel the process of each of the thread arrays; a resource allocation unit which, in each of the thread arrays, secures resources necessary for processing the same number of tasks as the concurrently executed task number, and allocates the secured resources to each of the tasks; a processing task determination unit which determines a task to be processed by each thread within each of the thread arrays; and a task execution unit which executes the same number of tasks as the concurrently executed task number in each of the thread arrays, by causing each of the threads in the thread array to execute the task determined by the processing task determination unit using the resources allocated by the resource allocation unit.