Parallelization Of A Multi-blocked, Multi-threaded General CFD Code For Heat Transfer Analysis
Free (open access)
R. Jia & B. Sundén
Parallelization of a multi-blocked multi- threaded general CFD code for heat transfer analysis R. Jia & B. Sunden Division of Heat transfer, Lund Institute of Technology, PO Box 118, 221 00 Lund, Sweden Abstract This article reports on a parallel implementation of a general 3D multi-block CFD code. The parallelization is achieved by using three strategies. Firstly, it is done on dual-processor PC-clusters where Windows NT systems are running. A multi-thread programming model is adopted for the multi-block code, where one thread corresponds to a block. Shared memory is used for the exchange of inner-boundaries between neighboring blocks (threads) on the same node, while WinSockets are employed for those on different nodes. Secondly, the parallelization is extended to UNIX operating system. MPI is applied for all the message passing between different processors, including those on the same node. Thirdly, Pthreads (POSIX threads), a standardized application interface for threads, are adopted to take the advantage of the shared-memory feature of the SMP nodes, while MPI is only applied for the message passing between processors on different nodes. In all the strategies, a static load-balancing method is employed for equitable distribution of computational work to specified nodes. An example of turbulent heat transfer and fluid flow in a 3D straight channel is provided to show the speedup of the parallel calculation. Detailed comparison is made to evaluate the efficiency of different strategies.