研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

中国版は安いらしい

2010-05-31 14:19:19 | Weblog
O'Reilly は非常に良質な本が多くお気に入りである。

もちろん洋書も購入できるが日本語版に比べ1.5倍程高いので、
日本ではわざわざ高い方を選択するメリットはあまりないかもしれないが、
研究室の留学生(中国人)によると、
中国現地から中国語版を輸入した方が非常に安くつくとのこと。

かかった金額の半分は送料だが半額くらいで手に入れられるそうだ。
複数冊買えばお買い得。

2周年

2010-05-30 14:01:49 | Weblog
2008.05.29 - 2010.05.29 で1日1記事2周年です。

正直2回程かなり期間の開いた更新になってしまいました。
今後は先攻して行きたいと思います。

といいつつ、すでに1ヶ月分も滞納。

C v.s. C++ その2

2010-05-26 13:58:43 | Weblog
C++ 化してみた。
やはり class を使用すると非常に綺麗にかける。
template はコストが非常に高いので、使用していない。

思った以上に速い。というか速すぎる。
サンプルプログラムなので、不要な処理等をしてないにしても、
なぜだか分からない。。

これまでは C++ のアクセスコストを気にして使用していなかったが、
かなり速いのも書けるなら C++ もありかもしれない。

     g++-4.1.2  g++-4.4.0  icpc-11.1
-O2     5.338s     5.334s     5.291s
-O3     5.279s     5.268s     5.314s


C v.s. C++

2010-05-25 13:57:48 | Weblog
C と C++ での性能に違いが出るか測定してみた。

元は C のソースなのだが、
4.1.2 では gcc > g++ だが、
4.4.0 では gcc < g++ のようだ。

誤差ではなさそうだがよくわからない。

gcc も icc もそこまで差はないようだ。
icc は default が速い。
(-fast はコンパイルできなかった)


最短路ソルバ / USA(24M nodes / 58M arcs) / SS x 1
CPU: Xeon X5460 3.16GHz
Mem: GCC-4.1.2 / GCC-4.4.0 / ICC-11.1
     gcc-4.1.2  g++-4.1.2
       10.179s    10.212s
-O2     5.411s     5.442s
-O3     5.466s     5.411s

     gcc-4.4.2  g++-4.4.2
       10.123s     9.054s
-O2     5.343s     5.305s
-O3     5.350s     5.324s

     icc-11.1   icpc-11.1
        5.327s     5.303s
-O2     5.340s     5.301s
-O3     5.348s     5.302s

ダイクストラ法: 初期化

2010-05-24 14:06:29 | Weblog
Dijkstra法では実行前に、始点からの距離 d(v), 直前点 p(v) といったラベルを初期化する必要があるが始点終点間が短い場合この初期化がバカにならない。

そこで time stamp を導入し、初期化が必要であるときまで初期化を
実際 Goldberg の mbp でもそのように実装されている。

簡単ではあるがサンプルプログラムを作成し実験してみた。

1. 近い点の場合

※ 画像は両方向だが、実験には通常の Dijkstra with 2-heap

normal 0.556s
time stamp 0.769s

2. 遠い点の場合

※ 画像は両方向だが、実験には通常の Dijkstra with 2-heap

normal 4.314s
time stamp 4.928s

3. まとめ
結果としてあれ?といったところ。

SCI'10

2010-05-23 13:52:09 | Weblog
「SCI'10 第54回システム制御情報学会研究発表講演会」に参加してきた。
制御分野でも最適化が広く応用されていることを実感することができた。
ちなみに会場は京都リサーチパークであったが名前ほどパーク感はないと思う。

西澤研@関大

2010-05-22 13:53:21 | Weblog
2年前にもお邪魔した研究室に今回も訪問した。
建築なので分野は異なるが、非常に活気のある研究室であった。

普段、呼ばない限り来ない(呼んでも全員は来ないが)ということに慣れてしまっているので、4年生で毎日大学にいると聞いて非常に驚いた。関西であるためかキャンパス内も非常活気があり、楽しく過ごせた。

crontab の使い方

2010-05-21 16:57:10 | Weblog
プログラムを定期的に実行したい場合、crontab を利用することが非常に便利である。性能バラツキ実験でも使用した。

例) 10分おきに実験を行う場合は次のようなファイルを用意する
*/10 * * * * sh run-sp.sh

○ お手軽なlistの設定
$ crontab [FILE]

○ 設定されているlistの表示
$ crontab -l

○ 設定されているlistの削除
$ crontab -r

○ ファイルフォーマット
* * * * * COMMAND
※ 順に分、時、日、月、曜日となる

□ 取りうる値
分(0-59) / 時(0-23) / 日(1-31) / 月(1-12) / 曜(0-7) (0,7は日曜日)

□ 時間指定方法
・ 0,10,20
・ 30-40
・ 0,10,20,30-40
・ */10 (分だと 0,10,20,30,40,50 と同じ)

EC2 早くなっている?

2010-05-20 13:53:54 | Weblog
過去に行った実験結果との比較してみると性能が上がっているようである。

まずは
○ 過去の結果
1thread   88.53s
2threads  53.20s
次に
○ 今回の結果
            ave.   min.   max.
1thread   72.717 72.448 73.592
2threads  44.263 39.389 66.504

これだけでは EC2 ノードの個体差であるか、EC2 ノードの性能向上であるかは分からないが、そのうち性能低下が非常に小さな仮想マシンも出てくるのであろうかと期待してみる。

EC2 v.s. 実機 v.s. 実機(HugeTLBfs) - その2

2010-05-18 00:35:11 | Weblog
実験結果を示す。

EC2: m1-large
7.5 GB memory
4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each)
850 GB instance storage (2×420 GB plus 10 GB root partition)
64-bit platform
I/O Performance: High
API name: m1.large

実機:
Xeon E5345 2.33 GHz x 2
16GB memory
64-bit


まずは EC2 ノードでの結果から


次に実機での結果。


最後に実機(HugeTLBfs)での結果。

EC2 v.s. 実機 v.s. 実機(HugeTLBfs) - その1

2010-05-17 00:34:24 | Weblog
EC2 と実機と実機(HugeTLBfs) での実験結果を紹介していく。

まずは背景を
1. EC2ノードは非常にばらつきが大きいと思うがいかほどか
2. 実機と比べてどの程度の性能であるか

次に実験方法を
1. crontab を利用して10分間隔で24時間分の実行ログ(144回分)
2. 使用するのは「最短路ソルバ」
3. 全米データに対して1対全最短路問題を10クエリ解かせた際の実行時間