Coder Social home page Coder Social logo

prbench's Introduction

This code requires the Nvidia CUB sources, which can be downloaded at this
address:

https://nvlabs.github.io/cub/

To compile, you'll first need to set the following variables in the Makefile
to the root installation paths of each library:

CUDA_HOME
MPI_HOME
CUB_HOME

and selecting the right GPU architecture by setting the CUDA_ARCH variable
(currently set to sm_35). 
At this point you can run 'make' to build the 'prbench' binary.  
Running 'prbench -h' gives you a list of all the option accepted by the program
with a brief explanation.  An example of run with four processes is:

-------------------------------------------------------------------------------
$> mpirun -np 4 ./prbench -S 21 -E 16 -f

Running Pagerank Benchmark with:

Scale: 21 (2097152 vertices)
Edge factor: 16 (33554432 edges)
Number of processes: 4
Rhs vector: random
Size of real: 8
Size of integer: 4
Starting from kernel: 0
Number of iterations for kernel 3: 20
Fast mode ON (don't write to disk)
Generating graph with:
        seed: 0
        clip'n'flip: yes
        vertex permutation: yes

Kernel 0 (scale=21, edgef=16):
        gen   time: 0.0105 secs
        TOTAL time: 0.0105 secs (I/O: 0%), 3184.14 Medges/sec

Kernel 1 (scale=21, edgef=16):
        sort  time: 0.1521 secs
        TOTAL time: 0.1521 secs (I/O: 0%), 220.54 Medges/sec

Kernel 2 (scale=21, edgef=16):
        gen   time: 0.1410 secs
        TOTAL time: 0.1410 secs (I/O: 0%), 238.00 Medges/sec

Kernel 3 (scale=21, edgef=16, numiter=20, c=0.85, a=7.15256E-08, rhs=RND):
        gen   time: 0.0001 secs
        comp  time: 0.0392 secs
                min/max  d2h: 0.0050/0.0056 secs
                min/max  mpi: 0.0186/0.0194 secs
                min/max  h2d: 0.0051/0.0053 secs
                min/max spmv: 0.0285/0.0292 secs
        TOTAL time: 0.0394 secs, 17043.52 Medges/sec, MFLOPS: 34087.0415

PageRank sum: 1.354529E-04
-------------------------------------------------------------------------------

Here's the list of options accepted by the program

prbench [basic options] [advanced options]
Basic options:
	-S <scale>
	--scale <scale>
		Specifies the problem scale (2^scale vertices).
		Default value: 21.

	-E <edge_factor>
	--edgef <edge_factor>
		Specifies the average number of edges  per  vertex  (2^scale*edge_factor
		total edges).
		Default value: 16.

	-i <niter>
	--iter <niter>
		Specifies how  many  iterations  of  the  PageRank  algorithm  will  be
		performed.
		Default: 20.

	-k <kernel>
	--kstart <kernel>
		Specifies from the kernel from which the benchmark will start (0, 1  or
		2).  Input files for the kernel must be present int the current working
		directory.  This option is useful to test a kernels on specific inputs.
		Default: 0.

	-r <val>
	--rhs <val>
		Specifies the type of r vector to be used for  the  PageRank  algorithm
		(kernel 3).  If this option is not specified the  vector  will	set  to
		normalized random values (as required by  the  benchmark).   Otherwise,
		type can be either a floating point number of  a  file	name.	In  the
		former case all elements of r will be  set  to	"val"  while	in  the
		latter	 the   values	 will	 be    read    from    file    "val".
		Default: random.

	-c <damp_fact>
	--cfact <damp_fact>
		Specifies the damping factor associated with  the  PageRank  algorithm.
		Default: 0.15.

	-a <damp_vect>
	--avect <damp_vect>
		Specifies the damping vector associated with  the  PageRank  algorithm.
		Default: [1.0]*(1-damp_fact)/(2^scale).

	-f
	--fast
		Enables fast mode (skips disk I/O operations).
		Default: false.

	-h
	--help
		Shows this help.

Advanced options:
	-s <seed>
	--seed <value>
		Specify the value used to seed the generation of the kronecker graph.
		Default: 0.

	--no-krcf
		Disables clip and flip on the generated graph.
		Default: enabled.

	--no-krpm
		Disables vertex permutation on the generated graph.
		Default: enabled.

	-g <file>
	--graph <file>
		This option is used to perform the  benchmark  on  a  graph  read  from
		'file' rather than on a synthetic  one.   The  file  must  contain  one
		edge per line represented as a pair of separated numeric strings in the
		range [0:2^scale].  Edges do not need to be sorted.  Please  note  that
		this  option  causes the -s,  --krcf  and  --krpm options to be ignored.
		Moreover it cannot be used together with -k specifying a kernel greater
		than 0.
		Default: disabled.

prbench's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.