arXiv · 1505.04633
Flexible, Scalable Mesh and Data Management using PETSc DMPlex
Abstract
Designing a scientific software stack to meet the needs of the next-generation of mesh-based simulation demands, not only scalable and efficient mesh and data management on a wide range of platforms, but also an abstraction layer that makes it useful for a wide range of application codes. Common utility tasks, such as file I/O, mesh distribution, and work partitioning, should be delegated to external libraries in order to promote code re-use, extensibility and software interoperability. In this paper we demonstrate the use of PETSc's DMPlex data management API to perform mesh input and domain partitioning in Fluidity, a large scale CFD application. We demonstrate that raising the level of abstraction adds new functionality to the application code, such as support for additional mesh file formats and mesh re- ordering, while improving simulation startup cost through more efficient mesh distribution. Moreover, the separation of concerns accomplished through this interface shifts critical performance and interoperability issues, such as scalable I/O and file format support, to a widely used and supported open source community library, improving the sustainability, performance, and functionality of Fluidity.
Explore related subjects
Keep this discovery
Michael Lange, Matthew G. Knepley, Gerard J. Gorman. 2015-05-18. Flexible, Scalable Mesh and Data Management using PETSc DMPlex. https://arxiv.org/abs/1505.04633
Cite the original work for its findings. Save a collection to share your selection of sources.