# HG changeset patch # User Daichi TOMA # Date 1391977292 -32400 # Node ID 20f33c43722d2b18470a472630d5488408f248cc # Parent 37d54a95bf84ce4a1aed9ae2fdac5007bc8c3bd1 add benchmark diff -r 37d54a95bf84 -r 20f33c43722d paper/benchmark/read7.8/result.txt --- a/paper/benchmark/read7.8/result.txt Sun Feb 09 02:10:04 2014 +0900 +++ b/paper/benchmark/read7.8/result.txt Mon Feb 10 05:21:32 2014 +0900 @@ -1,25 +1,48 @@ -./ParRead +RTS -K1G -N1 -qa N=1 -time: 61.17s +time: 60.95s N=2 -time: 29.94s +time: 30.83s N=3 -time: 21.09s +time: 20.78s N=4 -time: 16.54s +time: 15.49s N=5 -time: 13.13s +time: 12.44s N=6 -time: 10.51s +time: 10.33s N=7 -time: 9.41s +time: 10.43s N=8 -time: 9.27s +time: 10.31s N=9 -time: 8.41s +time: 9.89s N=10 -time: 6.68s +time: 9.04s N=11 -time: 6.63s +time: 8.90s N=12 -time: 6.00s +time: 8.49s +N=13 +time: 7.70s +N=14 +time: 6.89s +N=15 +time: 6.48s +N=16 +time: 5.82s +N=17 +time: 5.81s +N=18 +time: 5.77s +N=19 +time: 6.63s +N=20 +time: 6.54s +N=21 +time: 6.87s +N=22 +time: 6.63s +N=23 +time: 6.46s +N=24 +time: 8.21s diff -r 37d54a95bf84 -r 20f33c43722d paper/benchmark/read7.8/result2.txt --- a/paper/benchmark/read7.8/result2.txt Sun Feb 09 02:10:04 2014 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -N=1 -time: 61.00s -N=2 -time: 33.95s -N=3 -time: 20.94s -N=4 -time: 16.10s -N=5 -time: 12.62s -N=6 -time: 10.72s -N=7 -time: 9.07s -N=8 -time: 8.79s -N=9 -time: 7.37s -N=10 -time: 8.46s -N=11 -time: 6.35s -N=12 -time: 5.88s -N=13 -time: 6.89s -N=14 -time: 6.12s -N=15 -time: 5.66s -N=16 -time: 5.81s -N=17 -time: 5.55s -N=18 -time: 5.54s -N=19 -time: 5.47s -N=20 -time: 5.48s -N=21 -time: 5.20s -N=22 -time: 5.24s -N=23 -time: 4.84s diff -r 37d54a95bf84 -r 20f33c43722d paper/benchmark/read7.8/result_with_qa.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/benchmark/read7.8/result_with_qa.txt Mon Feb 10 05:21:32 2014 +0900 @@ -0,0 +1,48 @@ +N=1 +time: 61.00s +N=2 +time: 33.95s +N=3 +time: 20.94s +N=4 +time: 16.10s +N=5 +time: 12.62s +N=6 +time: 10.72s +N=7 +time: 9.07s +N=8 +time: 8.79s +N=9 +time: 7.37s +N=10 +time: 8.46s +N=11 +time: 6.35s +N=12 +time: 5.88s +N=13 +time: 6.89s +N=14 +time: 6.12s +N=15 +time: 5.66s +N=16 +time: 5.81s +N=17 +time: 5.55s +N=18 +time: 5.54s +N=19 +time: 5.47s +N=20 +time: 5.48s +N=21 +time: 5.20s +N=22 +time: 5.24s +N=23 +time: 4.84s +N=24 +time: 125.09s diff -r 37d54a95bf84 -r 20f33c43722d paper/benchmark/read7.8/result_with_qa_N12.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/benchmark/read7.8/result_with_qa_N12.txt Mon Feb 10 05:21:32 2014 +0900 @@ -0,0 +1,25 @@ +./ParRead +RTS -K1G -N1 -qa +N=1 +time: 61.17s +N=2 +time: 29.94s +N=3 +time: 21.09s +N=4 +time: 16.54s +N=5 +time: 13.13s +N=6 +time: 10.51s +N=7 +time: 9.41s +N=8 +time: 9.27s +N=9 +time: 8.41s +N=10 +time: 6.68s +N=11 +time: 6.63s +N=12 +time: 6.00s diff -r 37d54a95bf84 -r 20f33c43722d paper/chapter4.tex --- a/paper/chapter4.tex Sun Feb 09 02:10:04 2014 +0900 +++ b/paper/chapter4.tex Mon Feb 10 05:21:32 2014 +0900 @@ -19,7 +19,7 @@ 物理コア数 & 12 \\ \hline 論理コア数 & 24 \\ \hline Memory & 126GB \\ \hline -OS & Fedora 14 \\ \hline +OS & Fedora 19 \\ \hline \end{tabular} \end{center} \caption{学科が提供するブレードサーバの仕様} @@ -41,7 +41,7 @@ \begin{center} \begin{tabular}{|c||c|} \hline 言語 & バージョン \\ \hline \hline -Haskell & Glasgow Haskell Compiler, Version 7.6.3 \\ \hline +Haskell & Glasgow Haskell Compiler, Version 7.8 RC1 \\ \hline Java & Java(TM) SE Runtime Environment (build 1.7.0\_51-b13) \\ \hline \end{tabular} \end{center} @@ -69,21 +69,29 @@ 非破壊的木構造データベース Jungle の読み込みの計測結果を表\ref{tab:par_read}に示す. CPUコア数を増やしていくと, 実行時間が短くなっていることが分かる. -シングルスレッドで実行した場合と比較して, 2 スレッドで 1.79 倍, 12 スレッドで 10.77 倍の性能向上が見られる. -実際の計測では, 13 スレッド以上は, 12スレッドより速くなることもあるが, 遅くなる場合もあるなど安定しない結果となっている. +シングルスレッドで実行した場合と比較して, 2 スレッドで 1.97 倍, 12 スレッドで 7.17 倍の性能向上が見られる. +13スレッド以上のハイパースレッディングを用いた計測は, 16スレッド実行時に実行時間が最も短くなる. +しかし, それ以降遅くなったりするなど安定しない結果となっている. + +Haskell では並列実行時にOSの親和性機能を使ってOSスレッドをCPUコアに固定することができる. +OSスレッドをCPUコアに固定するには, 実行時に-qaオプションを付けてプログラムを起動する. +OSの親和性機能を使った場合、2 スレッドで 1.80 倍, 12 スレッドで 10.37 倍の性能向上が見られ, 12スレッド時の性能向上率が大幅に伸びている. +並列に読み込む場合、スレッドを同じプロセッサ上で実行させると性能が向上することがわかる. +しかし、24 スレッドで実行する場合、実行時間が大幅に伸びている. +スレッドがCPUに固定されるため, 性能計測以外のプログラムが実行される場合にうまくスケジューリングが行われないためだと考えられる. \begin{table}[!htbp] \begin{center} -\begin{tabular}{|c||r|} \hline -CPU数 & 実行時間 \\ \hline -1 & 59.77 s\\ \hline -2 & 33.36 s\\ \hline -4 & 15.63 s\\ \hline -8 & 8.10 s\\ \hline -12 & 5.55 s\\ \hline -16 & 5.65 s\\ \hline -20 & 5.23 s\\ \hline -24 & 5.77 s\\ \hline +\begin{tabular}{|c||r|r|} \hline + CPU数 & 通常実行 & qaオプションあり\\ \hline + 1 & 60.95 s & \\ 61.00 s \hline + 2 & 30.83 s & \\ 33.95 s \hline + 4 & 15.49 s & \\ 16.10 s \hline + 8 & 10.31 s & \\ 8.79 s \hline + 12 & 8.49 s & \\ 5.88 s \hline + 16 & 5.82 s & \\ 5.81 s \hline + 20 & 6.54 s & \\ 5.48 s \hline + 24 & 8.21 s & \\ 125.09 s \hline \end{tabular} \end{center} \caption{読み込みの計測結果} diff -r 37d54a95bf84 -r 20f33c43722d paper/master_paper.pdf Binary file paper/master_paper.pdf has changed