我目前正在研究Graph500基准测试。我已经下载了基准代码,并尝试在单个节点(多线程)中编译和运行它。我已经阅读了自述文件并编辑了 Makefile,然后在不同的节点中编译并运行它,但它们都给了我相同的错误。
$ 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
这是命令"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
我注意到它生成了四个可执行文件:make-edgelist,seq-list,seq-csr,omp-csr。
然后我尝试使用这个命令构建图形,make-edgelist,我相信它使用Kronecker算法来构建图形,但它给了我错误(出现了很多奇怪的字符):
$ ./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)
然后我尝试运行其他可执行文件,但仍然给我错误。
$ cd seq-list
$ ./seq-list
mmap failed: Cannot allocate memory
Aborted (core dumped)
我想知道我是否做了正确的程序。谢谢。
编辑你的make.inc并从那里删除-DUSE_MMAP_LARGE-DUSE_MMAP_LARGE_EXT,除非你用正确的选项启动你的内核