Time: 14:20 - 14:40 As part of the software track of this conference, I would like to give an overview of the goals, functionality, and design principles of p4est. p4est is a free software library for managing adaptive... [ view full abstract ]
Time: 14:20 - 14:40
As part of the software track of this conference, I would like to give an overview of the goals, functionality, and design principles of p4est. p4est is a free software library for managing adaptive meshes using distributed parallelism. This means that all mesh data is strictly divided between the parallel processes and global metadata replication is minimized. In combination with dedicated algorithms to create, adapt, partition, and interrogate an adaptive mesh, this enables scalability to the largest supercomputers available. p4est is used in many applications and fields throughout scientific computing.
p4est is developed on top of the MPI standard for message passing. It is a fairly strict representative of the two time-tested philophies ``Do one thing and do it well'' and ``keep it simple, stupid.'' It encapsulates all message passing for communication of mesh elements and partition markers, where mesh changes are alike MPI collective calls, some read-only accesses are formalized and some are not. While different opinions exist on the stylishness of its C-only, rudimentary object-based interface, its authors like its modularity and portability. From what we hear, p4est behaves exactly as advertised and is generally stable, reliable, and solves the problems it is meant to solve.
I believe I am not saying too much when mentioning that Hans Petter was appreciative of the algorithmic design and capabilities of the software. While we did not directly work together, I am thankful for our conversations. It is good that different styles proliferate in scientific software, and we hope to contribute one example that performs a critical function while doing most of its work unnoticed in the background.