Provably Efficient and Scalable Shared-Memory Graph Algorithms

Parallel graph algorithms are important to a variety of computational disciplines today due to the widespread availability of large-scale graph-based data. Existing work that processes very large graphs restricts itself to static graphs and uses distributed memory, which often requires large computational and hardware cost, while still being prohibitively slow. This thesis will argue that shared-memory algorithms and techniques can solve a wide range of fundamental problems on very large static, dynamic, and streaming graphs quickly, provably-efficiently, and scalably, using a modest amount of computational resources. The first part of this thesis will focus on efficient parallel graph processing. We will propose the Graph Based Benchmark Suite, which contains provably-efficient implementations of over 20 fundamental graph problems. Our implementations solve these problems on the largest publicly available graph, the WebDataCommons hyperlink graph, with over 200 billion edges, in a matter of seconds to minutes. We will then introduce techniques to efficiently process graphs that are stored on non-volatile memory (NVRAMs). Compared to existing results in the literature for the WebDataCommons graph, both our shared-memory and non-volatile memory implementations use orders of magnitude fewer resources, and in many cases also run an order of magnitude faster than existing distributed memory codes. The second part of this thesis will focus on algorithms and systems for dynamic and streaming graphs. We will work in the Parallel Batch-Dynamic model, which allows algorithms to ingest batches of updates and exploit parallelism. We will describe algorithms for forest-connectivity connectivity, and for maintaining low-outdegree orientations in this model. Next, we will turn to practical data structures and algorithms for representing graphs that change over time. We design a dynamic graph representation based on a new compressed purely-functional tree data structure, called a C-tree, which admits provably-efficient parallel batch updates. Compared to existing work, our dynamic graph representation scales to much higher update rates, while using significantly less memory. Based on these ideas, we propose a new graph-streaming system called Aspen, and show that using Aspen, we can concurrently update and analyze the WebDataCommons hyperlink graph on a single commodity multicore machine with a terabyte of main memory.

[1]  David P. Reed,et al.  Naming and synchronization in a decentralized computer system , 1978 .

[2]  Jan van Leeuwen,et al.  Maintenance of Configurations in the Plane , 1981, J. Comput. Syst. Sci..

[3]  Uzi Vishkin,et al.  An O(log n) Parallel Connectivity Algorithm , 1982, J. Algorithms.

[4]  Richard J. Anderson,et al.  A P-complete problem and approximations to it , 1984 .

[5]  Norishige Chiba,et al.  Arboricity and Subgraph Listing Algorithms , 1985, SIAM J. Comput..

[6]  Richard M. Karp,et al.  A fast parallel algorithm for the maximal independent set problem , 1985, JACM.

[7]  Robert E. Tarjan,et al.  An Efficient Parallel Biconnectivity Algorithm , 2011, SIAM J. Comput..

[8]  Michael Luby,et al.  A simple parallel algorithm for the maximal independent set problem , 1985, STOC '85.

[9]  Noga Alon,et al.  A Fast and Simple Randomized Parallel Algorithm for the Maximal Independent Set Problem , 1985, J. Algorithms.

[10]  Robert E. Tarjan,et al.  Making data structures persistent , 1986, STOC '86.

[11]  Vijaya Ramachandran A Framework for Parallel Graph Algorithm Design , 1989, Optimal Algorithms.

[12]  Gary L. Miller,et al.  A new graph triconnectivity algorithm and its parallelization , 1992, Comb..

[13]  Olivier Devillers,et al.  Fully Dynamic Delaunay Triangulation in Logarithmic Expected Time Per Operation , 1992, Comput. Geom..

[14]  Stephen R. Tate,et al.  Dynamic parallel tree contraction (extended abstract) , 1994, SPAA '94.

[15]  Sajal K. Das,et al.  An o(n) Work EREW Parallel Algorithm for Updating MST , 1994, ESA.

[16]  Fabrizio Luccio,et al.  Batch Dynamic Algorithms for Two Graph Problems , 1994, PARLE.

