Blocking Universal Constructions
Panagiota Fatourou, Forth Ics, Nikolaos D. Kallimanis · 2011
In this paper, we present two new blocking universal constructions. The first one, called CC-BSim, is very efficient in systems that support coherent caches (CC), while the second one, called DSM-BSim, is more efficient in cache-less NUMA machines (where processors do not have caches). CC-BSim performs at most O(h + t) remote memory references (RMR), where h is an upper bound on the number of operations that a process may help, and t is the size of the part of the object’s state that it should be accessed in order to execute these h operations. DSM-BSim performs at most O(hw) RMR, where w is the number of memory words accessed by the sequential version of an operation applied on a sequential data structure. DSM-BSim is better suited in a distributed shared memory (DSM) model. Algorithm CC-BSim uses just one Swap object in addition to read-write registers, thus exhibiting a performance advantage in machines that support Swap objects. On the other hand, DSM-BSim uses CAS, Swap, and read-write registers. Our experiments show that CC-BSim and DSM-BSim outperform state-of-the-art synchronization techniques, like Sim (SPAA 2001), flat-combining (SPAA 2010), and others. We also present and experimentally analyze common shared data structures (like shared stacks and queues) based on CC-BSim and DSM-BSim. Our experiments show that these implementations have very good performance in practice.