Skip to content

perazz/fortran-lapack-examples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FortranCon 2025: Precision-Agnostic BLAS/LAPACK and Modern Linear Algebra API

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:

About

Modern Fortran Linear Algebra API: Tests and Examples for FortranCon 2025

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages