"Parallel CFD at Lewis Research Center: what worked and what didn't"
Is it always worthwhile to parallelize a code? Computational fluid dynamics (CFD) is used to numerically simulate fluid flow, which, at the NASA Lewis Research Center, generally entails simulating the flow of air through the engine of an airplane or one component thereof (such as the blade rows of the compressor). This is a computationally expensive problem which can easily take hours, even days, of Cray time. Thus, with the advent of portable and relatively easy to use message passing libraries such as PVM, many researchers promptly jumped on the parallel computing bandwagon. Some of the resulting parallel codes have been a great success. Some haven't. This talk will examine a few typical Lewis codes to try to determine what has contributed to their success or lack thereof, and what issues and challenges the researchers face as they continue to work to improve their code's performance.
Topics to be discussed include parallelization strategies, load balancing issues, portability problems, and PVM version control problems (including dealing with the myriad PVM versions as well as commercial implementations such as PVMe, PVM/6000, and Cray PVM). What do researchers, who often do not have a computer science background, like about PVM and what would they like to see change? How do alternative message passing libraries like MPI fit in to the picture? Is it worth it to spend six months parallelizing a code to run on a workstation cluster in the hopes that it will do at least as good as a single node of a Cray YMP? This talk aims to give an overview of these issues which face CFD researchers at NASA Lewis.Lecture slides in PostScript format. Full paper in PostScript format.