[17]  Peter Bro Miltersen,et al.  Complexity Models for Incremental Computation , 1994, Theor. Comput. Sci..

[18]  Robert D. Blumofe,et al.  Scheduling multithreaded computations by work stealing , 1994, Proceedings 35th Annual Symposium on Foundations of Computer Science.

[19]  H. James Hoover,et al.  Limits to Parallel Computation: P-Completeness Theory , 1995 .

[20]  Hans-Juergen Boehm,et al.  Ropes: An alternative to strings , 1995, Softw. Pract. Exp..

[21]  Monika Henzinger,et al.  Randomized dynamic graph algorithms with polylogarithmic time per operation , 1995, STOC '95.

[22]  Bernhard Seeger,et al.  An asymptotically optimal multiversion B-tree , 1996, The VLDB Journal.

[23]  Richard Cole,et al.  Finding minimum spanning forests in logarithmic time and linear work using random sampling , 1996, SPAA '96.

[24]  Gerald J. Sussman,et al.  Structure and Interpretation of Computer Programs, Second Edition , 1996 .

[25]  R. K. Shyamasundar,et al.  Introduction to algorithms , 1996 .

[26]  Sergey Brin,et al.  The Anatomy of a Large-Scale Hypertextual Web Search Engine , 1998, Comput. Networks.

[27]  C. Greg Plaxton,et al.  Thread Scheduling for Multiprogrammed Multiprocessors , 1998, SPAA '98.

[28]  Mikkel Thorup,et al.  Poly-logarithmic deterministic fully-dynamic algorithms for connectivity, minimum spanning tree, 2-edge, and biconnectivity , 1998, STOC '98.

[29]  Chris Okasaki,et al.  Purely functional data structures , 1998 .

[30]  S. Sitharama Iyengar,et al.  Introduction to parallel algorithms , 1998, Wiley series on parallel and distributed computing.

[31]  Gerth Stølting Brodal,et al.  Dynamic Representation of Sparse Graphs , 1999, WADS.

[32]  Ian H. Witten,et al.  Managing gigabytes (2nd ed.): compressing and indexing documents and images , 1999 .

[33]  Seth Pettie,et al.  A Randomized Time-Work Optimal Parallel Algorithm for Finding a Minimum Spanning Forest , 1999, RANDOM-APPROX.

[34]  Christos D. Zaroliagis,et al.  Implementations and Experimental Studies of Dynamic Graph Algorithms , 2000, Experimental Algorithmics.

[35]  Mikkel Thorup,et al.  An Experimental Study of Polylogarithmic, Fully Dynamic, Connectivity Algorithms , 2001, JEAL.

[36]  U. Brandes A faster algorithm for betweenness centrality , 2001 .

[37]  Peter Sanders,et al.  [Delta]-stepping: a parallelizable shortest path algorithm , 2003, J. Algorithms.

[38]  Yousef Saad,et al.  Iterative methods for sparse linear systems , 2003 .

[39]  Guy E. Blelloch,et al.  Compact representations of ordered sets , 2004, SODA '04.

[40]  Guy E. Blelloch,et al.  An Experimental Analysis of a Compact Graph Representation , 2004, ALENEX/ANALC.

[41]  Rudolf Bayer,et al.  Organization and maintenance of large ordered indexes , 1972, Acta Informatica.

[42]  Sebastiano Vigna,et al.  The webgraph framework I: compression techniques , 2004, WWW '04.

[43]  Christos D. Zaroliagis,et al.  An Experimental Study of Algorithms for Fully Dynamic Transitive Closure , 2005, ESA.

[44]  Erik D. Demaine,et al.  Logarithmic Lower Bounds in the Cell-Probe Model , 2005, SIAM J. Comput..

[45]  Robert E. Tarjan,et al.  Dynamic Trees in Practice , 2007, WEA.

[46]  Warren Schudy,et al.  Finding strongly connected components in parallel using O(log2n) reachability queries , 2008, SPAA '08.

