Skip to content

eth-cscs/DLA-Future-Fortran

Repository files navigation

DLA-Future Fortran Interface

zenodo pipeline status

Fortran interface for DLA-Future, a task-based linear algebra library providing GPU-enabled distributed eigensolver.

Fortran API

The DLA-Future Fortran API provides the following functionality:

  • DLA-Future and pika initialization/finalization: dlaf_initialize/dlaf_finalize
  • Distributed grid creation/destruction: dlaf_create_grid_from_blacs/dlaf_free_grid
  • Cholesky decomposition: dlaf_pXpotrf (X=s,d,c,z)
  • Eigensolver for symmetric matrices: dlaf_pXsyevd (X=s,d)
  • Eigensolver for hermitian matrices: dlaf_pXheevd (X=c,z)
  • Generalised eigensolver for symmetric matrices: dlaf_pXsygvx (X=s,d)
  • Generalised eigensolver for hermitian matrices: dlaf_pXhegvx (X=c,z)

ScaLAPACK Drop-In

The Fortran API (as well as the ScaLAPACK-like C API) is designed as drop-in replacement for ScaLAPACK.

If you have a ScaLAPACK call in your code

call pzheevd(&
    'V', 'L', n, &
    a, 1, 1, desca, &
    w, z, 1, 1, descz, &
    work, lwork, rwork, lrwork, iwork, liwork, info &
)

you can easily use DLA-Future as a drop-in replacement as follows (given a BLACS context ictxt):

call dlaf_initialize()
call dlaf_create_grid_from_blacs(ictxt)
! ...
call dlaf_pzheevd(&
    'L', n, &
    a, 1, 1, desca, &
    w, z, 1, 1, descz, &
    info &
)
! ...
call dlaf_free_grid(ictxt)
call dlaf_finalize()

Citation

If you are using DLA-Future-Fortran, please cite the following conference paper in addition to this repository and the DLA-Future repository:

@InProceedings{10.1007/978-3-031-61763-8_13,
    author="Solc{\`a}, Raffaele
        and Simberg, Mikael
        and Meli, Rocco
        and Invernizzi, Alberto
        and Reverdell, Auriane
        and Biddiscombe, John",
    editor="Diehl, Patrick
        and Schuchart, Joseph
        and Valero-Lara, Pedro
        and Bosilca, George",
    title="DLA-Future: A Task-Based Linear Algebra Library Which Provides a GPU-Enabled Distributed Eigensolver",
    booktitle="Asynchronous Many-Task Systems and Applications",
    year="2024",
    publisher="Springer Nature Switzerland",
    address="Cham",
    pages="135--141",
    isbn="978-3-031-61763-8"
}

Acknowledgements

The development of DLA-Future-Fortran is supported by the following organizations:

  • CSCS: Swiss National Supercomputing Center
  • ETH Zurich: Swiss Federal Institute of Technology Zurich
  • PASC: Platform for Advanced Scientific Computing