KAUST DepartmentComputer Science (CS), King Abdullah University of Science and Technology KAUST, Thuwal, Makkah Saudi Arabia
Extreme Computing Research Center
Computer Science Program
Applied Mathematics and Computational Science Program
Computer, Electrical and Mathematical Sciences and Engineering (CEMSE) Division
Office of the President
Permanent link to this recordhttp://hdl.handle.net/10754/656693
MetadataShow full item record
AbstractWe introduce AL4SAN, a lightweight library for abstracting the APIs of task-based runtime engines. AL4SAN unifies the expression of tasks and their data dependencies. It supports various dynamic runtime systems relying on compiler technology and user-defined APIs. It enables a single application to employ different runtimes and their respective scheduling components, while providing user-obliviousness to the underlying hardware configurations. AL4SAN exposes common front-end APIs and connects to different back-end runtimes. Experiments on performance and overhead assessments are reported on various shared- and distributed-memory systems, possibly equipped with hardware accelerators. A range of workloads, from compute-bound to memory-bound regimes, are employed as proxies for current scientific applications. The low overhead (less than 10%) achieved using a variety of workloads enables AL4SAN to be deployed for fast development of task-based numerical algorithms. More interestingly, AL4SAN enables runtime interoperability by switching runtimes at runtime. Blending runtime systems permits to achieve a twofold speedup on a task-based generalized symmetric eigenvalue solver, relative to state-of-the-art implementations. The ultimate goal of AL4SAN is not to create a new runtime, but to strengthen co-design of existing runtimes/applications, while facilitating user productivity and code portability. The code of AL4SAN is freely available at https://github.com/ecrc/al4san, with extensions in progress.
CitationAlomairy, R. M., Ltaief, H., Abduljabbar, M., & Keyes, D. (2020). Abstraction Layer For Standardizing APIs of Task-Based Engines. IEEE Transactions on Parallel and Distributed Systems, 1–1. doi:10.1109/tpds.2020.2992923
SponsorsThe authors would like to thank Kadir Akbudak from ECRC at King Abdullah University of Science and Technology (KAUST) and Mathieu Faverge and Florent Pruvost from INRIA Bordeaux for their support toward integrating AL4SAN into the HiCMA and Chameleon libraries, respectively. The authors would like also to thank Cray Inc. and Intel in the context of the Cray Center of Excellence and Intel Parallel Computing Center awarded to ECRC at KAUST. For computer time, this research used Shaheen-2 supercomputer hosted at the Supercomputing Laboratory at KAUST.
The following license files are associated with this item:
Except where otherwise noted, this item's license is described as (c) 2020 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other users, including reprinting/ republishing this material for advertising or promotional purposes, creating new collective works for resale or redistribution to servers or lists, or reuse of any copyrighted components of this work in other works.