eeyrdkl / COMP429

Parallel Programming Term Project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

COMP 429 - Parallel Programming Term Project

Implementation of Google's PageRank algorithm with CUDA and OpenMP in C++.

Index

Versions

  1. Serial
    Operates on dense matrices without any parallelization
  2. Parallel
    Operates on dense matrices with CUDA and OpenMP parallelization
  3. Serial Sparse
    Operates on sparse matrices without any parallelization
  4. Parallel Sparse
    Operates on sparse matrices with CUDA and OpenMP parallelization

Build

Compile the code and generate data by executing in terminal:

cd data/
make
cd ../src/
make

Run

Run all test cases in the makefile by executing in terminal:

cd src/
make run

Arguments

Description of the program arguments in the makefile.

Mandatory Arguments:

  • file
    link matrix file name
  • n (sparse versions only)
    n by n square matrix size
  • threads (parallel versions only)
    number of OpenMP threads

Optional Arguments:

  • iter
    number of maximum iterations
  • epsilon
    termination criteria 10^epsilon

References

[1]S. Brin, L. Page. The Anatomy of a Large-Scale Hypertextual Web Search Engine. http://infolab.stanford.edu/~backrub/google.html
[2]I. Rogers. The Google Pagerank Algorithm and How It Works. http://www.cs.princeton.edu/~chazelle/courses/BIB/pagerank.htm
[3]K. Bryan, T. Leise. The $25,000,000,000 Eigenvector The Linear Algebra Behind Google. http://www.rose-hulman.edu/~bryan/googleFinalVersionFixed.pdf
[4]http://www.cmpe.boun.edu.tr/~ozturan/etm555/google.pdf

About

Parallel Programming Term Project


Languages

Language:Cuda 43.5%Language:C++ 41.5%Language:Makefile 15.0%