Skip to the content.

Publications


Technical Reports


Manuscripts


Thesis Materials


Software

Tool Description
πŸ“¦ nvgraph.sh CLI for nvGraph, which is a GPU-based graph analytics library written by NVIDIA, using CUDA.
πŸ“¦ snap-data.sh CLI for SNAP dataset, which is a collection of more than 50 large networks.
⛏️ graph-properties List a few graph properties.
⛏️ graph-generate Perform certain operations upon a fixed graph.
🧡 graphs A few sample graphs in Matrix Market (.mtx) format.


Others


Experiments

Repo Description
πŸ§ͺ neighborhood-link-prediction-openmp Design of OpenMP-based Parallel Neighborhood-based Link prediction approaches.

Community Detection

Repo Description
πŸ§ͺ leiden-communities-openmp Design of OpenMP-based Parallel Leiden algorithm for community detection.
πŸ§ͺ louvain-communities-openmp Design of OpenMP-based Parallel Louvain algorithm for community detection, that prevents internally disconnected communities.
πŸ§ͺ louvain-communities Comparing approaches for community detection using Louvain algorithm.
πŸ§ͺ rak-communities-openmp Design of OpenMP-based Parallel Label Propagation Algorithm (LPA) algorithm, aka RAK, for community detection.
πŸ§ͺ rak-communities Single-threaded CPU-based Raghavan Albert Kumara (RAK) algorithm, aka Label propagation Algorithm (LPA), for community detection.
πŸ§ͺ labelrank-communities-dynamic Performance comparison of static vs dynamic LabelRank algorithm, that is used for community detection in graphs.
πŸ§ͺ labelrank-communities-openmp Comparing approaches for community detection using OpenMP-based LabelRank algorithm.
πŸ§ͺ labelrank-communities Comparing approaches for community detection using LabelRank algorithm.
πŸ§ͺ copra-communities-openmp Multi-threaded OpenMP-based Community OVerlap PRopagation Algorithm (COPRA) for community detection.
πŸ§ͺ copra-communities Single-threaded CPU-based Community OVerlap PRopagation Algorithm (COPRA) for community detection.
πŸ§ͺ slpa-communities Single-threaded CPU-based Speaker-listener Label Propagation Algorithm (SLPA) for community detection.

Barrierfree PageRank

Repo Description
πŸ§ͺ pagerank-barrierfree-openmp-dynamic Design of OpenMP-based Lock-free Dynamic PageRank algorithm for link analysis.
πŸ§ͺ pagerank-barrierfrees-openmp-dynamic Design of OpenMP-based statically scheduled Barrier-free Dynamic PageRank algorithm for link analysis.
πŸ§ͺ pagerank-barrierfrees-openmp Design of OpenMP-based statically scheduled Barrier-free PageRank algorithm for link analysis.

Levelwise PageRank

Repo Description
πŸ§ͺ pagerank-levelwise-multi-dynamic Comparision of OpenMP and CUDA-based, Monolithic and Levelwise Dynamic PageRank algorithms.
πŸ§ͺ pagerank-levelwise-cuda-dynamic Design of CUDA-based Levelwise Dynamic PageRank algorithm for link analysis.
πŸ§ͺ pagerank-levelwise-cuda Design of CUDA-based Levelwise PageRank algorithm for link analysis.
πŸ§ͺ pagerank-levelwise-dynamic Design of Levelwise Dynamic PageRank algorithm for link analysis.
πŸ§ͺ pagerank-levelwise Design of Levelwise PageRank algorithm for link analysis.

PageRank

Repo Description
πŸ§ͺ pagerank-minimize-inequality Comparison of heuristics for minimization of inequality in ranks of vertices obtained with the PageRank algorithm.
πŸ§ͺ pagerank-multiple-damping Comparing performance of single vs block multiple damping factor based ranks for PageRank algorithm.
πŸ§ͺ pagerank-datatype Comparison of PageRank algorithm using various datatypes.
πŸ§ͺ pagerank-dead-ends Comparing strategies of handling dead ends with PageRank algorithm for link analysis.
πŸ§ͺ pagerank-cuda-dynamic Design of CUDA-based Parallel Dynamic PageRank algorithm for measuring importance.
πŸ§ͺ pagerank-cuda-optimization Exploration of optimizations to CUDA-based PageRank algorithm for link analysis.
πŸ§ͺ pagerank-cuda Design of CUDA-based PageRank algorithm for link analysis.
πŸ§ͺ pagerank-nvgraph-dynamic Comparision of Dynamic nvGraph PageRank with Static approach.
πŸ§ͺ pagerank-nvgraph Comparision of nvGraph PageRank with CPU-based implementations.
πŸ§ͺ pagerank-openmp-dynamic Design of OpenMP-based Parallel Dynamic PageRank algorithm for measuring importance.
πŸ§ͺ pagerank-openmp Design of OpenMP-based PageRank algorithm for link analysis.
πŸ§ͺ pagerank-dynamic Design of Dynamic PageRank algorithm for link analysis.
πŸ§ͺ pagerank-optimization Exploration of optimizations to PageRank algorithm for link analysis.
πŸ§ͺ pagerank Design of PageRank algorithm for link analysis.
πŸ§ͺ pagerank.js Design of PageRank algorithm for link analysis in JavaScript.

Parallelization

Repo Description
πŸ§ͺ mmap-access-pattern-openmp Design a fast parallel memory access pattern for a memory-mapped file with mmap().
πŸ§ͺ core-performance-openmp Measure the performance of individual cores with OpenMP.
πŸ§ͺ prefix-scan-cuda Design of an efficient algorithm for parallel prefix-scan of a large array of values on GPUs.
πŸ§ͺ pthread-block Design of pthread-block as a replacement for OpenMP threads.
πŸ§ͺ hello-mpi A basic β€œHello world” example to output text to console from nodes over a network using MPI.
πŸ§ͺ hello-cuda A basic β€œHello world” or β€œHello CUDA” example to perform a number of operations on NVIDIA GPUs using CUDA.

Graph Operations

Repo Description
πŸ§ͺ graph-pagerank-distribution Obtain the PageRank distribution of a static graph (in MTX format).
πŸ§ͺ graph-degree-distribution Obtain the degree distribution of a static graph (in MTX format).
πŸ§ͺ graph-openmp OpenMP-based Parallel Graph implementation.
πŸ§ͺ graph-csr-openmp Design of high-performance OpenMP-based parallel Graph Edgelist and Compressed Sparse Row (CSR) loader, aka GVEL.
πŸ§ͺ hybrid-csr Comparing space usage of regular vs hybrid CSR.
πŸ§ͺ pair-bitset Design of bitset for storing key-value pairs.

Vector Operations

Repo Description
πŸ§ͺ vector-atomic-access Compare ways to access elements of a vector atomically.
πŸ§ͺ vector-max-cuda Performance of sequential vs CUDA-based vector element max.
πŸ§ͺ vector-multiplication-cuda Comparing approaches for CUDA-based vector multiplication.
πŸ§ͺ vector-multiplication-openmp Comparing performance of sequential vs OpenMP-based element-by-element vector multiplication.
πŸ§ͺ vector-sum-cuda Comparing performance of sequential vs CUDA-based vector element sum.
πŸ§ͺ vector-sum-openmp Comparing performance of sequential vs OpenMP-based vector element sum.
πŸ§ͺ vector-sum Comparison of vector element sum using various data types.
πŸ§ͺ vector-search Comparing approaches for searching an element in a vector.


Research Notes

Community Detection

PageRank

Other Algorithms

Parallelization

Graph Operations