[47]  Omer Reingold,et al.  Undirected connectivity in log-space , 2008, JACM.

[48]  John H. Reppy,et al.  Implicitly-threaded parallelism in Manticore , 2008, ICFP 2008.

[49]  Umut A. Acar Self-adjusting computation: (an overview) , 2009, PEPM '09.

[50]  Aart J. C. Bik,et al.  Pregel: a system for large-scale graph processing , 2010, SIGMOD Conference.

[51]  Joseph E. Gonzalez,et al.  GraphLab: A New Parallel Framework for Machine Learning , 2010 .

[52]  Suman Nath,et al.  Rethinking Database Algorithms for Phase Change Memory , 2011, CIDR.

[53]  Umut A. Acar,et al.  Parallelism in dynamic well-spaced point sets , 2011, SPAA '11.

[54]  Reynold Cheng,et al.  On querying historical evolving graph sequences , 2011, Proc. VLDB Endow..

[55]  Guy E. Blelloch,et al.  Linear-work greedy parallel approximate set cover and variants , 2011, SPAA '11.

[56]  Zhuhua Cai,et al.  Facilitating real-time graph mining , 2012, CloudDB '12.

[57]  Enhong Chen,et al.  Kineograph: taking the pulse of a fast-changing and connected world , 2012, EuroSys '12.

[58]  Guy E. Blelloch,et al.  Greedy sequential maximal independent set and matching are parallel on average , 2012, SPAA '12.

[59]  Ming Wu,et al.  Managing Large Graphs on Multi-Cores with Graph Awareness , 2012, USENIX Annual Technical Conference.

[60]  Stratis Viglas,et al.  Adapting the B + -tree for Asymmetric I/O , 2012, ADBIS.

[61]  David A. Bader,et al.  STINGER: High performance data structure for streaming graphs , 2012, 2012 IEEE Conference on High Performance Extreme Computing.

[62]  Md. Mostofa Ali Patwary,et al.  Multi-core Spanning Forest Algorithms using the Disjoint-set Data Structure , 2012, 2012 IEEE 26th International Parallel and Distributed Processing Symposium.

[63]  Joseph Gonzalez,et al.  PowerGraph: Distributed Graph-Parallel Computation on Natural Graphs , 2012, OSDI.

[64]  Sergei Vassilvitskii,et al.  Densest Subgraph in Streaming and MapReduce , 2012, Proc. VLDB Endow..

[65]  Guy E. Blelloch,et al.  Ligra: a lightweight graph processing framework for shared memory , 2013, PPoPP '13.

[66]  Keshav Pingali,et al.  A lightweight infrastructure for graph analytics , 2013, SOSP.

[67]  Gary L. Miller,et al.  Parallel graph decompositions using random shifts , 2013, SPAA.

[68]  Richard Peng,et al.  Fully Dynamic $(1+\epsilon)$-Approximate Matchings , 2013, 1304.0378.

[69]  Haixun Wang,et al.  Trinity: a distributed graph engine on a memory cloud , 2013, SIGMOD '13.

[70]  Vitaly Osipov,et al.  Efficient Parallel and External Matching , 2013, Euro-Par.

[71]  Hui Ding,et al.  TAO: Facebook's Distributed Data Store for the Social Graph , 2013, USENIX Annual Technical Conference.

[72]  Guy E. Blelloch,et al.  Reducing contention through priority updates , 2013, PPoPP '13.

[73]  Udayan Khurana,et al.  Efficient snapshot retrieval over historical graph data , 2012, 2013 IEEE 29th International Conference on Data Engineering (ICDE).

[74]  Guy E. Blelloch,et al.  A simple and practical linear-work parallel algorithm for connectivity , 2014, SPAA.

[75]  Robert Krauthgamer,et al.  Orienting Fully Dynamic Graphs with Worst-Case Time Bounds , 2013, ICALP.

[76]  David A. Bader,et al.  A performance evaluation of open source graph databases , 2014, PPAA '14.

