Skip to content

eth-cscs/DLA-Future

Repository files navigation

zenodo pipeline status codecov

Distributed Linear Algebra from the Future

Getting started with DLAF

Build

See BUILD.md.

Link your program/library with DLAF

Using DLAF in a CMake project is extremely easy!

In the following, the variable DLAF_INSTALL_PREFIX is set to where DLAF is installed. In case you used spack for installing DLAF, you can easily set it with:

export DLAF_INSTALL_PREFIX=`spack location -i dla-future`

Then, you can configure your project with one of the following:

# By appending the value to the CMAKE_INSTALL_PREFIX
cmake -DCMAKE_INSTALL_PREFIX=${DLAF_INSTALL_PREFIX} ..

# ... or by setting DLAF_DIR
cmake -DDLAF_DIR="$DLAF_INSTALL_PREFIX/lib/cmake" ..

Then, it is just as simple as adding these directives in your CMakeLists.txt:

find_package(DLAF)
# ... and then for your executable/library target
target_link_libraries(<your_target> PRIVATE DLAF::DLAF)

Documentation

See DOCUMENTATION.md for the documentation of older versions, or for the instructions to build it.

Citing

If you are using DLA-Future, please cite the following paper in addition to this 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 DLAF library would not be possible without support of the following organizations (in alphabetic order):

CINECA: Cineca Consorzio Interuniversitario
CSCS: Swiss National Supercomputing Centre
ETH Zurich: Swiss Federal Institute of Technology Zurich
PASC: Platform for Advanced Scientific Computing
PRACE: Partnership for Advanced Computing in Europe
As part of IP6 WP8