Abstract
Effectively implementing scientific algorithms in distributed memory parallel applications is a difficult task for domain scientists, as evident by the large number of domain-specific languages and libraries available today attempting to facilitate the process. However, they usually provide a closed set of parallel patterns and are not open for extension without vast modifications to the underlying system. In this work, we present the AllScale API, a programming interface for developing distributed memory parallel applications with the ease of shared memory programming models. The AllScale API is closed for a modification but open for an extension, allowing new user-defined parallel patterns and data structures to be implemented based on existing core primitives and therefore fully supported in the AllScale framework. Focusing on high-level functionality directly offered to application developers, we present the design advantages of such an API design, detail some of its specifications and evaluate it using three real-world use cases. Our results show that AllScale decreases the complexity of implementing scientific applications for distributed memory while attaining comparable or higher performance compared to MPI reference implementations.
Keywords
- API
- programming interface
- parallel programming
- shared memory
- distributed memory
- parallel operator
- data structure
MSC
68-W10
Cite this article
@article{cai-5333,
author = {Philipp Gschwandtner and Herbert Jordan and Peter Thoman and Thomas Fahringer},
title = {AllScale API},
journal = {Computing and Informatics},
volume = {39},
number = {4},
pages = {808--837},
year = {2020},
issn = {1335-9150},
doi = {10.31577/cai_2020_4_808}
}
TY - JOUR AU - Philipp Gschwandtner AU - Herbert Jordan AU - Peter Thoman AU - Thomas Fahringer TI - AllScale API JO - Computing and Informatics VL - 39 IS - 4 SP - 808 EP - 837 PY - 2020 SN - 1335-9150 DO - 10.31577/cai_2020_4_808 UR - https://doi.org/10.31577/cai_2020_4_808 KW - API KW - programming interface KW - parallel programming KW - shared memory KW - distributed memory KW - parallel operator KW - data structure ER -
Gschwandtner, P., Jordan, H., Thoman, P., & Fahringer, T. (2020). AllScale API. Computing and Informatics, 39(4), 808–837. https://doi.org/10.31577/cai_2020_4_808