[77]  Wenguang Chen,et al.  Chronos: a graph engine for temporal graph analysis , 2014, EuroSys '14.

[78]  Charles E. Leiserson,et al.  Ordering heuristics for parallel graph coloring , 2014, SPAA.

[79]  Arthur Charguéraud,et al.  Theory and Practice of Chunked Sequences , 2014, ESA.

[80]  Toyotaro Suzumura,et al.  Towards large-scale graph stream processing platform , 2014, WWW.

[81]  Stratis Viglas,et al.  Write-limited sorts and joins for persistent memory , 2014, Proc. VLDB Endow..

[82]  Kai Wang,et al.  GraphQ: Graph Query Processing with Abstraction Refinement - Scalable and Programmable Analytics over Very Large Graphs on a Single PC , 2015, USENIX Annual Technical Conference.

[83]  Wenguang Chen,et al.  ImmortalGraph: A System for Storage and Analysis of Temporal Graphs , 2015, TOS.

[84]  Alexander S. Szalay,et al.  FlashGraph: Processing Billion-Node Graphs on an Array of Commodity SSDs , 2014, FAST.

[85]  Othon Michail,et al.  An Introduction to Temporal Graphs: An Algorithmic Perspective* , 2015, Internet Math..

[86]  Keshav Pingali,et al.  Synthesizing parallel graph programs via automated planning , 2015, PLDI.

[87]  Julian Shun,et al.  Multicore triangle computations without tuning , 2015, 2015 IEEE 31st International Conference on Data Engineering.

[88]  Guy E. Blelloch,et al.  Smaller and Faster: Parallel Processing of Compressed Graphs with Ligra+ , 2015, 2015 Data Compression Conference.

[89]  David A. Patterson,et al.  The GAP Benchmark Suite , 2015, ArXiv.

[90]  Sebastiano Vigna,et al.  The Graph Structure in the Web - Analyzed on Different Aggregation Levels , 2015, J. Web Sci..

[91]  Guy E. Blelloch,et al.  Sorting with Asymmetric Read and Write Costs , 2015, SPAA.

[92]  Virendra J. Marathe,et al.  LLAMA: Efficient graph analytics using Large Multiversioned Arrays , 2015, 2015 IEEE 31st International Conference on Data Engineering.

[93]  Michael Isard,et al.  Scalability! But at what COST? , 2015, HotOS.

[94]  Sivasankaran Rajamanickam,et al.  Supercomputing for Web Graph Analytics. , 2015 .

[95]  Gary L. Miller,et al.  Improved Parallel Algorithms for Spanners and Hopsets , 2015, SPAA.

[96]  Ion Stoica,et al.  CellIQ : Real-Time Cellular Network Analytics at Scale , 2015, NSDI.

[97]  Xiao Meng,et al.  DISTINGER: A distributed graph data structure for massive dynamic graph processing , 2015, 2015 IEEE International Conference on Big Data (Big Data).

[98]  Tim Weninger,et al.  Thinking Like a Vertex , 2015, ACM Comput. Surv..

[99]  James Demmel,et al.  Write-Avoiding Algorithms , 2016, 2016 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[100]  Ion Stoica,et al.  Time-evolving graph processing at scale , 2016, GRADES '16.

[101]  G. Blelloch,et al.  Just Join for Parallel Ordered Sets , 2016, SPAA.

[102]  Martín Abadi,et al.  Incremental, iterative data processing with timely dataflow , 2016, Commun. ACM.

[103]  Bin Cui,et al.  Tornado: A System For Real-Time Iterative Analysis Over Evolving Data , 2016, SIGMOD Conference.

[104]  Guy E. Blelloch,et al.  Parallel Algorithms for Asymmetric Read-Write Costs , 2016, SPAA.

[105]  Karsten Schwan,et al.  GraphIn: An Online High Performance Incremental Graph Processing Framework , 2016, Euro-Par.

