Research Fellow  |  Lee, PeiZong  
Research Descriptions

        My research interests are in compilers for scientific applications, parallel algorithm design, computer architectures, and the interplay among architectures, algorithms, and compilers. The design of parallel architectures represents cost-effective trade-offs. A general purpose machine requires complex interconnection networks, multilevel memory hierarchies, powerful control units, and optimized schemes for the allocation of machine resources. In contrast, to solve a class of problems from an application domain, or to share a common mathematical structure, it may be possible to design a special purpose machine with elementary interconnecting networks and elementary control units. Such a machine may also be able to solve this class of problems faster.

        In the context of parallel algorithms, several paradigms and techniques, such as divide and conquer, dynamic programming, domain decomposition, and program transformation, have been studied. By using these paradigms, it is possible to design efficient parallel algorithms, at least in theory. Their practical utilization requires appropriate architectural and software support, techniques for proving the correctness and efficiency of implementation, and suitable programming environments.

        The design of parallel architectures influences the design of parallel algorithms, and vice versa. Compilers act as bridges connecting algorithms and architectures. I am interested in studying this interdependence. I have studied various compilation issues on regular parallel architectures, focusing on formal techniques, simulations, and the development of programming environments. The results obtained can be used both to compile algorithms on such regular parallel architectures and to study the importance of various architectural features. Current work has extended this approach to the compilation of large scientific applications for modern general-purpose regular architectures.

        I am currently also participating in a scientific computation project, in which some colleagues and I have to conduct research into unstructured mesh generation; unstructured mesh partition; Euler equation and Navier- Stokes equation solvers for a numerical wind tunnel platform, an engine combustion platform for computing reactive flows; visualization; and the challenge of using MPI on workstation/PC clusters to accelerate irregular computation. One of my goals is to understand the techniques for compiling irregular computation.