Task-Based Parallel Strategies for CFD Application in Heterogeneous CPU/GPU Resources
Institute of Informatics, Federal University of Rio Grande do Sul – UFRGS, Porto, Alegre, Brazil
Concurrency and Computation Practice and Experience, 2020
DOI:10.1002/cpe.5772
@article{nesi2020task,
title={Task-Based Parallel Strategies for CFD Application in Heterogeneous CPU/GPU Resources},
author={Nesi, Lucas Leandro and Serpa, Matheus S and Schnorr, Lucas Mello and Navaux, Philippe Olivier Alexandre},
year={2020}
}
Parallel applications executing in contemporary heterogeneous clusters are complex to code and optimize. The task-based programming model is an alternative to handle the coding complexity. This model consists of splitting the problem domain into tasks with dependencies through a directed acyclic graph, and submit the set of tasks to a runtime scheduler that maps each task dynamically to resources. We consider that Computational Fluid Dynamics applications are typical in scientific computing but not enough exploited by designs that employ the task-based programming model. This article presents task-based parallel strategies for a simple CFD application that targets heterogeneous multi-CPU/multi-GPU computing resources. We design, develop, evaluate and compare the performance of three parallel strategies (naive, ghost-cells, and arrow) of a task-based heterogeneous (CPU and GPU) application that simulates the flow of an incompressible Newtonian fluid with constant viscosity. All implementations rely on the StarPU runtime, and we use the StarVZ toolkit to conduct comprehensive performance analysis. Results indicate that the ghost cell strategy provides the best speedup (77×) considering the simulation time when the GPU resources still have available memory. However, the arrow strategy achieves better results when the simulation data increases.
May 17, 2020 by hgpu