File Exchange

image thumbnail

pagerank

version 1.0 (273 KB) by

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

17 Downloads

Updated

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.

pagerank(A,struct('alg','eval'));

Comments and Ratings (4)

zhengchen

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.

Comments:

1. must recompile with mex on 64-bit machine
2.
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