Parallelization of a multiblock flow code: an engineering implementation
暂无分享,去创建一个
Abstract Current trends in computer hardware are dictating a gradual shift toward the use of clusters of relatively inexpensive but powerful workstations, or massively parallel processing (MPP) machines, for scientific computing. However, most computational fluid dynamics (CFD) codes in use today were developed for large, shared-memory machines and are not readily portable to the distributed computing environment. One major hurdle in porting CFD codes to distributed computing platforms is the difficulty encountered in partitioning the problem so that the computation-to-communication ratio for each compute node (process) is maximized and the idle time during which one node waits for other nodes to transfer data is minimized. In the present work, pertinent issues involved in the parallelization of a widely used multiblock Navier–Stokes code TLNS3D are discussed. An engineering approach is used here to parallelize this code so that minimal deviation from the original (nonparallel) code is incurred. A natural partitioning along grid blocks is adopted in which one or more blocks are distributed to each of the available nodes. An automatic, static load-balancing strategy is employed for equitable distribution of computational work to specified nodes. Both parallel virtual machine (PVM) and message passing interface (MPI) protocols are incorporated for data communication to allow maximum portability to a wide range of computer configurations. Results are presented that are comparable with a priori estimates of performance for distributed computing and that are competitive in terms of central processing unit (CPU) time and wall time usage with large, shared-memory supercomputers.
[1] Edward B. Parlette,et al. Development of a flexible and efficient multigrid-based multiblock flow solver; aiaa-93-0677 , 1993 .
[2] Message P Forum,et al. MPI: A Message-Passing Interface Standard , 1994 .