Presentation Materials and Examples
Authors: F. Perini, J. Vandenplas, J. Alvesz, O. Certik
Modern scientific workloads demand linear-algebra kernels that are both performant and expressive. We present the new precision-agnostic BLAS and LAPACK layer being upstreamed to the Fortran Standard Library (stdlib). The reference codes have been fully modernized and templated, delivering real and complex arithmetic in 32-, 64-, 80- and 128-bit kinds, and supporting the 64-bit integer interface to scale past two-billion-element arrays and support vendor-optimised back-ends. With one macro, the whole interface can run with either our agnostic backend or any optimized third-party library (OpenBLAS, MKL, Accelerate, etc.)
Built on these kernels, we provide a NumPy/SciPy-style API that retains Fortran's zero-overhead semantics: pure functions, allocation-free subroutines and intuitive operators for determinants, inverses, factorizations and other advanced solvers. A lightweight state handler offers optional, zero-cost error handling suitable for both scripting-style and HPC codes.
The talk will cover design challenges, templating strategy, one-macro integration and head-to-head performance against Python front-ends, and highlights current community contributions and roadmap items. Attendees will learn how to adopt, extend and benchmark this next-generation Fortran linear-algebra stack, positioning stdlib as an everyday alternative to established numerical platforms.
.
├── benchmarks/ # Performance comparisons (PolyBench-based)
│ ├── solve/ # Linear system solver: Fortran stdlib vs NumPy
│ ├── BDF/ # BDF coefficient computation (quadruple precision)
│ └── stdlib128/ # Custom stdlib with real128 support
├── snippets/ # Presentation slide generation scripts
├── presentation/ # PowerPoint presentation (PPTX)
├── media/ # Visualizations and repository statistics
│ └── stars/ # Star history and activity plots
├── CLAUDE.md # Repository maintenance guidelines
└── README.md # This file
Performance comparisons demonstrating stdlib_linalg performance with multiple backends:
- solve: Linear system solver (Ax=b) - Fortran stdlib vs NumPy with internal/Accelerate/OpenBLAS
- BDF: Backward Differentiation Formula coefficients in quadruple precision
All Fortran benchmarks use FPM (Fortran Package Manager) with build profiles for backend selection. See subdirectory READMEs for details.
The main presentation is located in presentation/FedericoPerini_PrecisionAgnostic_BLAS_LAPACK.pptx (19 slides). Code snippet images and slide generation scripts are in snippets/.
The media/stars/ directory contains scripts for generating repository visualizations. See media/stars/README.md.
Examples and documentation in this repository are provided under the MIT License unless otherwise specified.
For questions or discussions about this presentation:
- Open an issue in this repository
- Join the Fortran-lang discourse: https://fortran-lang.discourse.group/