Distributed Programming Laboratory LPD


ASCYLIB is a concurrent-search data-structure (CSDS) library. It contains over 30 implementations of linked lists, hash tables, skip lists, and binary search trees (BST). ASCYLIB contains sequential, lock-based, and lock-free implementations for each data structure.

ASCYLIB works on x86, SPARC, and Tilera architectures and contains tests to evaluate the throughput, latency, latency distribution, and energy efficiency of the included data structures.



ASCYLIB was developed for:

Asynchronized Concurrency: The Secret to Scaling Concurrent Search Data Structures
Tudor David, Rachid Guerraoui, Vasileios Trigonakis (alphabetical order).

The following technical report details the design of the two new data structures included in ASCYLIB:

Designing ASCY-compliant Concurrent Search Data Structures
Tudor David, Rachid Guerraoui, Che Tong, Vasileios Trigonakis (alphabetical order).
EPFL Technical Report


ASCYLIB consists of one main library and a few smaller ones:

  • ASCYLIB: the main library with over 30 data-structure implementations. ASCYLIB contains both existing and optimized with ASCY state-of-the-art CSDSs and BST-TK, a new lock-based binary search tree. (code)
  • CLHT: a new highly-scalable concurrent hash table based on ASCY. CLHT comes in two variants, one lock-based and one lock-free. (code)
  • ssmem: a memory allocator with epoch-based garbage collection. (code)
  • raplread: a simple library for reading and printing energy/power measurements using Intel's RAPL interface. (code)