A method of extracting parallelism of an original program by a computer, the method comprising: a first process of generating macro tasks (BPA, RB, SB) based on the syntax analysis result to be executed by a multicore processor, from the original program; a second process of analyzing a control flow and data dependency of the macro tasks (BPA, RB, SB) and generating a macro flow graph; a third process of analyzing an earliest executable condition of the macro tasks (BPA, RB, SB), based on a result of the second process, to extract parallelism among the macro tasks (BPA, RB, SB) and determining the number of processors assigned to the macro tasks and the parallel processing segments, to generate a macro task graph; characterized in that the method further comprises: a fourth process of extracting a conditional branch, followed by a plurality of macro tasks (func1, func2, func3, sb5, sb6, sb7) which are included in the macro tasks (BPA, RB, SB), and which are determined to be executed in a same condition and executable in parallel, based on a result of the third process; a fifth process of copying the conditional branch extracted in the fourth process, to generate a plurality of conditional branches; and a sixth process of making each of the plurality of macro tasks (func1, func2, func3, sb5, sb6, sb7) follow each of the plurality of conditional branches and fusing the each of the plurality of conditional branches and the each of the plurality of macro tasks into a plurality of new macro tasks, each of the plurality of new macro tasks being assignable via static scheduling to each of a plurality of processor cores included in the multicore processor. a first process of generating macro tasks (BPA, RB, SB) based on the syntax analysis result to be executed by a multicore processor, from the original program; a second process of analyzing a control flow and data dependency of the macro tasks (BPA, RB, SB) and generating a macro flow graph; a third process of analyzing an earliest executable condition of the macro tasks (BPA, RB, SB), based on a result of the second process, to extract parallelism among the macro tasks (BPA, RB, SB) and determining the number of processors assigned to the macro tasks and the parallel processing segments, to generate a macro task graph; a fourth process of extracting a conditional branch, followed by a plurality of macro tasks (func1, func2, func3, sb5, sb6, sb7) which are included in the macro tasks (BPA, RB, SB), and which are determined to be executed in a same condition and executable in parallel, based on a result of the third process; a fifth process of copying the conditional branch extracted in the fourth process, to generate a plurality of conditional branches; and a sixth process of making each of the plurality of macro tasks (func1, func2, func3, sb5, sb6, sb7) follow each of the plurality of conditional branches and fusing the each of the plurality of conditional branches and the each of the plurality of macro tasks into a plurality of new macro tasks, each of the plurality of new macro tasks being assignable via static scheduling to each of a plurality of processor cores included in the multicore processor.