File Exchange

image thumbnail


version 1.0 (273 KB) by

A suite of drivers to compute the PageRank vector for a directed graph.



No License

The Pagerank package provides a single driver call capable of running different pagerank algorithm.

1) PageRank with power iterations
2) PageRank with gauss-seidel iterations
3) PageRank as a linear system (bicgstab and gmres solvers)
4) PageRank with the arnoldi factorization
5) Approximate personalized PageRank

The included matlab file describes all the options and parameters.

For non-linux/win32 platforms, you must compile the included .c files
mex ?setup
mex pagerank_mult.c
mex pagerank_gs_mult.c
mex spmatvec_mult.c
mex spmatvec_transmult.c

The mex files provide optimized matrix-vector multiplication routines for the PageRank code and improve the performance by 10-15%.

There is a special driver included to run a set of algorithms on the same web-graph and report comparative results.


Comments and Ratings (4)


David Gleich

David Gleich (view profile)

Thanks for the comments. I've intended to update this code for more recent versions of Matlab for a while, but somehow never find the time.

: \ also, despite the notes in the top of pagerank.m, a flag == 0 denotes convergence, and flag==1 non-convergence.


1. must recompile with mex on 64-bit machine
int * A_row, A_col I think needs to be mwIndex* A_row, A_col in spmatvec_transmult.c

Otherwise, you get a compile warning with mex and nonsensical, nonconverging answers.

[reproduction scenario: 64-bit machine, sparse matrix, options=power]

I suspect this change will be made in other mex compiled files too as they also had warnings.

Otherwise, so far so good.

MATLAB Release
MATLAB 7 (R14)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video