GAPベンチマーク・スイートは、評価の標準化によってグラフ処理研究を支援することを目的としている。 グラフ処理評価の差異を少なくすることで、異なる研究努力の比較や改善の定量化が容易になる。 このベンチマークは、グラフカーネル、入力グラフ、評価方法を規定するだけでなく、最適化されたベースライン実装(このレポ)も提供している。
- Breath First Search (BFS) : 方向最適化
- Single-Source Shortest Paths (SSSP) : デルタステップ法
- PageRank (PR) : プル方向の反復法
- Connected Component (CC) : Afforest & Shiloach-Vishkin
- Betweenness Centrality (BC) : ブランデス
- Triangle Count (TC) : 順序不変、再ラベリング可能
GAP Benchmark Suiteのコンパイル方法
# リポジトリのダウンロード
$ git clone https://github.com/sbeamer/gapbs.git
$ make bench-graphs $ make bench-run
bench-graphs
はダウンロードしたベンチマーク・テストセットから、ベンチマーク・プログラムに入力するために型の変換を行う。
bench-runは
実際にベンチマークプログラムの実行を行う。通常の実行であれば、大きめのサーバであっても数時間を要する。
./pr -f benchmark/graphs/road.sg -i1000 -t1e-4 -n16 > benchmark/out/pr-road.out ./cc -f benchmark/graphs/road.sg -n16 > benchmark/out/cc-road.out ./bc -f benchmark/graphs/road.sg -i4 -n16 > benchmark/out/bc-road.out ./bfs -f benchmark/graphs/kron.sg -n64 > benchmark/out/bfs-kron.out ./pr -f benchmark/graphs/kron.sg -i1000 -t1e-4 -n16 > benchmark/out/pr-kron.out ./cc -f benchmark/graphs/kron.sg -n16 > benchmark/out/cc-kron.out ./bc -f benchmark/graphs/kron.sg -i4 -n16 > benchmark/out/bc-kron.out ./tc -f benchmark/graphs/kronU.sg -n3 > benchmark/out/tc-kron.out ./bfs -f benchmark/graphs/urand.sg -n64 > benchmark/out/bfs-urand.out ./pr -f benchmark/graphs/urand.sg -i1000 -t1e-4 -n16 > benchmark/out/pr-urand.out ./cc -f benchmark/graphs/urand.sg -n16 > benchmark/out/cc-urand.out ./bc -f benchmark/graphs/urand.sg -i4 -n16 > benchmark/out/bc-urand.out ./tc -f benchmark/graphs/urandU.sg -n3 > benchmark/out/tc-urand.out ./sssp -f benchmark/graphs/twitter.wsg -n64 -d2 > benchmark/out/sssp-twitter.out ./sssp -f benchmark/graphs/web.wsg -n64 -d2 > benchmark/out/sssp-web.out ./sssp -f benchmark/graphs/road.wsg -n64 -d50000 > benchmark/out/sssp-road.out ./sssp -f benchmark/graphs/kron.wsg -n64 -d2 > benchmark/out/sssp-kron.out ./sssp -f benchmark/graphs/urand.wsg -n64 -d2 > benchmark/out/sssp-urand.out ./tc -f benchmark/graphs/twitterU.sg -n3 > benchmark/out/tc-twitter.out ./tc -f benchmark/graphs/webU.sg -n3 > benchmark/out/tc-web.out ./tc -f benchmark/graphs/roadU.sg -n3 > benchmark/out/tc-road.out
結果は実行時間で取得できる。
for out in `ls -1 *.out` do echo -n ${out} ':' grep Average ${out} done
bc-kron.out :Average Time: 78.94669 bc-road.out :Average Time: 829.96082 bc-twitter.out :Average Time: 39.44177 bc-urand.out :Average Time: 94.57923 bc-web.out :Average Time: 20.79808 bfs-kron.out :Average Time: 4.07169 bfs-road.out :Average Time: 206.68253 bfs-twitter.out :Average Time: 4.17816 bfs-urand.out :Average Time: 4.29056 bfs-web.out :Average Time: 3.77706 cc-kron.out :Average Time: 4.39335 cc-road.out :Average Time: 0.36037 cc-twitter.out :Average Time: 1.37252 cc-urand.out :Average Time: 3.68049 cc-web.out :Average Time: 0.89868 pr-kron.out :Average Time: 32.72281 pr-road.out :Average Time: 1.25165 pr-twitter.out :Average Time: 18.62348 pr-urand.out :Average Time: 39.28258 pr-web.out :Average Time: 4.29745 sssp-kron.out :Average Time: 49.12129 sssp-road.out :Average Time: 56.80930 sssp-twitter.out :Average Time: 33.54466 sssp-urand.out :Average Time: 46.43984 sssp-web.out :Average Time: 51.23079 tc-kron.out :Average Time: 330.52365 tc-road.out :Average Time: 0.03027 tc-twitter.out :Average Time: 45.55035 tc-urand.out :Average Time: 84.87536 tc-web.out :Average Time: 18.31299