Aggregating Funnels for Faster Fetch&Add and Queues
Fuente:
arXiv
Salvato in:
| Autori principali: | , , , , , |
|---|---|
| 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 |