1. A system for dynamically parallelizing an application program, the system comprising: a multi-core controller 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.