PAM library

PAM (Parallel Augmented Maps) is an open-source parallel C++ library implementing the interface for sequence, ordered sets, ordered maps, and augmented maps.[1] The library is available on GitHub. It uses the underlying balanced binary tree structure using join-based algorithms.[1] PAM supports four balancing schemes, including AVL trees, red-black trees, treaps and weight-balanced trees.

PAM is a parallel library and is also safe for concurrency. Its parallelism can be supported by cilk, OpenMP or the scheduler in PBBS.[2] Theoretically, all algorithms in PAM are work-efficient and have polylogarithmic depth. PAM uses underlying persistent tree structure such that multi-versioning is allowed. PAM also supports efficient GC.

  1. ^ a b Sun, Yihan; Ferizovic, Daniel; Belloch, Guy E. (23 March 2018). "PAM: parallel augmented maps". ACM SIGPLAN Notices. 53 (1): 290–304. doi:10.1145/3200691.3178509. ISSN 0362-1340. Retrieved 5 September 2020.
  2. ^ Problem Based Benchmark Suite Library