Search code examples
graphbenchmarking

How to compile dan run Graph500 benchmark


I am currently working on Graph500 benchmark. I have downloaded the benchmark code and try to compile and run it in a single node (multithreaded). I have read the README and edited the Makefile, and then compiled and run it in different nodes but they all gave me the same errors.

$ wget http://www.graph500.org/sites/default/files/files/graph500-2.1.4.tar.bz2
$ tar xvjf graph500-2.1.4.tar.bz2
$ cd graph500-2.1.4
$ cp make-incs/make.inc-gcc make.inc
$ nano Makefile     {here I edit line 4: BUILD_OPENMP = Yes}
$ make

This is the result of the command 'make':

cc -g -std=c99 -DUSE_MMAP_LARGE -DUSE_MMAP_LARGE_EXT -I./generator seq-list/seq-list.c graph500.c options.c rmat.c kronecker.c verify.c prng.c xalloc.c timer.c generator/splittable_mrg.c generator/graph_generator.c generator/make_graph.c generator/utils.c -lm -lrt -o seq-list/seq-list
cc -g -std=c99 -DUSE_MMAP_LARGE -DUSE_MMAP_LARGE_EXT -I./generator seq-csr/seq-csr.c graph500.c options.c rmat.c kronecker.c verify.c prng.c xalloc.c timer.c generator/splittable_mrg.c generator/graph_generator.c generator/make_graph.c generator/utils.c -lm -lrt -o seq-csr/seq-csr
cc -g -std=c99 -fopenmp -DUSE_MMAP_LARGE -DUSE_MMAP_LARGE_EXT -I./generator make-edgelist.c options.c rmat.c kronecker.c prng.c xalloc.c timer.c generator/splittable_mrg.c generator/graph_generator.c generator/make_graph.c generator/utils.c -lm -lrt -o make-edgelist
cc -g -std=c99 -fopenmp -DUSE_MMAP_LARGE -DUSE_MMAP_LARGE_EXT -I./generator omp-csr/omp-csr.c graph500.c options.c rmat.c kronecker.c verify.c prng.c xalloc.c timer.c generator/splittable_mrg.c generator/graph_generator.c generator/make_graph.c generator/utils.c -lm -lrt -o omp-csr/omp-csr

I notice it generates four executables: make-edgelist, seq-list, seq-csr, omp-csr.

And then I tried to construct the graph using this command, make-edgelist which I believe it uses the Kronecker algorithm to construct graph, but it gives me error (there appear a lot of strange characters):

$ ./make-edgelist
3%???(?<? ?!
F0?5?8?D?$q??8';?(2C0??Z232x5??=:?-?:w2'??:? Z,{5}4 ? g2? g2? g2@A g2`?D?! g2
mmap failed: Cannot allocate memory
Aborted (core dumped)

Then I try to run the other executables and still gives me error.

$ cd seq-list
$ ./seq-list
mmap failed: Cannot allocate memory
Aborted (core dumped)

I am wondering if I have done the correct procedure or not. Thank you.


Solution

  • edit your make.inc and remove -DUSE_MMAP_LARGE -DUSE_MMAP_LARGE_EXT from there unless you boot up your kernel with right options