Skip to content

fender3kr/ParallelSCAN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ParallelSCAN

Parallel Implementations of SCAN (Structural Community Detection Algorithm)

Description

ParallelSCAN is parallel implementations of the SCAN algorithm. This parallel algorithm is built upon matrix as a graph data model and linear albebraic operations. As its base framework for distributed graph management and analysis, CombBLAS is used. The algorithm along with the framework leverages hybrid parallel programming (MPI and OpenMP). There are two implementations of the algorithm:

(1) Single-pass Parallel SCAN: it solely relies on the CombBLAS framework. In this approach, structural similarity computations are done with a matrix-matrix multiplication.
(2) Two-pass Parallel SCAN: the matrix-matrix multiplication operation provided in the CombBLAS framework consumes a lot of memory space and it easily results in failure due to memory error. To avoid the operation, this two-pass algorithm was developed. Structural similarity computation is moved into the first step and computed values are materialized as edge edges. This allows to evaluate the algorithm with varying parameter settings. Instead of performing matrix-matrix multiplicatiion, this computes similarity values by intersecting matrix rows. The first part of this approach internally uses roaring bitmap library to represent graph partitions in memory.

A Python version of CombBLAS is also available and it is called KDT (Knowledge Discovery Toolbox). This is a Python wrapper that allows data scientists to easily use the features of CombBLAS. The parallel SCAN algorithm was also implemented in Python over KDT.

Source Tree

  • OriginalSCAN: a custom implementation of the original SCAN algorithm in Python
  • SinglePass: single-pass parallel SCAN algorithm
    • SCAN-CombBLAS: C++ implementation over CombBLAS
    • SCAN-KDT: Python implementation over KDT
  • TwoPass: two-pass parallel SCAN algorithm
    • SCAN-CombBLAS: C++ implementation over CombBLAS
    • SCAN-KDT: Python implementation over KDT

Requirements

About

Parallel Implementations of SCAN (Structural Community Detection Algorithm)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published