Prof. Paul R. Woodward
University of Minnesota
Laboratory for Computational Science & Engineering

From Vectors to RISC - New Practices and Experiences
Over the last several years the most powerful computing systems available in the United States have become exclusively based upon RISC microprocessors designed for use by a large commercial market consisting only in part of scientific computation. These microprocessors, despite their pipelined RISC functional units, have been optimized for the execution of code containing frequent branches that operates on small data contexts that can be held in off-chip cache memories of at most a few MB. These microprocessors have been integrated into multiprocessor systems supporting the same shared memory programming model that was offered by the multiprocessor vector machines that preceded them. In the very most powerful configurations available, many of these shared memory multiprocessor machines (SMPs) are brought together in an SMP cluster.
The new programming techniques that these powerful and cost- effective new machines require will be discussed within the context of computational fluid dynamics. Direct performance comparisons for vector and scalar implementations of the same algorithms indicate that once codes are restructured for the new architectures, performance, and most certainly price/performance, is outstanding. The shared memory programming paradigm supported by individual SMPs permits straightforward and highly efficient dynamic load balancing between the individual CPUs. This in turn permits powerful, fully scalar numerical algorithms to be used that could not have been seriously contemplated on the vector machines of the past. Techniques for extending this shared memory programming style to an entire cluster of SMPs will be discussed and examples given. If rather modest cluster network bandwidth (not latency) requirements are met, this hierarchical shared memory programming approach can yield many benefits, including some that one might not have expected. Although these techniques and experiences come from the domain of computational fluid dynamics, arguments that they should apply much more generally will be given.