ArgoDSM

Argo's documentation can is generated by Doxygen and is by default generated when building the software. Please visit our github page for further documentation and tutorials.

A coherent global address space in a distributed system enables shared memory programming in a much larger scale than a single multicore or a single SMP. Without dedicated hardware support at this scale, the solution is a software distributed shared memory (DSM) system.


Traditional approaches to coherence (centralized via “active” home-node directories) and critical-section execution (distributed across nodes and cores) do not scale well.


It is critical to  make decisions locally and avois the long latencies imposed by both network and software message handlers. Likewise, synchronization is fast if it rarely involves communication with distant nodes (or even other sockets).


ArgoDSM minimizes the amount of long-latency communication required in both coherence and critical section execution  with a novel coherence protocol, and a novel hierarchical queue delegation locking approach.



ArgoDSM offers:


  • POSIX Threads (pthreads) compatibility: runs pthreads on clusters
  • Minimal effort to scale a typical pthreads program from one node to thousands of nodes
  • User-space operation: ArgoDSM is a library on top of an RDMA-capable network layer. Remote memory access features of MPI-3 are currently the main backend.
  • Release consistency (RC) and sequential consistency for data-race-free programs
  • Simplicity and extensibility

To properly  cite ArgoDSM, please use:


Kaxiras, Stefanos, et al. "Turning Centralized Coherence and Distributed Critical-Section Execution on their Head: A New Approach for Scalable Distributed Shared Memory." Proceedings of the 24th International Symposium on High-Performance Parallel and Distributed Computing. ACM, 2015.


@inproceedings{kaxiras2015turning,

  title={Turning Centralized Coherence and Distributed Critical-Section Execution on their Head: A New Approach for Scalable Distributed Shared Memory},

  author={Kaxiras, Stefanos and Klaftenegger, David and Norgren, Magnus and Ros, Alberto and Sagonas, Konstantinos},

  booktitle={Proceedings of the 24th International Symposium on High-Performance Parallel and Distributed Computing},

  pages={3--14},

  year={2015},

  organization={ACM}

}