AL4SAN stands for an Abstraction Layer library For Standardizing APIs of task-based eNgines. AL4SAN is designed as a lightweight software library, which provides a collection of APIs to unify the expression of tasks and their data dependencies from existing dynamic engines. AL4SAN supports various dynamic runtime systems relying on compiler infrastructure technology and on library-defined APIs. It features an abstraction of task-based engines and, therefore, enables a single-code application to assess various runtimes and their respective scheduling components, while further leveraging the user-obliviousness of the underlying complex hardware configurations.
This abstraction paradigm improves user productivity by facilitating the design of high performance algorithms on different type of architectures: shared-memory systems, GPU-based nodes, distributed-memory hardware configurations, etc.
To use latest development of AL4SAN, please clone the master
branch. Note that AL4SAN contains a git submodule al4san_cmake.
To get sources please use these commands:
git clone https://github.com/ecrc/al4san
cd al4san
git submodule update --recursive --init
AL4SAN uses CMake as a build generator, you need to call cmake
in order to create the Makefiles
You can get quark from our fork https://github.com/ecrc/quark
git clone https://github.com/ecrc/quark
cd quark
git checkout switchruntime
make
make install prefix=<quark-installation-prefix>
# AL4SAN
cd al4san
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=<install-prefix> -DAL4SAN_SCHED_QUARK=ON -DQUARK_INCDIR=<quark-install-prefix>/include -DQUARK_LIBDIR=<quark-install-prefix>/lib -DAL4SAN_ENABLE_EXAMPLE=ON
make
make test
make install
# AL4SAN
cd al4san
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=<install-prefix> -DAL4SAN_SCHED_STARPU=ON -DAL4SAN_ENABLE_CUDA=OFF -DAL4SAN_USE_CUDA=OFF
make
make install
You can get PaRSEC from https://bitbucket.org/icldistcomp/parsec
# AL4SAN
cd al4san
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=<install-prefix> -DAL4SAN_SCHED_PARSEC=ON -DAL4SAN_USE_MPI=ON
make
make install
# LLVM
export CC=clang
export CXX=clang++
export FC=flang
# AL4SAN
cd al4san
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=<install-prefix> -DAL4SAN_SCHED_OPENMP=ON -DAL4SAN_ENABLE_EXAMPLE=ON
make
make test
make install
-
AL4SAN: Abstraction Layer For Standardizing APIs of Task-Based Engines, R. Alomairy, H. Ltaief, M. Abduljabbar & D. Keyes. IEEE Transactions on Parallel and Distributed Systems, vol. 31, no. 11, pp. 2482-2495, 1 Nov. 2020, doi: 10.1109/TPDS.2020.2992923.
-
AL4SAN: Abstraction Layer For Standardizing APIs of Task-Based Engines, R. Alomairy, H. Ltaief, M. Abduljabbar & D. Keyes. Poster at ISC High Performance conference, 2020. Available at: https://www.youtube.com/watch?v=xgrQT-igXp8
The authors would like to thank Yu Pei from Innovative Computing Laboratory at University of Tennessee for his helping to extend AL4SAN to support PaRSEC (DTD) runtime system in shared- and distributed- memory system.
Rabab Alomairy: rabab.omairy@kaust.edu.sa
Hatem Ltaief: hatem.ltaief@kaust.edu.sa
Mustafa Abduljabbar: mustafa.abduljabbar@kaust.edu.sa