[106]  David Peleg,et al.  Dynamic (1 + ∊)-Approximate Matchings: A Density-Sensitive Approach , 2016, SODA.

[107]  Sivasankaran Rajamanickam,et al.  A Case Study of Complex Graph Analysis in Distributed Memory: Implementation and Optimization , 2016, 2016 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[108]  Rajiv Gupta,et al.  Synergistic Analysis of Evolving Graphs , 2016, ACM Trans. Archit. Code Optim..

[109]  Guy E. Blelloch,et al.  PAM: parallel augmented maps , 2016, PPoPP.

[110]  Udayan Khurana,et al.  Storing and Analyzing Historical Graph Data at Scale , 2015, EDBT.

[111]  Guy E. Blelloch,et al.  Efficient Algorithms with Asymmetric Read and Write Costs , 2015, ESA.

[112]  Keshav Pingali,et al.  A compiler for throughput optimization of graph algorithms on GPUs , 2016, OOPSLA.

[113]  Guy E. Blelloch,et al.  Parallelism in Randomized Incremental Algorithms , 2018, J. ACM.

[114]  Emin Gün Sirer,et al.  Weaver: A High-Performance, Transactional Graph Database Based on Refinable Timestamps , 2015, Proc. VLDB Endow..

[115]  David A. Bader,et al.  cuSTINGER: Supporting dynamic graph algorithms for GPUs , 2016, 2016 IEEE High Performance Extreme Computing Conference (HPEC).

[116]  H. Howie Huang,et al.  G-Store: High-Performance Graph Store for Trillion-Edge Processing , 2016, SC16: International Conference for High Performance Computing, Networking, Storage and Analysis.

[117]  Ion Stoica,et al.  ZipG: A Memory-efficient Graph Store for Interactive Queries , 2017, SIGMOD Conference.

[118]  Stephan Günnemann,et al.  Automatic Algorithm Transformation for Efficient Multi-Snapshot Analytics on Temporal Graphs , 2017, Proc. VLDB Endow..

[119]  Yves Le Traon,et al.  Analyzing Complex Data in Motion at Scale with Temporal Graphs , 2017, SEKE.

[120]  Mohan Kumar,et al.  Mosaic: Processing a Trillion-Edge Graph on a Single Machine , 2017, EuroSys.

[121]  Rajiv Gupta,et al.  KickStarter: Fast and Accurate Computations on Streaming Graphs via Trimmed Approximations , 2017, ASPLOS.

[122]  Yuanyuan Tian,et al.  Big Graph Analytics Platforms , 2017, Found. Trends Databases.

[123]  Wei Zhou,et al.  A Practical Scalable Shared-Memory Parallel Algorithm for Computing Minimum Spanning Trees , 2017 .

[124]  Shuaiwen Song,et al.  EvoGraph: On-the-Fly Efficient Mining of Evolving Graphs on GPU , 2017, ISC.

[125]  Martin Winter,et al.  Autonomous, independent management of dynamic graphs on GPUs , 2017, 2017 IEEE High Performance Extreme Computing Conference (HPEC).

[126]  Zhaonian Zou,et al.  Efficient Subgraph Matching on Non-volatile Memory , 2017, WISE.

[127]  Umut A. Acar,et al.  Brief Announcement: Parallel Dynamic Tree Contraction via Self-Adjusting Computation , 2017, SPAA.

[128]  Guy E. Blelloch,et al.  Julienne: A Framework for Parallel Graph Algorithms using Work-efficient Bucketing , 2017, SPAA.

[129]  Shahbaz Khan,et al.  Near Optimal Parallel Algorithms for Dynamic DFS in Undirected Graphs , 2017, SPAA.

[130]  Bingsheng He,et al.  Accelerating Dynamic Graph Analytics on GPUs , 2017, Proc. VLDB Endow..

[131]  Nodari Sitchinava,et al.  Lower Bounds in the Asymmetric External Memory Model , 2017, SPAA.

