Method and system for dynamically parallelizing application program
First Claim
Patent Images
1. A system for dynamically parallelizing an application program, the system comprising:
- a block generator to generate a data block having a size corresponding to a data area to be processed by the application program, using a block function;
a multi-core controller including at least one processing device to assign, according to a thread allocation scheme and the generated data block, a unique operation of each of a number of available threads that are generated while running the application program;
a monitoring unit to monitor the multi-core controller to determine, after a performance of at least one of the unique operations, the number of available threads, during the running of the application program; and
a decision unit to selectively divide the data block using a map function and change the thread allocation scheme based on the determined number of available threads, during the running of the application program.
1 Assignment
0 Petitions
Accused Products
Abstract
Provided is a method and system for dynamically parallelizing an application program. Specifically, provided is a method and system having multi-core control that may verify a number of available threads according to an application program and dynamically parallelize data based on the verified number of available threads. The method and system for dynamically parallelizing the application program may divide a data block to be processed according to the application program based on a relevant data characteristic and dynamically map the threads to division blocks, and thereby enhance a system performance.
104 Citations
17 Claims
-
1. A system for dynamically parallelizing an application program, the system comprising:
-
a block generator to generate a data block having a size corresponding to a data area to be processed by the application program, using a block function; a multi-core controller including at least one processing device to assign, according to a thread allocation scheme and the generated data block, a unique operation of each of a number of available threads that are generated while running the application program; a monitoring unit to monitor the multi-core controller to determine, after a performance of at least one of the unique operations, the number of available threads, during the running of the application program; and a decision unit to selectively divide the data block using a map function and change the thread allocation scheme based on the determined number of available threads, during the running of the application program. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for dynamically parallelizing an application program, the system comprising:
-
a multi-core controller including at least one processing device to assign a unique operation of each of plural threads that are generated while running the application program; a block generator to generate a data block having a size corresponding to a data area to be processed by the application program, using a block function; a monitoring unit to monitor the multi-core controller to determine a number of available threads; and a decision unit to divide the data block using a map function, and to dynamically determine a thread allocation scheme, further comprising; a performance measurement unit to measure or predict a performance of the thread allocation system according to a division type of the data block and the thread allocation scheme, wherein the decision unit dynamically determines the thread allocation scheme and the division type of the data block having a determined optimum performance based on the measurement or prediction of the performance measurement unit.
-
-
9. A system for dynamically parallelizing an application program, the system comprising:
-
a multi-core controller including at least one processing device to assign a unique operation of each of plural threads that are generated while running the application program; a block generator to generate a data block having a size corresponding to a data area to be processed by the application program, using a block function; a monitoring unit to monitor the multi-core controller to determine a number of available threads; a decision unit to divide the data block using a map function, and to dynamically determine a thread allocation scheme; a scatter unit to generate threads of performing a same operation using a distribution, and to allocate the threads to division blocks, respectively, according to the determined thread allocation scheme; a gather unit to combine the threads using a combination function; and a change unit to selectively increase or decrease the number of threads using a change function when a change in the number of available threads is detected by the monitoring unit. - View Dependent Claims (10)
-
-
11. A method for dynamically parallelizing an application program in a system, the method comprising:
-
generating, using at least one processing device, a data block having a size corresponding to a data area to be processed by the parallel application program, using a block function; assigning, according to a thread allocation scheme and the generated data block, a unique operation of each of a number of available threads that are generated while running the application program; determining, after a performance of at least one of the unique operations, the number of available threads, during the running of the application program; selectively dividing the data block using a map function and changing the thread allocation scheme based on the determined number of available threads, during the running of the application program; and generating threads according to the selectively changed thread allocation scheme to allocate the threads to the selectively divided data blocks, respectively. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
Specification