An MPI-based Algorithm for Mapping Complex Networks onto Hierarchical Architectures

07/06/2021
by   Maria Predari, et al.
0

Processing massive application graphs on distributed memory systems requires to map the graphs onto the system's processing elements (PEs). This task becomes all the more important when PEs have non-uniform communication costs or the input is highly irregular. Typically, mapping is addressed using partitioning, in a two-step approach or an integrated one. Parallel partitioning tools do exist; yet, corresponding mapping algorithms or their public implementations all have major sequential parts or other severe scaling limitations. In this paper, we propose a parallel algorithm that maps graphs onto the PEs of a hierarchical system. Our solution integrates partitioning and mapping; it models the system hierarchy in a concise way as an implicit labeled tree. The vertices of the application graph are labeled as well, and these vertex labels induce the mapping. The mapping optimization follows the basic idea of parallel label propagation, but we tailor the gain computations of label changes to quickly account for the induced communication costs. Our MPI-based code is the first public implementation of a parallel graph mapping algorithm; to this end, we extend the partitioning library ParHIP. To evaluate our algorithm's implementation, we perform comparative experiments with complex networks in the million- and billion-scale range. In general our mapping tool shows good scalability on up to a few thousand PEs. Compared to other MPI-based competitors, our algorithm achieves the best speed to quality trade-off and our quality results are even better than non-parallel mapping tools.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/20/2020

High-Quality Hierarchical Process Mapping

Partitioning graphs into blocks of roughly equal size such that few edge...
research
02/01/2022

Recursive Multi-Section on the Fly: Shared-Memory Streaming Algorithms for Hierarchical Graph Partitioning and Process Mapping

Partitioning a graph into balanced blocks such that few edges run betwee...
research
04/25/2018

Geometric Partitioning and Ordering Strategies for Task Mapping on Parallel Computers

We present a new method for mapping applications' MPI tasks to cores of ...
research
04/19/2018

Topology-induced Enhancement of Mappings

In this paper we propose a new method to enhance a mapping μ(·) of a par...
research
05/02/2021

Sphynx: a parallel multi-GPU graph partitioner for distributed-memory systems

Graph partitioning has been an important tool to partition the work amon...
research
07/22/2019

A 2D Parallel Triangle Counting Algorithm for Distributed-Memory Architectures

Triangle counting is a fundamental graph analytic operation that is used...
research
02/12/2019

Performance of All-Pairs Shortest-Paths Solvers with Apache Spark

Algorithms for computing All-Pairs Shortest-Paths (APSP) are critical bu...

Please sign up or login with your details

Forgot password? Click here to reset