Micro Partitioning: Friendly to the Hardware and the Developer
Modern hardware’s complexity has made studying hardware-conscious algorithms a relevant topic for many years. Partitioning algorithms, for instance, break data into bits that fit into fast CPU caches. Unfortunately, they are often challenging to design, develop, and maintain. While hardware-oblivious algorithms are easier to build, they may perform poorly when hardware or data deviate from expectations.
In this paper, we introduce micro partitioning, which enhances the partitioning problem in a way that outperforms state-of-the-art solutions while being hardware-agnostic. By storing tuples in a tight address space, micro partitioning creates an access pattern that is friendly to both caches and translation lookaside buffers. We also show how micro partitioning interacts with task-based execution strategies in a symbiotic way, making micro partitioning intuitive to express for developers.
- Published in:
DaMoN '23: Proceedings of the 19th International Workshop on Data Management on New Hardware - Type:
Inproceedings - Authors:
Mühlig, Jan; Teubner, Jens - Year:
2023 - Source:
https://dl.acm.org/doi/10.1145/3592980.3595310
Citation information
Mühlig, Jan; Teubner, Jens: Micro Partitioning: Friendly to the Hardware and the Developer, DaMoN '23: Proceedings of the 19th International Workshop on Data Management on New Hardware, 2023, https://dl.acm.org/doi/10.1145/3592980.3595310, Muehlig.Teubner.2023a,
@Inproceedings{Muehlig.Teubner.2023a,
author={Mühlig, Jan; Teubner, Jens},
title={Micro Partitioning: Friendly to the Hardware and the Developer},
booktitle={DaMoN '23: Proceedings of the 19th International Workshop on Data Management on New Hardware},
url={https://dl.acm.org/doi/10.1145/3592980.3595310},
year={2023},
abstract={Modern hardware’s complexity has made studying hardware-conscious algorithms a relevant topic for many years. Partitioning algorithms, for instance, break data into bits that fit into fast CPU caches. Unfortunately, they are often challenging to design, develop, and maintain. While hardware-oblivious algorithms are easier to build, they may perform poorly when hardware or data deviate from...}}