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
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.