HiPC International Conference On High Performance Computing
About HiPC Steering Committee Sponsors Archive Home HiPC 2003 Home
         
     
HiPC 2003 - Bangalore, India - December 17-20
Charminar
Advance Program
Program Highlights
Author Resources
Workshops
Tutorials
Poster/Presentation Session
Information for India-Based Participants
Travel and Local Information
Accommodation
Sight Seeing Tour
Conference Organization
Call for Papers
Registration
 
 

Tutorials

9 :0 0 a m - 1 :0 0 p m
TUTORIAL III
Very High Performance Cache Based Techniques for Iterative Methods
Craig C. Douglas
University of Kentucky and Yale University

Audience: This tutorial will be of value to programmers (e.g., C, C++, and Fortran) interested in learning how to exploit memory caches to get a significant speedup without waiting for the next generation of hardware to be purchased in order to solve large systems of equations associated with numerical linear algebra and/or the solution of partial differential equations arising in typical computational science applications requiring very high performance computing.

Course Description: This is a completely self contained tutorial on how to get very high performance in a portable and robust manner that exploits features in cache memories. At one time high performance codes measured floating point multiplies to determine how fast a code would run. On realistic computers today, the number of cache misses almost completely determines the speed of a code. Minimizing cache misses and re-using data effectively with a minimal number of parameters to model caches will be covered in this tutorial. Methods that produce bitwise the same computed results will also be covered.

The tutorial will cover hardware basics, sophisticated profiling, programming techniques to use hardware effectively (and outsmart overly helpful compilers designed to make web servers and database programs run fast), and cache aware software libraries developed at the University of Kentucky, Yale, Sandia, and the University of Erlangen.

This tutorial was developed jointly by Craig Douglas, Ulrich Ruede (Erlangen), Markus Korwarschik (Erlangen), and Jonathan Hu (Sandia National Laboratories).

Lecturer: Dr. Douglas is a professor in the computer science and mechanical engineering departments and associate director of the Center for Computational Sciences at the University of Kentucky. He is also a senior research scientist in the computer science department at Yale University. He commutes weekly between to the two universities. Dr. Douglas has also been a faculty member at Duke University, a research staff member in the mathematical sciences department at IBM’s Thomas J. Watson Research Center (Yorktown Heights, NY location), and co-director of the parallel algorithms group at CERFACS (Toulouse, France). He has also been a visiting professor at the Johannes Kepler University-Linz (Austria) and the University of Pavia (Italy). Dr. Douglas is the founder and managing editor of www.MGNet.org, the primary source of information on the web about multigrid methods. He is also an expert in dynamic dat-driven application simulation (see www.DDDAS.org). Dr. Douglas holds a Ph.D. in computer science from Yale University and an A.B in mathematics from the University of Chicago.