|
Prof. Paul R. Woodward University of Minnesota Laboratory for Computational Science & Engineering | 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. |