pnnl / chgl

Chapel HyperGraph Library (CHGL) - HPC-class Hypergraphs in Chapel
https://pnnl.github.io/chgl/
MIT License
29 stars 8 forks source link

Sketch for RCUArray incident lists #42

Closed LouisJenkinsCS closed 4 years ago

LouisJenkinsCS commented 5 years ago

Currently, the incident lists (formerly referred to as neighborList) is not thread-safe to access while being resized, where resizing occurs during addInclusion or makeDistinct (formerly known as removeDuplicateNeighbors). Now, this can be made thread-safe again by borrowing concepts from RCUArray and once #36 is completed. The way to do this is to not privatize the array but instead just use a single-node snapshot. The lifetime of the snapshot can be managed by Interval-Based Reclamation, but resizing can easily append blocks distributed across multiple nodes to make the 1.5D adjacency list idea work for large vertices and hyperedges.

LouisJenkinsCS commented 5 years ago

This won't be done until H2D project begins, very likely. However it should actually be possible and definitely will increase the overall usability of CHGL.

github-actions[bot] commented 4 years ago

This issue is stale and should either be closed or eventually resolved.