Partial Reconfiguration of Flux Limiter Functions in MUSCL Scheme Using FPGA

Mohamad Sofian ABU TALIP  Takayuki AKAMINE  Yasunori OSANA  Naoyuki FUJITA  Hideharu AMANO  

IEICE TRANSACTIONS on Information and Systems   Vol.E95-D   No.10   pp.2369-2376
Publication Date: 2012/10/01
Online ISSN: 1745-1361
DOI: 10.1587/transinf.E95.D.2369
Print ISSN: 0916-8532
Type of Manuscript: PAPER
Category: Computer System
computational fluid dynamics (CFD),  field programmable gate array (FPGA),  scientific computations,  reconfigurable hardware,  partial reconfiguration,  

Full Text: PDF(676.8KB)>>
Buy this Article

Computational Fluid Dynamics (CFD) is used as a common design tool in the aerospace industry. UPACS, a package for CFD, is convenient for users, since a customized simulator can be built just by selecting desired functions. The problem is its computation speed, which is difficult to enhance by using the clusters due to its complex memory access patterns. As an economical solution, accelerators using FPGAs are hopeful candidate. However, the total scale of UPACS is too large to be implemented on small numbers of FPGAs. For cost efficient implementation, partial reconfiguration which dynamically loads only required functions is proposed in this paper. Here, the MUSCL scheme, which is used frequently in UPACS, is selected as a target. Partial reconfiguration is applied to the flux limiter functions (FLF) in MUSCL. Four FLFs are implemented for Turbulence MUSCL (TMUSCL) and eight FLFs are for Convection MUSCL (CMUSCL). All FLFs are developed independently and separated from the top MUSCL module. At start-up, only required FLFs are selected and deployed in the system without interfering the other modules. This implementation has successfully reduced the resource utilization by 44% to 63%. Total power consumption also reduced by 33%. Configuration speed is improved by 34-times faster as compared to full reconfiguration method. All implemented functions achieved at least 17 times speed-up performance compared with the software implementation.