The RWCP Parallel and Distributed System Performance TRC Laboratory has developed a 3-dimensional CFD program implemented in object-oriented C++ computer language. This program was demonstrated on the RWC PC Cluster at SC'97. The program is capable of simulating flows of a liquid by computing the pressure and velocity of the fluid. At SC'97, the performance of the PC Cluster was demonstrated through actual runs by visualizing results in a step-by-step simulation interactively.
As CFD computation usually requires enormous computing power, improved performance through parallel processing has been investigated. The objective of this R&D was to study the performance analysis and parallel programming for CFD applications, which is an important and typical parallel, distributed application, as a workload. The developed CFD program was a 3-D incompressible viscous fluid analysis program. Basic equations include the equation of continuity (equation for mass conservation), the equation of motion (Navier-Stokes equation), and the equation for mechanical energy. The Finite Element Method (FEM) was used for discretization, to deal with complicated shapes employing 8-node isoparametric elements. A scheme for accuracy using 3rd upwind was used, and the previously established SMAC method was used as an algorithm for the time quadrature. For parallelization, the SCG method was used for solving linear equations.
The 3-D CFD program was implemented in C++, as we consider that object-oriented technology is important for parallel programming in the future. Object-oriented technology in a parallel environment can hide the complexity of the parallel programming from users, thereby "facilitating" parallel programming. One of the purposes of developing this program was to provide a case study. Even in sequential processing, when physical models are handled in numerical computations, objects having 3-dimensional coordinates and vectors allow the programmer to use similar mathematical description. The Finite Element Method (FEM) has data structures of finite elements and nodes, but making this fine-grain data structure into objects may incur a large overhead. For parallel programming, we have found that very common collection operations on the entire data structure are useful (e.g., integration of adjacent elements and matrix vector products required to solve equations).
The communication library for this program is MPI and the program runs on SMP Cluster COMPaS, SR2201 and PC Clusters. The performance is 0.35 sec/step on the SR2201 64PE when simulating 5,120 elements of flows around a cylinder. The preliminary implementation has had problems with speed, which has been half that of programs written in FORTRAN. At present, we are working to improve performance by reviewing the object design.
For demonstration at SC'97, we developed a simple 2-D visualizing system to construct an environment allowing simultaneous computation and visualization (Fig. 1). By this, phenomena can be tracked with interactive computing in simulations involving 5,000 or so nodes.
Currently, we are conducting R&D on a seamless parallel distributed system using a next-generation LAN. One of the objectives of this study is to provide users with supercomputer-level computing resources by integrating existing PC and/or workstations in laboratories and offices for use by parallel computing. This system will make "personal supercomputing" possible, thus making huge computing resources available to users. Such systems offer a workstation-like interface as well as powerful computing resources. Because CFD computation is computing-intensive, supercomputers have usually been used so far, and computing and visualization of computing have been handled separately. In contrast, the "personal supercomputer system" offers high performance computing and interactive visualization simultaneously. The demonstrations at SC'97 aimed at showing the performance of PC Clusters and marked the first step toward the realization of "personal supercomputing".
While the current system only supports 2-D visualization, simulations are also expected in 3 dimensions. We plan to make this more practical by adding a 3-D visualization system and preprocessing programs such as a mesh generating section.