Our faculty are Senior Fellows at the San Diego Supercomputer Center (SDSC) and also partners in NPACI, the NSF-funded National Partnership for Advanced Computational Infrastructure, led by SDSC. These connections give faculty access to a wide variety of machines at SDSC as well as to computational scientists and their challenging computing problems.
The Scientific Computation Group (SCG) investigates run-time software techniques aimed at reducing the development time of high-performance scientific applications. The group focuses on applications with special needs, including adaptive computations that employ elaborate, dynamic representations to enhance accuracy, improve running time, or both. The SCG has developed the KeLP software infrastructure to meet the needs of such applications. KeLP permits the programmer to exploit specific properties of an application in order to optimize data decompositions and data motion at run time. KeLP has been applied to a variety of scientific applications ranging from computational materials science to computational fluid dynamics.
More recently, the SCG is investigating multi-tier parallelism, in which multiple levels of parallelism exist within a single application. Multi-tier parallelism is appropriate for multicomputers comprising multiple symmetric multiprocessor nodes.
The programming abstractions explored by the SCG are vital not only
in eliminating non-essential detail (e.g., load balancing and locality
management), but also in protecting application software against inevitable
changes in hardware.
Currently, the GCL
is focusing on the development
of an adaptive scheduling methodology for metacomputing applications.
Recent work focuses on the development of adaptive agent-based application
schedulers (called "AppLeS" for Application-Level Scheduler). Each
AppLeS agent determines a customized application schedule for its application,
and executes the scheduled application on the underlying metacomputing
system. This research involves the development of system software
for scheduling, performance monitoring and prediction, and application
execution, as well as the development of models for predicting application
behavior in a dynamic environment. Research group members participate in
active collaborations with the developers of metacomputing infrastructure
environments, computational scientists, supercomputer center staff, and
others interested in high-performance metacomputing.
The Performance Programming Group is pursuing the goal of changing performance
programming from an art into a science. By hand-tuning specific scientific
codes, we gain insight into what methods that are effective. We study what
tools can make performance programming easier and to what extent the techniques
can be automated. Architectural support is another concern. The most elusive
goal is finding methods of developing programs that are truly portable
and truly high-performance.
Trends in both high level languages and machines have increased the gap between them, making the compiler's job of bridging this gap increasingly more challenging. For example, a major trend in machine architecture is towards a hierarchy of memory and parallelism.
We developed Hierarchical Tiling to simultaneously exploit such parallelism and locality. Hierarchical tiling extends traditional tiling to include optimization for storage and data movement. It has been used on perfectly nested loops with regular dependence structure to reduce cache misses, enhance interprocessor parallelism, and manage secondary storage, and to improve the use of superscalar pipelined and vector processors. Our current research will extend Hierarchical Tiling to obtain its advantages on a larger class of programs that include unstructured applications with less regular memory accesses. We are also looking at the compiler implications of multithreading and predicated execution capabilities on emerging architectures.
Scientific Computing also includes the development of parallel algorithms
and software for use in computational molecular biology. Problems such
as molecular structure prediction and protein-ligand docking require new
methods and high performance computing. Such methods include a new global
optimization algorithm which has been implemented on the SDSC CRAY T3E
to compute global minimum energy conformations of small protein molecules.