Hello Fortran Discourse readers,
I’m initiating this thread to gather your thoughts and insights on the upcoming task of integrating linear algebra operations into stdlib. Here are the key developments we’d like to introduce:
-
Accessible Interfaces for Common Linear Algebra Operations:
- We want stdlib to handle linear algebra tasks efficiently by leveraging libraries like BLAS, LAPACK, and SCALAPACK. The goal is to create a user-friendly interface, inspired by the syntax of libraries like scipy, while also providing an expert interface with fine-tuning options (e.g. stored in derived types).
- We’re debating whether to develop our own Modernized BLAS/LAPACK at fortran-lang or automate the download process from netlib. I believe maintaining our own modernized version would avoid us to stumble on the same problems scipy is having with old F77 code down the road, and give the world a reference Modern Fortran implementation for the next 50 years; however, it is also a pretty intimidating amount of work. Also, hardware-tuned custom BLAS/LAPACK implementations are blooming, so, I’m not sure it would be all time well spent. Your input on this decision would be valuable.
-
Support for Common IO Formats for Matrices and Tensors:
- The aim is to support serialization/deserialization and conversion among formats like NPZ and matrixmarket for multidimensional arrays. We also plan to provide an easily extendable API for plugins, accommodating other formats outside the stdlib scope.
- We’re considering the development of derived types to store temporary information beyond matrix data, optimizing performance during repeated algebraic operations.
We’re keen to receive your feedback, ideas, and criticisms to ensure we will give stdlib the best, most practical and effective linear algebra API that will make people move away from other languages in favor of Fortran! Please share your thoughts on this page, and let’s work together on this task.
Thank you,
Federico