An Asynchronous Distributed-Memory Parallel Algorithm for k-mer Counting
Souvadra Hati, Akihiro Hayashi, Richard Vuduc
TL;DR
This work addresses the computational bottleneck of k-mer counting (KC) in genomics by introducing DAKC, an asynchronous distributed algorithm that minimizes global synchronization through fine-grained one-sided communication and multi-layer message aggregation. Implemented on the HClib Actor runtime with Conveyors, DAKC adopts a FABSP-style workflow to reduce synchronization rounds while leveraging aggressive data aggregation to lower communication volume. The authors develop an analytical model to dissect hardware utilization and validate it against measurements, showing KC is predominantly limited by data movement and that asynchronous communication yields substantial speedups. Empirical results on a 256-node cluster demonstrate 2–9x speedups over state-of-the-art distributed baselines and up to 2x over the best shared-memory KC, highlighting practical improvements for scalable KC in large-genome workloads.
Abstract
This paper describes a new asynchronous algorithm and implementation for the problem of k-mer counting (KC), which concerns quantifying the frequency of length k substrings in a DNA sequence. This operation is common to many computational biology workloads and can take up to 77% of the total runtime of de novo genome assembly. The performance and scalability of the current state-of-the-art distributed-memory KC algorithm are hampered by multiple rounds of Many-To-Many collectives. Therefore, we develop an asynchronous algorithm (DAKC) that uses fine-grained, asynchronous messages to obviate most of this global communication while utilizing network bandwidth efficiently via custom message aggregation protocols. DAKC can perform strong scaling up to 256 nodes (512 sockets / 6K cores) and can count k-mers up to 9x faster than the state-of-the-art distributed-memory algorithm, and up to 100x faster than the shared-memory alternative. We also provide an analytical model to understand the hardware resource utilization of our asynchronous KC algorithm and provide insights on the performance.
