An Improved and Optimized Practical Non-Blocking PageRank Algorithm for Massive Graphs

by   Hemalatha Eedi, et al.

PageRank is a well-known algorithm whose robustness helps set a standard benchmark when processing graphs and analytical problems. The PageRank algorithm serves as a standard for many graph analytics and a foundation for extracting graph features and predicting user ratings in recommendation systems. The PageRank algorithm iterates continuously, updating the ranks of the pages till convergence is achieved. Nevertheless, the implementation of the PageRank algorithm on large-scale graphs that on shared memory architecture utilizing fine-grained parallelism is a difficult task at hand. The experimental study and analysis of the Parallel PageRank kernel on large graphs and shared memory architectures using different programming models have been studied extensively. This paper presents the asynchronous execution of the PageRank algorithm to leverage the computations on massive graphs, especially on shared memory architectures. We evaluate the performance of our proposed non-blocking algorithms for PageRank computation on real-world and synthetic datasets using Posix Multithreaded Library on a 56 core Intel(R) Xeon processor. We observed that our asynchronous implementations achieve 10x to 30x speedup with respect to sequential runs and 5x to 10x improvements over synchronous variants.


page 1

page 2

page 3

page 4


Single Machine Graph Analytics on Massive Datasets Using Intel Optane DC Persistent Memory

Intel Optane DC Persistent Memory is a new kind of byte-addressable memo...

Shared-Memory Parallel Maximal Clique Enumeration

We present shared-memory parallel methods for Maximal Clique Enumeration...

Asynchronous Runtime with Distributed Manager for Task-based Programming Models

Parallel task-based programming models, like OpenMP, allow application d...

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

Triangle counting is a fundamental graph analytic operation that is used...

A Concurrent Unbounded Wait-Free Graph

In this paper, we propose a concurrent non-blocking unbounded directed g...

PIUMA: Programmable Integrated Unified Memory Architecture

High performance large scale graph analytics is essential to timely anal...

Implementation of Peridynamics utilizing HPX -- the C++ standard library for parallelism and concurrency

Peridynamics is a non-local generalization of continuum mechanics tailor...