FortranCon 2025: Precision-Agnostic BLAS/LAPACK and Modern Linear Algebra API
November 3, 2025 · View on GitHub
Presentation Materials and Examples
Authors: F. Perini, J. Vandenplas, J. Alvesz, O. Certik
Abstract
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.
Repository Structure
.
├── 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
Benchmarks
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.
Presentation
The main presentation is located in presentation/FedericoPerini_PrecisionAgnostic_BLAS_LAPACK.pptx (19 slides). Code snippet images and slide generation scripts are in snippets/.
Repository Statistics
The media/stars/ directory contains scripts for generating repository visualizations. See media/stars/README.md.
Related Links
License
Examples and documentation in this repository are provided under the MIT License unless otherwise specified.
Contact
For questions or discussions about this presentation:
- Open an issue in this repository
- Join the Fortran-lang discourse: https://fortran-lang.discourse.group/