[132]  Ali Pinar,et al.  Parallel Local Algorithms for Core, Truss, and Nucleus Decompositions , 2017, ArXiv.

[133]  Shay Solomon,et al.  Improved Dynamic Graph Coloring , 2018, ESA.

[134]  William Song,et al.  GraphChallenge.org: Raising the Bar on Graph Analytic Performance , 2018, 2018 IEEE High Performance extreme Computing Conference (HPEC).

[135]  Jeremy T. Fineman Nearly work-efficient parallel algorithm for digraph reachability , 2017, STOC.

[136]  Amnon Barak,et al.  Optimizing Parallel Graph Connectivity Computation via Subgraph Sampling , 2018, 2018 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[137]  Guy E. Blelloch,et al.  The Parallel Persistent Memory Model , 2018, SPAA.

[138]  Guy E. Blelloch,et al.  Parallel Range and Segment Queries with Augmented Maps , 2018, ArXiv.

[139]  Sizhuo Zhang,et al.  GraFBoost: Using Accelerated Flash Storage for External Graph Analytics , 2018, 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA).

[140]  David A. Bader,et al.  A New Algorithmic Model for Graph Analysis of Streaming Data , 2018 .

[141]  Guy E. Blelloch,et al.  Implicit Decomposition for Write-Efficient Connectivity Algorithms , 2017, 2018 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[142]  Pascal Felber,et al.  Romulus: Efficient Algorithms for Persistent Transactional Memory , 2018, SPAA.

[143]  David A. Bader,et al.  Hornet: An Efficient Data Structure for Dynamic Sparse Graphs and Matrices on GPUs , 2018, 2018 IEEE High Performance extreme Computing Conference (HPEC).

[144]  Guy E. Blelloch,et al.  Parallel Write-Efficient Algorithms and Data Structures for Computational Geometry , 2018, SPAA.

[145]  Gerth Stølting Brodal,et al.  A Simple Greedy Algorithm for Dynamic Graph Orientation , 2018, Algorithmica.

[146]  Alexandr Andoni,et al.  Parallel Graph Connectivity in Log Diameter Rounds , 2018, 2018 IEEE 59th Annual Symposium on Foundations of Computer Science (FOCS).

[147]  Stergios Stergiou,et al.  Shortcutting Label Propagation for Distributed Connected Components , 2018, WSDM.

[148]  Krzysztof Onak,et al.  Fully Dynamic MIS in Uniformly Sparse Graphs , 2018, ICALP.

[149]  Semih Salihoglu,et al.  Distributed Evaluation of Subgraph Queries Using Worstcase Optimal LowMemory Dataflows , 2018, VLDB 2018.

[150]  Rachid Guerraoui,et al.  The Inherent Cost of Remembering Consistently , 2018, SPAA.

[151]  Michael L. Scott,et al.  iDO: Compiler-Directed Failure Atomicity for Nonvolatile Memory , 2018, 2018 51st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[152]  Guy E. Blelloch,et al.  Algorithmic Building Blocks for Asymmetric Memories , 2018, ESA.

[153]  Tsvi Kopelowitz,et al.  Improved Worst-Case Deterministic Parallel Dynamic Minimum Spanning Forest , 2018, SPAA.

[154]  Maxime Cordy,et al.  Enabling lock-free concurrent workers over temporal graphs composed of multiple time-series , 2018, SAC.

[155]  Alex Brooks,et al.  Gluon: a communication-optimizing substrate for distributed heterogeneous graph analytics , 2018, PLDI.

[156]  Guy E. Blelloch,et al.  Theoretically Efficient Parallel Graph Algorithms Can Be Fast and Scalable , 2018, SPAA.

[157]  Maurice Herlihy,et al.  A persistent lock-free queue for non-volatile memory , 2018, PPoPP.

[158]  Julian Shun,et al.  Low-latency graph streaming using compressed purely-functional trees , 2019, PLDI.

[159]  Jie Wang,et al.  The Matrix KV Storage System Based on NVM Devices , 2019, Micromachines.

