POSTER: Asynchrony versus Bulk-Synchrony for a Generalized N-body Problem from Genomics
This work examines a data-intensive irregular application from genomics, a long read alignment problem, which represents a kind of Generalized N-Body problem, one of the “seven giants” of the NRC Big Data motifs. In this problem, computations (genome alignments) are performed on sparse and data-dependent pairs of inputs, with variable cost computation and variable datum sizes. We lay out the challenges of load balancing, communication and synchronization, guaranteeing progress, and memory footprint for this application. In particular, there is no inherent locality in the pairwise interactions, unlike simulation-based N-Body problems, and the interaction sparsity depends on particular parameters of the input, which can also affect the quality of the output. We then examine both a pre-existing bulk-synchronous implementation, using collective communication in MPI, and a new asynchronous one, using cross-node RPCs in UPC++. We show that the asynchronous version effectively hides communication costs, with a memory footprint that is typically much lower than the bulk-synchronous version. Our application, while simple enough to be a kind of proxy for genomics or data analytics applications more broadly, is also part of a real application pipeline. It shows good scaling on real input problems, and at the same time, reveals some of the programming and architectural challenges for scaling this type of data-intensive irregular application.