CMU 15-618 S26 Project Web page
Instructors: Prof. Todd C. Mowry, and Prof. Brian Railing
Students: Zhengfei Li (zhengfel) and Max Wang (junkaiw)
This project implements and analyzes a parallel system for maintaining an approximate k-core decomposition of a dynamic graph under batched edge updates. The project is based on recent work on parallel batch-dynamic k-core maintenance and asynchronous reads (Liu, Shun, & Zablotchi, 2024), but uses our own C++/std::thread implementation rather than the paper’s ParlayLib/GBBS codebase.
Our implementation includes a sequential LDS oracle, a conservative parallel update path, profiling-guided graph-update optimizations, and a conservative one-root CPLDS-inspired asynchronous read mechanism. We evaluate tradeoffs among safe synchronized reads, unsafe non-synchronized reads, and descriptor-based asynchronous reads, focusing on throughput, scalability, tail latency, and update-side bottlenecks.
std::threadasync_read_estimate(...) for ConservativeCPLDSSyncReads: safe blocking baselineNonSync: unsafe/non-linearizable lower-bound baselineConservativeCPLDS: one-root descriptor-based async read modeLiu, Q. C., Shun, J., & Zablotchi, I. (2024). Parallel k-core decomposition with batched updates and asynchronous reads. arXiv. https://arxiv.org/abs/2401.08015