A Near-Optimal Parallel Algorithm for Joining Binary Relations

11/30/2020
by   Bas Ketsman, et al.
0

We present a constant-round algorithm in the massively parallel computation (MPC) model for evaluating a natural join where every input relation has two attributes. Our algorithm achieves a load of Õ(m/p^1/ρ) where m is the total size of the input relations, p is the number of machines, ρ is the join's fractional edge covering number, and Õ(.) hides a polylogarithmic factor. The load matches a known lower bound up to a polylogarithmic factor. At the core of the proposed algorithm is a new theorem (which we name the isolated cartesian product theorem) that provides fresh insight into the problem's mathematical structure. Our result implies that the subgraph enumeration problem, where the goal is to report all the occurrences of a constant-sized subgraph pattern, can be settled optimally (up to a polylogarithmic factor) in the MPC model.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/22/2019

Instance and Output Optimal Parallel Algorithms for Acyclic Joins

Massively parallel join algorithms have received much attention in recen...
research
02/19/2020

Parallel Algorithms for Small Subgraph Counting

Subgraph counting is a fundamental problem in analyzing massive graphs, ...
research
04/13/2020

Near-Optimal Distributed Band-Joins through Recursive Partitioning

We consider running-time optimization for band-joins in a distributed sy...
research
01/11/2022

Parallel Acyclic Joins with Canonical Edge Covers

In PODS'21, Hu presented an algorithm in the massively parallel computat...
research
02/22/2020

Improved MPC Algorithms for MIS, Matching, and Coloring on Trees and Beyond

We present O(loglog n) round scalable Massively Parallel Computation alg...
research
06/01/2023

Time and Space Optimal Massively Parallel Algorithm for the 2-Ruling Set Problem

In this work, we present a constant-round algorithm for the 2-ruling set...

Please sign up or login with your details

Forgot password? Click here to reset