Paragram: A high-level programming language for parallel processors

This paper presents the design principle of PARAGRAM, which is being developed for the parallel processing description for numerical simulation. The specification for the language is outlined, and the result of applying the language to the description of the actual problem is presented. The proposed language aims primarily at the following. The programmer is asked to indicate the parallelism inherent to the problems in the lumped system such as structural analysis and network analysis, and the particle problems such as neutron transport. This facilitates the mapping to the parallel computer architecture to be employed. The productivity and the maintainability of the program are improved by the simplicity of the description. Usually, different types of parallel processings are required for the lumped system and the particle system. In the former, the array-oriented parallelism often is observed, for example, the calculation of elements in the sparse matrix and the linear calculation using the sparse matrix. In the latter, the procedure-oriented parallelism often is observed based on the processing for each particle. The declaration function for the structure of various sparse matrices as well as the operation description based on the logical structure are employed for the former. The definition function for the particle density and probability distribution for the Monte Carlo particle system, as well as the parallel execution control block function for the simulation, are provided for the latter. As a result of applying the proposed language to the parallel processing description of the actual problem, it was verified that the description lines can be reduced by 23 to 62 percent from the traditional serial processing FORTRAN, indicating that the language is useful in the clear description, thereby improving the descriptive power.