Building Community Codes From the Application and Library Developer Perspectives: Experiences with PFLOTRAN and PETSC
I will share some history, observations, and recommendations based on my experiences working on two community-driven, open-source scientific software projects: PETSc and PFLOTRAN. PETSc, the Portable, Extensible Toolkit for Scientific Computation, is a suite of data structures and routines for the s...
Main Author: | |
---|---|
Format: | Conference Object |
Language: | unknown |
Published: |
figshare
2021
|
Subjects: | |
Online Access: | https://dx.doi.org/10.6084/m9.figshare.14157278 https://figshare.com/articles/presentation/Untitled_Item/14157278 |
Summary: | I will share some history, observations, and recommendations based on my experiences working on two community-driven, open-source scientific software projects: PETSc and PFLOTRAN. PETSc, the Portable, Extensible Toolkit for Scientific Computation, is a suite of data structures and routines for the scalable (parallel) solution of problems arising in scientific applications, particularly those modeled with partial differential equations. It has thousands of users and has been used in over one hundred scientific application codes. PFLOTRAN is a code for simulating subsurface flow and reactive transport phenomena, and it relies extensively on the building blocks provided by the PETSc library. PFLOTRAN has an active user community that has employed it in applications as diverse as radionuclide fate and transport, geologic carbon sequestration, geothermal energy, permafrost dynamics, and terrestrial biogeochemistry. As a core developer of both PETSc and PFLOTRAN, I will share observations from both a library developer and user perspective about some of the aspects of building successful community-driven scientific software projects. I will also highlight how close interaction between the PETSc and PFLOTRAN development teams has led to advances in both code bases. This is a talk presented at the SIAM CSE21 conference, MS94+MS125: Building Sustainable Software Communities and Sustainable Software. |
---|