今日は、SDPARA の数値実験用のデータを生成。
3次元のデータをある程度準備することにした。
また、2週間ぐらい前に作ったデータがどこかに行ってしまったと思っていたが、今日探したら出てきたので良かった。
今のデータ生成が終了したら、数値実験に入れそうだ。
あと、SparseCoLO のデバッグ。
今まで maxG11.dat-s をうまく解くことができずに困っていたが、なぜか mex ファイルを削除した上で、もう一度コンパイルしなおしたらうまく解けるようになった。
ここにたどり着くまでに2時間ぐらいかかった。
あと、maxSpanningTree に時間がかかっていたのは、他の部分を修正したらmaxSpanningTree 自身は 2 秒程度になってしまったので、ここは改良しないことにした。
今日の作業内容: 問題生成 2h + SparseCoLO 3h
今日のBGM: 電脳コイル OST [1-2], FF7 Reunion
今日のランチ: つかさ 生サーモン照焼き
明日の予測作業時間: 2h
2010年3月29日月曜日
2010年3月28日日曜日
SDPARA の原稿の続き
今日は SDPARA の原稿の校正の続きを行った。
数値実験をまだ行っていないので、その前までであるが、とりあえず英語などを一通り校正した。
これで、今後は数値実験に移っていくことになる。
あと、SparseCoLO の改良については、ヒューリスティクスの部分であるため、どのようなヒューリスティクスが効率的かを検討中。
今日の作業内容: 原稿校正 3h
今日のBGM: MADLAX OST [1-2]
数値実験をまだ行っていないので、その前までであるが、とりあえず英語などを一通り校正した。
これで、今後は数値実験に移っていくことになる。
あと、SparseCoLO の改良については、ヒューリスティクスの部分であるため、どのようなヒューリスティクスが効率的かを検討中。
今日の作業内容: 原稿校正 3h
今日のBGM: MADLAX OST [1-2]
2010年3月27日土曜日
SDPARAの限界
今日、いろいろと打ち合わせをしているときに、クラスタで台数を増やすと SDPARA の限界がでてくる、ということがあったので、どの程度で限界が来るかを計算しておく。
SCM が dense で MPI 並列が N 台のときに、制約本数を m (SDPA sparse format の1行目の数)とすると、SDPARA の限界は
m = 32768 * sqrt(N)
である。
16台なら m = 131072, 32 台なら m=185363 である。
メモリをいくら搭載していても、現状のSDPARAはこれ以上は解けないはずである。
(いま、少し眠くなってきているので、sqrt(2) 倍の違いがあるかもしれない。)
SCM が sparse なときは、SCM の非ゼロの要素数が 2^31 を超えることはできず、これは MPI の並列台数に依存しない。
あと、最近別の本を読み始めているが、これが結構面白い。
ここ1年間では一番面白いかもしれない。
内点法における理論的バックボーンとなる理論が書かれていて、とても面白い。
今日の作業内容: 打ち合わせ 2h
今日のランチ: 食堂 塩ラーメン ひじきの煮物
明日の予測作業時間: 4h
SCM が dense で MPI 並列が N 台のときに、制約本数を m (SDPA sparse format の1行目の数)とすると、SDPARA の限界は
m = 32768 * sqrt(N)
である。
16台なら m = 131072, 32 台なら m=185363 である。
メモリをいくら搭載していても、現状のSDPARAはこれ以上は解けないはずである。
(いま、少し眠くなってきているので、sqrt(2) 倍の違いがあるかもしれない。)
SCM が sparse なときは、SCM の非ゼロの要素数が 2^31 を超えることはできず、これは MPI の並列台数に依存しない。
あと、最近別の本を読み始めているが、これが結構面白い。
ここ1年間では一番面白いかもしれない。
内点法における理論的バックボーンとなる理論が書かれていて、とても面白い。
今日の作業内容: 打ち合わせ 2h
今日のランチ: 食堂 塩ラーメン ひじきの煮物
明日の予測作業時間: 4h
2010年3月26日金曜日
Matlab の mex をプロファイリング と Intro 書き直し
今日は、まず SDPARA の原稿の Intro を書き直した。
やはり、プロットを先に書いておくと、英語と内容の同時進行が英語だけになるので楽である。
これで数値実験の前のところまでは一通り書いたので、もう一度英語を校正することにする。
あと、SparseCoLO で、特定の問題のときに mexMaxSpanningTree2 が遅くなる、ということで調べることにした。
Matlab には、もともと profile というコマンドがあって、これを使うと行ごとの実行時間を表示してくれる。
しかし、profile は mex の時間は測定しても mex のソースは解析しないので、mex が重いときに改善が大変だった。
今回は、gcov というプログラムを使って、ある程度の解析ができることが解かった。
gcov についての説明は、
http://d.hatena.ne.jp/ku-ma-me/20090721/p1
がよくまとまっていて解りやすい。
これを mex に応用する。
なお、mexMaxSpanningTree2 は、通常のコンパイルは、
mex -O2 -largeArrayDims mexMaxSpanningTree2.cpp ccputime.cpp
で、コンパイルしているが、ここで -O を外すとともに -coverage を CXXFLAGS につけ、さらに -lgcov を最後につける。(-Oは最適化してしまうので外す。)
mex -largeArrayDims CXXFLAGS="-fPIC -coverage" mexMaxSpanningTree2.cpp ccputime.cpp -lgcov
これでコンパイルが通る。
(mex が内部的に gcc を呼び出しているため。)
Matlab は mexMaxSpanningTree2.cpp があるディレクトリ SparseCoLO/mex で起動し、この中で SparseCoLO を呼び出して実行する。
すると、いろいろなファイルができるが、その中に
mexMaxSpanningTree2.gcda
というファイルができる。
ここで
gcov mexMaxSpanningTree2.gcda
を実行すると gcov を拡張子とするファイルがたくさんできる。(iostream.h などをincludeしているため、それらの解析ファイルも同時にできる。)
最後に
less mexMaxSpanningTree2.cpp.gcov
とすると、mexMaxSpanningTree2.cpp の各行が何回実行されているかを知ることができる。
(#### で始まるところは、if 文などの分岐の影響で1度も実行されていない。)
Matlab の profile のように秒単位ではなく、何回実行されたかのため、実際のボトルネックかどうか難しいが、今回計測したところでは、ある特定の部分が 100 倍以上実行されていたので、ここがボトルネックと見て間違いなさそうであった。
今日の作業内容: 原稿校正 4h + gcov 1h
今日のBGM: NOIR OST [1-2], FF12 OST [1,2,4]
今日のランチ: 食堂 鶏竜田サラダセット
明日の予測作業時間: 2h
やはり、プロットを先に書いておくと、英語と内容の同時進行が英語だけになるので楽である。
これで数値実験の前のところまでは一通り書いたので、もう一度英語を校正することにする。
あと、SparseCoLO で、特定の問題のときに mexMaxSpanningTree2 が遅くなる、ということで調べることにした。
Matlab には、もともと profile というコマンドがあって、これを使うと行ごとの実行時間を表示してくれる。
しかし、profile は mex の時間は測定しても mex のソースは解析しないので、mex が重いときに改善が大変だった。
今回は、gcov というプログラムを使って、ある程度の解析ができることが解かった。
gcov についての説明は、
http://d.hatena.ne.jp/ku-ma-me/20090721/p1
がよくまとまっていて解りやすい。
これを mex に応用する。
なお、mexMaxSpanningTree2 は、通常のコンパイルは、
mex -O2 -largeArrayDims mexMaxSpanningTree2.cpp ccputime.cpp
で、コンパイルしているが、ここで -O を外すとともに -coverage を CXXFLAGS につけ、さらに -lgcov を最後につける。(-Oは最適化してしまうので外す。)
mex -largeArrayDims CXXFLAGS="-fPIC -coverage" mexMaxSpanningTree2.cpp ccputime.cpp -lgcov
これでコンパイルが通る。
(mex が内部的に gcc を呼び出しているため。)
Matlab は mexMaxSpanningTree2.cpp があるディレクトリ SparseCoLO/mex で起動し、この中で SparseCoLO を呼び出して実行する。
すると、いろいろなファイルができるが、その中に
mexMaxSpanningTree2.gcda
というファイルができる。
ここで
gcov mexMaxSpanningTree2.gcda
を実行すると gcov を拡張子とするファイルがたくさんできる。(iostream.h などをincludeしているため、それらの解析ファイルも同時にできる。)
最後に
less mexMaxSpanningTree2.cpp.gcov
とすると、mexMaxSpanningTree2.cpp の各行が何回実行されているかを知ることができる。
(#### で始まるところは、if 文などの分岐の影響で1度も実行されていない。)
Matlab の profile のように秒単位ではなく、何回実行されたかのため、実際のボトルネックかどうか難しいが、今回計測したところでは、ある特定の部分が 100 倍以上実行されていたので、ここがボトルネックと見て間違いなさそうであった。
今日の作業内容: 原稿校正 4h + gcov 1h
今日のBGM: NOIR OST [1-2], FF12 OST [1,2,4]
今日のランチ: 食堂 鶏竜田サラダセット
明日の予測作業時間: 2h
2010年3月25日木曜日
Intro 書き直しと ecolinux
今日は、原稿の校正の続きをした。
第2章と第3章はそれなりにまとまってきたが、やはり第1章の Intro がダメだ。
Intro なのに書いていることが細かすぎる。
ということで、Intro については全面的に書き直し。
もっと要点をストレートに表現するようにしよう。
あと、今日は ecolinux のチェックも行った。
いつのまにか ecolinux は ubutu 9.10 ベースになっていたので、これを試してみた。
ちなみに、ecolinux は ubuntu をベースにいろんなパッケージを削除してある軽量 ubuntu である。
したがって、ecolinux でインストールしておいて、あとで必要なパッケージを入れて ubuntu にすることも可能なはずである。
インストールしてみて解かったが、ecolinux は ubuntu の gnome を xfce にしただけでなく、いろいろなパッケージを削って高速化してあるようだ。
普通に ubuntu をインストールしたあとに xfce に切替えたときよりも、ecolinux のほうが速く起動するし、全体的にも動きが速い。
今日の作業内容: 原稿校正 3h + ecolinux 2h
今日のBGM: MADLAX OST [1-2], Xenosage II OST [1-2]
今日のランチ: 明太子ニラチャーハン
明日の予測作業時間: 4h
第2章と第3章はそれなりにまとまってきたが、やはり第1章の Intro がダメだ。
Intro なのに書いていることが細かすぎる。
ということで、Intro については全面的に書き直し。
もっと要点をストレートに表現するようにしよう。
あと、今日は ecolinux のチェックも行った。
いつのまにか ecolinux は ubutu 9.10 ベースになっていたので、これを試してみた。
ちなみに、ecolinux は ubuntu をベースにいろんなパッケージを削除してある軽量 ubuntu である。
したがって、ecolinux でインストールしておいて、あとで必要なパッケージを入れて ubuntu にすることも可能なはずである。
インストールしてみて解かったが、ecolinux は ubuntu の gnome を xfce にしただけでなく、いろいろなパッケージを削って高速化してあるようだ。
普通に ubuntu をインストールしたあとに xfce に切替えたときよりも、ecolinux のほうが速く起動するし、全体的にも動きが速い。
今日の作業内容: 原稿校正 3h + ecolinux 2h
今日のBGM: MADLAX OST [1-2], Xenosage II OST [1-2]
今日のランチ: 明太子ニラチャーハン
明日の予測作業時間: 4h
2010年3月24日水曜日
2010年3月23日火曜日
統数研に行ってきた
今日は、統数研での研究集会を聞きに行ってきた。
立川の駅から歩いて行ったら、30分近いウォーキングとなった。
いろいろと面白い内容が多かったが、自分としては一番最初の研究内容が面白かった。
情報幾何を使って解析していたが、あれを実際に SDP で計算できたらおもしろそうである。
ちなみに、帰りに南武線に乗ってきたら、山手線が止まっていたようだ。
しかも、武蔵小杉まで来たら、今度は東横線が止まっていて、「武蔵小杉折り返し」を行っているのを初めて見た。
今日の作業内容: 研究集会 6h
今日のBGM: なし
今日のランチ: 瑞京 ホタテのチリソース
明日の予測作業時間: 3h
立川の駅から歩いて行ったら、30分近いウォーキングとなった。
いろいろと面白い内容が多かったが、自分としては一番最初の研究内容が面白かった。
情報幾何を使って解析していたが、あれを実際に SDP で計算できたらおもしろそうである。
ちなみに、帰りに南武線に乗ってきたら、山手線が止まっていたようだ。
しかも、武蔵小杉まで来たら、今度は東横線が止まっていて、「武蔵小杉折り返し」を行っているのを初めて見た。
今日の作業内容: 研究集会 6h
今日のBGM: なし
今日のランチ: 瑞京 ホタテのチリソース
明日の予測作業時間: 3h
登録:
投稿 (Atom)