Abstract

The recent advancements in multicore machines highlight the need to simplify concurrent programming in order to leverage their computational power. One way to achieve this is by designing efficient concurrent data structures (e.g. stacks, queues, hash-tables, etc.) and synchronization techniques (e.g. locks, combining techniques, etc.) that perform well in machines with large amounts of cores. In contrast to ordinary, sequential data-structures, the concurrent data-structures allow multiple threads to simultaneously access and/or modify them. Synch is an open-source framework that not only provides some common high-performant concurrent data-structures, but it also provides researchers with the tools for designing and benchmarking high performant concurrent data-structures. The Synch framework contains a substantial set of concurrent data-structures such as queues, stacks, combining-objects, hash-tables, locks, etc. and it provides a user-friendly runtime for developing and benchmarking concurrent data-structures. Among other features, the provided runtime provides functionality for creating threads easily (both POSIX and user-level threads), tools for measuring performance, etc. Moreover, the provided concurrent data-structures and the runtime are highly optimized for contemporary NUMA multiprocessors such as AMD Epyc and Intel Xeon.

Highlights

  • Synch is an open-source framework that provides some common high-performant concurrent data-structures, but it provides researchers with the tools for designing and benchmarking high performant concurrent data-structures

  • One way to achieve this is by designing efficient concurrent data structures and synchronization techniques that perform well in machines with large numbers of cores

  • The Synch framework contains a substantial set of concurrent data-structures such as queues, stacks, combining-objects, hash-tables, and locks, and it provides a user-friendly runtime for developing and benchmarking concurrent data-structures

Read more

Summary

Summary

The recent advancements in multicore machines highlight the need to simplify concurrent programming in order to leverage their computational power. One way to achieve this is by designing efficient concurrent data structures (e.g., stacks, queues, hash-tables) and synchronization techniques (e.g., locks, combining techniques) that perform well in machines with large numbers of cores. Sequential data-structures, concurrent data-structures can be accessed and/or modifed by multiple threads simultaneously. Synch is an open-source framework that provides some common high-performant concurrent data-structures, but it provides researchers with the tools for designing and benchmarking high performant concurrent data-structures. The Synch framework contains a substantial set of concurrent data-structures such as queues, stacks, combining-objects, hash-tables, and locks, and it provides a user-friendly runtime for developing and benchmarking concurrent data-structures. The Synch environment provides extensive and comprehensive documentation for all the implemented concurrent data-structures and developers will find a comprehensive set of tests to ensure quality and reproducibility of the results. The provided concurrent datastructures and the runtime are highly optimized for contemporary NUMA multiprocessors, such as AMD Epyc and Intel Xeon

Statement of need
Provided Implementations
Benchmarks and performance optimizations
Source code structure
Related work
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call