Aggregating Funnels for Faster Fetch&Add and Queues
Name
3710848.3710873.pdf
Size
830.46 KB
Format
Adobe PDF
Checksum (MD5)
f6a397e5b613841f3920c94113818f85
Author(s) • • • • •
Roh, Younghun
Wei, Yuanhao
Ruppert, Eric
Fatourou, Panagiota
Jayanti, Siddhartha
Shun, Julian
Publisher
ACM|The 30th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming
Citation
Roh, Younghun, Wei, Yuanhao, Ruppert, Eric, Fatourou, Panagiota, Jayanti, Siddhartha et al. "Aggregating Funnels for Faster Fetch&Add and Queues."
Version
Final published version
Abstract
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.
Description
PPoPP ’25, Las Vegas, NV, USA
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Terms of Use
Creative Commons Attribution
Persistent DSpace Link
DOI of Published Version
https://doi.org/10.1145/3710848.3710873