Skip to content

Interfaces and wrappers: BLAS #450

Open
@awvwgk

Description

@awvwgk

Description

To support linear algebra operations we want to have interfaces/wrappers for BLAS and LAPACK, maybe even to BLACS, PBLAS and ScaLAPACK at some point. Before we start working on a high-level API, there are additional stages to consider. For this issue I want to focus on BLAS only, because the size of the problem is much more limited than the other linear algebra libraries and we can flesh out the workflow

  1. How to include BLAS in stdlib?
    • building (reference) BLAS from source with fpm and/or CMake sounds like a bad idea (performance), but might be a fallback
    • linking against system BLAS and optimized BLAS libraries like MKL or OpenBLAS
  2. How due we provide the BLAS functionality?
    • interface modules like BLAS95 are available
    • do we reproduce the actual reference BLAS interface (doesn't include intent in the dummy arguments)
    • do we overload the names to drop the s/d/c/z prefixes
    • are the interfaces part of stdlib or bundled from a separate project
  3. How do we abstract the operations available in BLAS?
    • how many layers of abstractions do we want?
    • just simple wrapper to infer dimensions
    • overloaded operators

Metadata

Metadata

Assignees

No one assigned

    Labels

    ideaProposition of an idea and opening an issue to discuss ittopic: mathematicslinear algebra, sparse matrices, special functions, FFT, random numbers, statistics, ...

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions