Aggregating Funnels for Faster Fetch&Add and Queues

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: Roh, Younghun, Wei, Yuanhao, Ruppert, Eric, Fatourou, Panagiota, Jayanti, Siddhartha, Shun, Julian
Natura: Preprint
Pubblicazione: 2024
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866916637797515264
author Roh, Younghun
Wei, Yuanhao
Ruppert, Eric
Fatourou, Panagiota
Jayanti, Siddhartha
Shun, Julian
author_facet Roh, Younghun
Wei, Yuanhao
Ruppert, Eric
Fatourou, Panagiota
Jayanti, Siddhartha
Shun, Julian
contents Many concurrent algorithms require processes to perform fetch-and-add operations on a single memory location, which can be a hot spot of contention. We present a novel algorithm called Aggregating Funnels that reduces this contention by spreading the fetch-and-add operations across multiple memory locations. It aggregates fetch-and-add operations into batches so that the batch can be performed by a single hardware fetch-and-add instruction on one location and all operations in the batch can efficiently compute their results by performing a fetch-and-add instruction on a different location. We show experimentally that this approach achieves higher throughput than previous combining techniques, such as Combining Funnels, and is substantially more scalable than applying hardware fetch-and-add instructions on a single memory location. We show that replacing the fetch-and-add instructions in the fastest state-of-the-art concurrent queue by our Aggregating Funnels eliminates a bottleneck and greatly improves the queue's overall throughput.
format Preprint
id arxiv_https___arxiv_org_abs_2411_14420
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Aggregating Funnels for Faster Fetch&Add and Queues
Roh, Younghun
Wei, Yuanhao
Ruppert, Eric
Fatourou, Panagiota
Jayanti, Siddhartha
Shun, Julian
Distributed, Parallel, and Cluster Computing
Many concurrent algorithms require processes to perform fetch-and-add operations on a single memory location, which can be a hot spot of contention. We present a novel algorithm called Aggregating Funnels that reduces this contention by spreading the fetch-and-add operations across multiple memory locations. It aggregates fetch-and-add operations into batches so that the batch can be performed by a single hardware fetch-and-add instruction on one location and all operations in the batch can efficiently compute their results by performing a fetch-and-add instruction on a different location. We show experimentally that this approach achieves higher throughput than previous combining techniques, such as Combining Funnels, and is substantially more scalable than applying hardware fetch-and-add instructions on a single memory location. We show that replacing the fetch-and-add instructions in the fastest state-of-the-art concurrent queue by our Aggregating Funnels eliminates a bottleneck and greatly improves the queue's overall throughput.
title Aggregating Funnels for Faster Fetch&Add and Queues
topic Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2411.14420