A computer-implemented method for generating, from a sequential program, a parallel program executable in a system including a plurality of arithmetic processing units to perform arithmetic processing in parallel, the method comprising: dividing (STEP004) the sequential program into a plurality of tasks (BBs, RBs, SBs) based on results of lexical analysis and syntax analysis (STEP002), wherein each of the plurality of tasks is one of a basic block, a repetition block and a subroutine block; analyzing (STEP010) control flow and data dependency of each of the plurality of tasks (BBs, RBs, SBs) and generating (STEP012) a macro flow graph (MFG); and analyzing (STEP014) an earliest executable condition of each of the plurality of tasks (BBs, RBs, SBs), by analyzing a control dependency and data dependency of the plurality of tasks (BBs, RBs, SBs) based on the macro flow graph (MFG), to extract parallelism among the plurality of tasks (BBs, RBs, SBs) and generating (STEP016) a macro task graph (MTG); characterized in that the method further comprises: determining (STEP018), by referring to the macro task graph (MTG), as a task group to be fused, a reference task which is included in the plurality of tasks (BBs, RBs, SBs) and has a conditional branch, and all subsequent tasks which are also included in the plurality of tasks (BBs, RBs, SBs) and are control dependent, extended-control dependent, or indirect control dependent on respective of any branch directions of the conditional branch included in the reference task; and fusing (STEP026) all tasks included in the task group to generate a new task. dividing (STEP004) the sequential program into a plurality of tasks (BBs, RBs, SBs) based on results of lexical analysis and syntax analysis (STEP002), wherein each of the plurality of tasks is one of a basic block, a repetition block and a subroutine block; analyzing (STEP010) control flow and data dependency of each of the plurality of tasks (BBs, RBs, SBs) and generating (STEP012) a macro flow graph (MFG); and analyzing (STEP014) an earliest executable condition of each of the plurality of tasks (BBs, RBs, SBs), by analyzing a control dependency and data dependency of the plurality of tasks (BBs, RBs, SBs) based on the macro flow graph (MFG), to extract parallelism among the plurality of tasks (BBs, RBs, SBs) and generating (STEP016) a macro task graph (MTG); characterized in that the method further comprises: determining (STEP018), by referring to the macro task graph (MTG), as a task group to be fused, a reference task which is included in the plurality of tasks (BBs, RBs, SBs) and has a conditional branch, and all subsequent tasks which are also included in the plurality of tasks (BBs, RBs, SBs) and are control dependent, extended-control dependent, or indirect control dependent on respective of any branch directions of the conditional branch included in the reference task; and fusing (STEP026) all tasks included in the task group to generate a new task. determining (STEP018), by referring to the macro task graph (MTG), as a task group to be fused, a reference task which is included in the plurality of tasks (BBs, RBs, SBs) and has a conditional branch, and all subsequent tasks which are also included in the plurality of tasks (BBs, RBs, SBs) and are control dependent, extended-control dependent, or indirect control dependent on respective of any branch directions of the conditional branch included in the reference task; and fusing (STEP026) all tasks included in the task group to generate a new task. <EOS>