[160]  Heon Young Yeom,et al.  Design and implementation of skiplist-based key-value store on non-volatile memory , 2019, Cluster Computing.

[161]  Ismail Oukid,et al.  Persistent Buffer Management with Optimistic Consistency , 2019, DaMoN.

[162]  Danny Hendler,et al.  Tracking in Order to Recover: Recoverable Lock-Free Data Structures , 2019, ArXiv.

[163]  H. Howie Huang,et al.  GraphOne: A Data Store for Real-time Analytics on Evolving Graphs , 2020, FAST.

[164]  Silvio Lattanzi,et al.  Dynamic Algorithms for the Massively Parallel Computation Model , 2019, SPAA.

[165]  Qingrui Liu,et al.  Compiler-Directed Failure Atomicity for Nonvolatile Memory , 2019 .

[166]  Guy E. Blelloch,et al.  Multiversion Concurrency with Bounded Delay and Precise Garbage Collection , 2018, SPAA.

[167]  Viktor Leis,et al.  Persistent Memory I/O Primitives , 2019, DaMoN.

[168]  Reem Elkhouly,et al.  Efficient Checkpointing with Recompute Scheme for Non-volatile Main Memory , 2019, ACM Trans. Archit. Code Optim..

[169]  Jihang Liu,et al.  Initial experience with 3D XPoint main memory , 2019, Distributed and Parallel Databases.

[170]  Wolfgang Lehner,et al.  Integer Compression in NVRAM-centric Data Stores: Comparative Experimental Analysis to DRAM , 2019, DaMoN.

[171]  Steven Swanson,et al.  Pangolin: A Fault-Tolerant Persistent Memory Programming Library , 2019, USENIX Annual Technical Conference.

[172]  Guy E. Blelloch,et al.  Parallel Batch-Dynamic Graph Connectivity , 2019, SPAA.

[173]  Robert E. Tarjan,et al.  Simple Concurrent Labeling Algorithms for Connected Components , 2018, SOSA.

[174]  Josep Torrellas,et al.  AutoPersist: an easy-to-use Java NVM framework based on reachability , 2019, PLDI.

[175]  Robert E. Tarjan,et al.  Randomized Concurrent Set Union and Generalized Wake-Up , 2019, PODC.

[176]  Yu Hua,et al.  Write-Optimized and Consistent RDMA-based NVM Systems , 2019, ArXiv.

[177]  Xiao Liu,et al.  Basic Performance Measurements of the Intel Optane DC Persistent Memory Module , 2019, ArXiv.

[178]  Tao Xie,et al.  HART: A Concurrent Hash-Assisted Radix Tree for DRAM-PM Hybrid Memory Systems , 2019, 2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[179]  Guy E. Blelloch,et al.  Delay-Free Concurrency on Faulty Persistent Memory , 2018, SPAA.

[180]  Guy E. Blelloch,et al.  Batch-Parallel Euler Tour Trees , 2018, ALENEX.

[181]  Mikkel Thorup,et al.  Random k-out Subgraph Leaves only O(n/k) Inter-Component Edges , 2019, 2019 IEEE 60th Annual Symposium on Foundations of Computer Science (FOCS).

[182]  Oded Schwartz,et al.  Revisiting the I/O-Complexity of Fast Matrix Multiplication with Recomputations , 2019, 2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[183]  Chundong Wang,et al.  Crash recoverable ARMv8-oriented B+-tree for byte-addressable persistent memory , 2019, LCTES.

[184]  Keshav Pingali,et al.  Single machine graph analytics on massive datasets using Intel optane DC persistent memory , 2019, Proc. VLDB Endow..

[185]  Zhenjiang Hu,et al.  FastSV: A Distributed-Memory Connected Component Algorithm with Fast Convergence , 2019, PPSC.

[186]  Richard Peng,et al.  Parallel Batch-Dynamic Graphs: Algorithms and Lower Bounds , 2019, SODA.