With the development of the supercomputer with multiprocessors, the parallel processing of a Fortran program on the multiprocessor system is considered interesting. This paper proposes a parallel processing scheme for the Fortran program where the assignment unit (task) to the processor is the processing of an arithmetic substitution statement. The implementation and performance evaluation of the proposed scheme on the actual system are reported. In the proposed scheme, the arithmetic substitution statement in the basic block is defined as the task, and the precedence constraints among the tasks due to data dependencies are determined. Based on the derived constraints, the allocation of the tasks to the processors as well as the execution order are determined at the compiling stage, using the multiprocessor scheduling algorithm. Then the codes for the processors are generated and the parallel processing is executed. The proposed scheme was implemented on an actual system and the performance was evaluated. The effect of the parallel processing is manifested. In the conventional loop parallel processing, the effect of the parallel processing cannot be expected for the basic block in the loop or for the basic block of the scalar operation unit outside the loop. On the other hand, it was verified that the parallel processing of those blocks can be realized by applying the proposed method.
ASJC Scopus subject areas