Fortran interface for DLA-Future, a task-based linear algebra library providing GPU-enabled distributed eigensolver.
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
)
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()
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"
}
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