A Locality-Aware Sparse Dynamic Data Exchange
Parallel architectures are continually increasing in performance and scale, while underlying algorithmic infrastructure often fail to take full advantage of available compute power. Within the context of MPI, irregular communication patterns create bottlenecks in parallel applications. For instance, sparse matrix operations, and applications which rely on them, are bottlenecked by required sparse dynamic data exchanges. Assuming each process holds a subset of rows of the sparse matrix and corresponding vector values, every process can easily determine which values it must receive from other processes. However, processes do not hold enough information to determine which values to send to other processes. The process of forming this communication pattern requires dynamic data exchanges. Current algorithms for sparse dynamic data exchanges are bottlenecked by point-to-point communication constraints, particularly at large scales. This paper presents a novel locality-aware sparse dynamic data exchange which reduces the amount of costly communication, such as inter-node, in exchange for additional less costly messages, reducing the cost and improving scalability of the method.
READ FULL TEXT