Discussion topic: Software should not try to be self-contained, but build on existing libraries.
Brief description of issue/challenge:
The vast majority of software in the applied sciences is built from scratch: it implements linear algebra, parallelization, threading, etc on the most basic set of primitives provided by the operating system of programming language. This is despite the availability of packages that provide all of this in quality implementations that are vastly better in general, faster, support a broader range of hardware, and more importantly are supported and maintain by others who know their area.
My thesis is that we would have software that is much easier to maintain, port, and document if we built on these existing libraries, rather than trying to reinvent the wheel in each of these applications software packages.
Lead/moderator: Wolfgang Bangerth
Links to resources: TBD, but essentially the websites of many foundational software packages and libraries in the computational sciences (e.g., BLAS, LAPACK, PETSc, Trilinos, deal.II, libMesh, FEniCS, numpy, Threading Building Blocks, etc).
Discussion topic: Software should not try to be self-contained, but build on existing libraries.
Brief description of issue/challenge: The vast majority of software in the applied sciences is built from scratch: it implements linear algebra, parallelization, threading, etc on the most basic set of primitives provided by the operating system of programming language. This is despite the availability of packages that provide all of this in quality implementations that are vastly better in general, faster, support a broader range of hardware, and more importantly are supported and maintain by others who know their area.
My thesis is that we would have software that is much easier to maintain, port, and document if we built on these existing libraries, rather than trying to reinvent the wheel in each of these applications software packages.
Lead/moderator: Wolfgang Bangerth
Links to resources: TBD, but essentially the websites of many foundational software packages and libraries in the computational sciences (e.g., BLAS, LAPACK, PETSc, Trilinos, deal.II, libMesh, FEniCS, numpy, Threading Building Blocks, etc).