Speakers
Jeff Oishi
Keaton Burns
Description
Dedalus is an open-source library for solving partial differential equations using global spectral methods. These methods are well-suited to solving smooth PDEs, such as those describing fluid flows at low Mach-numbers, with very high accuracy. Dedalus is written in Python for ease-of-use and wraps C libraries such as FFTW and MPI for performance on large-scale HPC systems. The code has been used to study problems in a number of fields including astrophysics, oceanography, atmospheric science, biological fluid dynamics, and plasma physics. We plan to discuss our experiences developing Dedalus as an open-source tool and several issues we are currently facing, including:
- Designing for a balance between capability and maintainability
- Generalized equations and timestepping routines
- Automatic MPI parallelization
- Preventing “feature-creep”
- Using a high-level language for high-performance applications
- Python optimization
- Typed-Python via Cython
- Wrapping C libraries
- Balancing ease-of-installation with dependency-optimization
- Achieving high performance on laptops, desktops, and clusters
- Docker & conda distribution
- Supporting a user-base that is substantially larger than the developer-base
- Encouraging public posts to user groups / issue trackers
- Time spent on user support
- Dealing with citations, authorship, etc.