Giter Site home page Giter Site logo

aajayssingh / concurrent-persistent-datastructure Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 2.0 38.34 MB

The rep contains my experiments with state of the art NVM programming abstractions during my internship at Regal Lab of Inria Paris under the supervision of Dr Marc Shapiro and Dr Gael Thomas.

Python 0.70% C 28.47% Shell 1.29% C++ 56.19% Objective-C 2.47% Assembly 0.16% CMake 1.30% Makefile 4.27% Roff 4.38% PowerShell 0.20% Perl 0.45% PHP 0.10% NASL 0.02%
persistent-data-structures non-volatile-memory concurrent-data-structure nvram-ds-for-beginners

concurrent-persistent-datastructure's Introduction

If you use my developed data structures please star the repo :) and also cite following accompanying short paper
https://arxiv.org/abs/1712.04989 . The short paper was accepted in Student Research Symposium of HiPC 2017.

The rep consists of my experiments with SCM/NVM programming libraries namely,
					NVThreads [1]
					NVML (now called PMDK)	  [2]
					Mnemosyne [3]
Using above libraries following concurrent persistent DS has been implemented:
[1]NVThreads: various approaches with NVthreads some including changes in the library itself
					+coarse grained persistent List.
					+fine grained persistent List.
					+open addressed hash Table.
					
[2]NVML (Now called as PMDK):
					+coarse-grained persistent List.
					+fine-grained persistent List.
					+closed addressed coarse-grained hash Table.
					+closed addressed fine-grained hash Table.

[3]Mnemosyne:
					+coarse-grained persistent List.
					+fine-grained persistent List.
					+closed addressed coarse-grained hash Table.
					+closed addressed fine-grained hash Table.
[4]Volatile DS:
					+coarse-grained volatile List.
					+fine-grained volatile List.


The implementation of above two algorithms follows Art of Multicore programming by Maurice Herlihy.
To build and see the applications working please follow instructions within each subdirectory.

INFO: Note that nvml library, has changed its name since I experimented with it.
However, the data structure's I wrote using nvml (pmdk) can still be used as a guide, especially for beginners who is looking for some point to start:).
#persistent data structure for dummies
References:
[1]: Hsu, Terry Ching-Hsiang, et al. "NVthreads: Practical Persistence for Multi-threaded Applications." Proceedings of the Twelfth European 	  Conference on Computer Systems. ACM, 2017.
[2]: https://github.com/pmem/pmdk
[3]: Volos, Haris, Andres Jaan Tack, and Michael M. Swift. "Mnemosyne: Lightweight persistent memory." ACM SIGARCH Computer Architecture News. 	    Vol. 39. No. 1. ACM, 2011.

concurrent-persistent-datastructure's People

Contributors

aajayssingh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.