2009年12月28日月曜日
今日で仕事納め
ということで、今日はそれほど急がずにゆっくりと作業をした。
あと、SNL の計算は、やはり理由がいまひとつ解からないので、これは越年で頑張ろうと思う。
あと、CUDA のOpenGL を使っているサンプルプログラムは、ssh 経由だとやはり失敗する。
$ glxinfo grep rendering
とすると、
direct rendering: No
となって表示できないことがわかる。本体に直結しているディスプレイなら表示できるが、起動時にディスプレイに接続してディスプレイに電源を入れておかないと、ディスプレイをきちんと認識できないようで、この場合は本体直結のディスプレイでも失敗する。
結局、ディスプレイの電源を入れて reboot したら direct rendering: Yes となって、ディスプレイには表示できるようになった。
今日の作業内容: SNL 計算 3h + CUDA 下調べ 2h
今日のBGM: Romancing Saga3 OST [1-3], 小松未歩 [7,8]
今日のランチ: 味庵 酢豚
明日の予測作業時間: ??
来年の予測作業時間: すごくたくさん
今日は仕事納めなので、もう少し書いておく。
今年のお仕事は、当初予定に比べると 80% 程度の進行状況だったかと思う。
論文のひとつが思いっきり時間がかかってしまい、もうひとつの論文も遅れることになってしまった。
やはり、仕事は〆切を決めて、それから逆算するスケジュールを確立しないといけない。
特に並列計算は数値実験に時間がかかるので、このあたりは注意したい。
ただ、論文については、共著が思っていたよりも多くなったので、それは良かった、と思う。
来年は 1st author の論文を増やせるように頑張ろう。
仕事内容としては、この年末でかなり大き目の区切りとなるので、今後どうするかもそろそろ考えたいところ。
ぼちぼち相対性理論のほうの面白そうな枠組みを本格的に取り組んでみたい気もするけど、いきなり大掛かりにはできないので、小さいところからスタートしてみようと思う。
2009年は思っていた以上に楽しかった。2010年は、もっと楽しくしようと思う。
2009年12月26日土曜日
SNL の計算
いくつかの条件があるときに、SDP で解くとSNLの唯一の解になる、という定理があって、それを確認している。
条件には大きく分けて2段階あって、2段階目が正しく動作していることは確認できているのだが、なぜか唯一の解のところに一致しない。
やはり、1段階目を確認しなおさないとダメなようだ。検算用には、計算時間がかかっても今までと違ったアルゴリズムで確認したいので、どういったアルゴリズムがあるかを確認したいところだ。
まぁ、5頂点+4センサーなので、人間が頑張れば何とかなる範囲かもしれない。
今日の作業内容: SNL の確認 5h
今日のBGM: かぜよみ, マクロス V-Col [2]
明日の予測作業時間: 3h
2009年12月25日金曜日
CUDA インストール
そこで、とりあえず CUDA をインストールしてみた。
デバイスが見つからない、というエラーメッセージが出て苦労したが、どうやら Xorg が起動していないとダメなようだ。(init 3 で起動していたので、Xorg が起動していなかった。)
とりあえず Bandwidth を調べてみたところ、以下のような数字になった。
あと、動的計画法を CUDA で解いている文献を見つけたので、それも参考にしようと思う。
Running on......
device 0:Quadro FX 1800
Quick Mode
Host to Device Bandwidth for Pageable memory
.
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 2849.8
Quick Mode
Device to Host Bandwidth for Pageable memory
.
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 2406.6
Quick Mode
Device to Device Bandwidth
.
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 29831.5
&&&& Test PASSED
Press ENTER to exit...
あ、今日は DONLP2 をするはずだったのに。ちょっと寄り道してしまった。
明日は、DONLP2 を頑張ろう。
今日の作業内容: CUDA 3h + その他 4h
今日のBGM: マクロスF OST [1-2], ARIA OST [1-3]
今日のランチ: たちばな ちらし
明日の予測作業時間: 5h
2009年12月24日木曜日
計算機の設定
OSは RHEL 5.4 で、追加したソフト類は
EPEL (Extra Packages for Enterprise Linux)
git
mpich2
gcc44
python2.5
特に、EPEL をインストールしておくと、git,mpich2,gcc44 などが yum 経由でインストールできるので、とても便利である。
あと、python2.5 については、
こちらのページ
を参考にしてインストールした。
ほぼ一通りのことはできるようになったので、設定はこれでOKかと思う。
明日は、先送りになっていた DONLP2 の論文のチェック。だいぶ先送りになっていたので、最初から読み直したほうが効率的かもしれない。
今日の作業内容: 計算機の設定 3h + その他 3h
今日のBGM: マクロスF OST [1-2], FF12 OST [1]
今日のランチ: シッダルータ ほうれんそうとチキンのカレー
明日の予測作業時間: 6h
2009年12月22日火曜日
2009年12月21日月曜日
SDPA-Python Interface on Mac OS X
Mac OS X の場合、shared library が Linux とは少し違うので、コンパイラオプションなどを変更する必要がある。
まず、コンパイルするときに、gcc に
Linux なら -shared をつけるが、Mac OS X の場合には -dynamic が基本。
ただし、Python が絡むと、これではうまくいかず、-undefined dynamic_lookup -bundle をつけることになる。(参考にしたのは、このページ)
面倒なので、Makefile に以下のような記述を追加。
これで、gcc $(SHARED_OPTION) とすれば、大丈夫。
SHARED_OPTION = -shared
ifeq ($(OS),Darwin)
SHARED_OPTION = -undefined dynamic_lookup -bundle
endif
あと、Matlab の mex で気がついたが、mex で CXX=g++-4 を渡すと、libgfortran.a の場所を自動的には発見できない。-L/sw/lib/gcc4.3/lib などで明示的に渡す必要がある。
ほかに、Linux でどの shared library を使っているかは、
$ ldd ???.so
であるが、Mac OS X では、ldd がないので、
$ otool -L ???.so
で対応する。なお、Mac OS X の shared library の拡張子は本来 dylib であるが、python の場合は so でも正常に動作する。(というか、dylib の方を試していない。)
とりあえず、Mac OS X でも Python Interface で問題を解くことに成功。
あと、投稿用の文章は、一通り英語の校正が終了。数値実験は、残りは PCSDP のみ。おそらく、PCSDP の実験は SDPARA の実行時間から予測すると、年をまたぎそうだ。
明日はすこし時間ができそうなので、久しぶりに DONLP2 の方をチェックしよう。
今日の作業内容: 投稿用文章 1h + Python 4h
今日のBGM: FF12 OST [1,2,4]
今日のランチ: らく 焼魚定食
明日の予測作業時間: 5h
2009年12月18日金曜日
英語の勉強
投稿用の文章は、ある程度のラフスケッチは終了。これで数値実験結果を待って、文章をアップデートしていけばOKなはず。PCクラスタのスピードによっては、正月に入る前に終われるかもしれない。
今日の作業内容: 英語チェック 2h + 投稿用文章 2h
今日のBGM: NOIR OST [1-2], MADLAX OST [1-2]
今日のランチ: つかさ サワラ西京焼き
明日の予測作業時間: 4h
2009年12月17日木曜日
メガネの歌のうまい学生
すでに教えてもらってあると勘違いしていた。うっかり。
ということで、他の人にメールアドレスを教えてもらうか、Blog 経由で連絡にするか、それとも mixi 経由にするか、であるが、どれが一番面白いだろうか、を現在検討中。
ところで、投稿用の文章は今日も1ページ程度進んだ。そろそろ数値実験結果が入ってこないと文章が組み立てづらくなってきたので、数値実験もあわせて進めていきたい。
今日の作業内容:投稿用準備 4h
今日のBGM: SKY OST [1-2], DewPrism OST [1-2]
今日のランチ: シッダルータ ほうれんそうとチキンのカレー
明日の予測作業時間: 5h
2009年12月16日水曜日
投稿用、まだまだ続く
数値実験も準備段階は終わりつつあって、どれくらいのサイズの問題を解けばいいのか解かってきたので、それを使って実験をスタートしようと思う。
今日の作業内容: 論文作成 4h
今日のBGM: MADLAX OST [1-2], FF6 OST [1,2]
今日のランチ: らく 焼魚定食
明日の予測作業時間: 4h
2009年12月15日火曜日
投稿用の続き
これと並行して数値実験。制御の問題で、特定のサイズで乱数で発生させている問題が pdINF でうまく解けていなかったが、初期点のパラメータを変更したところ、それなりに解けるようになった。どうやら中心パスから、かなり遠いところでスタートしていたようだ。
あと、昨日いただいたコメントに基づいて GotoBLAS2 の起動にかかる時間をチェック。Makefile.rule で、一度
NO_WARMUP = 1
を設定したが、これでは変わらず。make clean をしたかどうか覚えていないので、いっそのこと tar+gz を展開するところからやり直し。これで起動にかかる時間が正常になった。
ところで、このWARMUP って何だろう?今度時間があるときに何をしていて、それでどうして遅くなっていたのかを調べることにしよう。
今日の作業内容: 投稿用続き 4h + 論文対応 1h
今日のBGM: FF10 OST[1,2,4]
今日のランチ: しばた さけいくら丼
明日の予測作業時間: 4h
2009年12月14日月曜日
投稿用の文章の作成
これにあわせて行っている数値実験だけど、SDP の問題生成ルーチンが乱数で生成している関係で、変なサイズだと pdINF で終わってしまうことがある。まずは、別の乱数で生成しなおしている。
あと、別に投稿していた論文の refree からのコメントへの対応策を考え中。こっちは、調べれば調べるほど深みにはまりそうな展開で、さらっと流すほうがいいのかもしれない。
ところで、今日、このブログに初めてコメントがついた。どうやら、このブログにもコメントをつける機能があったらしい。初めて知った。GotoBLAS のコンパイルに関する内容で、かなり細かいところを教えてもらったので、明日以降文章を書くのと並行してコンパイルしてみようと思う。
今日の作業内容: 文章作成 3h + 論文対応 1h
今日のBGM: MADLAX OST [1-2]
今日のランチ: 信華園 鶏肉両面焼きそば
明日の予測作業時間: 4h
2009年12月11日金曜日
SDPA-Python Interface を実装
import sdpap;
At,b,c,K,blockStruct = sdpap.fromsdpa('control7.dat-s');
x,y,info = sdpap.sedumiwrap(At,b,c,K);
のように sedumi っぽく書くことができる。もちろん、中身で動くのは SDPA のアルゴリズムそのもので、インターフェースだけが変わっていることになる。(SDPA の callable library にリンクしている。)
とりあえず自分のところではコンパイルできるようになったので、ほかのところ(Macなども)でもできるのか、確認してみたいところだ。
あと、SIAM Review の最新号が到着。 Lassere の論文が、この前投稿した論文に似たようなタイトルだったので、ちょっと焦ったが、内容はかなりちがかったので、ほっと一安心。
今日は、あとは SDPA7 の論文の変更すべき点の確認と、他の論文のフォーマットの確認。
明日は午前中に論文構成を練ることにして、午後に SDPA7 の論文をチェックしよう。
今日の作業内容: Python 実装 5h + 論文確認 1h + フォーマット確認 1h
今日のBGM: FF12 OST [1-4]
今日のランチ: いろは チキンステーキ
明日の予測作業時間: 6h
2009年12月10日木曜日
Python で SDP を標準形に
今日は Python の続きで、SDPA sparse format のファイル出力に先立って、標準形に変更する (free 変数をふたつの非負変数にする) ところを書いた。ある程度 Matlab に近い形で書けるので、かなり便利だ。
あと、Python で型を調べるときには、type などもあるが、どうやら isinstance を使うのがいいようだ。type だと自分で作った class の instance を、class との名前で判断できないときがある。
たとえば、
def myclass(object):
クラスの中身
であるときに、
>>> myclassI = myclass();
とすると、
type(myclassI) is myclass
は False になるが
isinstance(myclassI,myclass)
は True になる。
明日は、ファイル出力関数を C/API で書く。
また、SDPA の論文についても修正点を整理しないと。
今日の作業内容: Python 3h + その他 1h
今日の BGM: Chrono Trigger OST [1-3]
今日のランチ: シッダルータ チキンとひよこ豆のカレー
明日の予測作業時間: 6h
2009年12月9日水曜日
Python で fromsdpa
ただ、まだ Python になれていないので、変なバグに遭遇すると時間がかかる。今日も、help(sdpa) としたら、「配列の要素が越えてるぞ!」という意味不明のバグに遭遇し、30分消費。結局、pythonを起動しなおしたら、バグが取れた。いまひとつ謎。
あとは、SDPARA の数値実験開始。思っていたよりも数値精度がでないときがあるので、明日結果を見て判断しよう。制御の問題を生成するプログラムも作ったし、これの結果も確認していきたい。
SDPA の論文は、まだまだ英語がこなれていないので、英語を頑張ろうと思う。英語は、単語の微妙なニュアンスが難しいけど、そこが頑張りどころ。
今日の作業内容: python 5h + SDPARA 数値実験 1h + SDPA 論文 1h
今日のBGM: EVA OST [1-3]
今日のランチ: 味庵 回鍋肉
明日の予測作業時間: 3h
2009年12月8日火曜日
Python の勉強
あと、SDPARA の数値実験用にSDP問題を生成。これは、かなり時間がかかりそう。でも、できあがってしまえば、あとは SDPARA にシェルスクリプトで放り投げるだけ。
そうそう、SDPA のインストール中に気がついたが、GotoBLAS2 で実行しようとするとやけに時間がかかる。SDPA のコマンドを入力してから終了まで 6 秒近くかかるのに、SDPA 本体の時間は 0.3 秒程度。時間に余裕ができたら、ATLAS でも実行してみて、どうなっているのかを確認してみよう。
今日の作業内容: Python 勉強 4h + 問題生成 2h
今日のBGM: FF12 OST [1-4]
今日のランチ: 信濃 親子丼とうどんのセット
明日の予測作業時間: 6h
2009年12月7日月曜日
ATLAS と rpath
このことに気がつくのに、4時間ぐらい時間を費してしまった。その間に ATLAS を5回ぐらいコンパイルしてしまった。あと、自分のところの CPU はちょっと古いのか(AMD Athlon64 3700+)、ATLAS 3.9.4 ぐらいのバージョンでないとコンパイルに失敗してしまう。
ということで、今日は ATLAS な一日だった。明日こそは、python を勉強しよう。
今日の作業内容: ATLAS コンパイル 4h + lapack などもコンパイル 1h
今日の BGM: FF6 OST [1-3]
今日のランチ: 久絵 煮魚定食
明日の予測作業時間: 6h
2009年12月6日日曜日
CVXOPT を Vine にインストール
インストールするものは、python 2.6.2, lapack, atlas, cvxopt の順番。
python をインストールする前には、readline-devel を apt-get しておくと、python インタープリタでの行編集が可能になる。あと、make する前に
$ export LANG=jp_JP.UTF-8
をしておくと、途中でストップする現象が回避できる。
また、atlas, lapack はそれぞれ shared libs にする必要があって、これらを自動的に読み込む必要がある。これは、~/.bashrc に
export LD_PRELOAD=$HOME/lapack/lib/libatlas.so:$LD_PRELOAD
export LD_PRELOAD=$HOME/lapack/lib/libcblas.so:$LD_PRELOAD
export LD_PRELOAD=$HOME/lapack/lib/libf77blas.so:$LD_PRELOAD
export LD_PRELOAD=$HOME/lapack/lib/liblapack.so:$LD_PRELOAD
のようにしておく。
これらを踏まえた上で、CVXOPT の setup.py の atlas, lapack の部分を修正(特に 'blas' を 'atlas' にする必要あり。) で
$ python setup.py install
でOKになる。
いちおう、python を起動して、
>>> import cvxopt
>>> dir(cvxopt)
で cvxopt パッケージにどのようなものが入っているか確認できれば、インストール終了。
明日は、python での C 言語へのリンクをチェックしよう。
今日の作業内容: CVXOPT インストール 5h + DONLP2 論文チェック 1h
今日のBGM: FF5 OST [1-2], かぜよみ
明日の予測作業時間: 3h
2009年12月4日金曜日
DSDP のモジュール
今日の作業内容: CVXOPT チェック 2h + 論文校正 1h
今日のBGM: アルジュナ OST [1]
今日のランチ: らく 刺身定食
明日の作業時間予測: 5h
2009年12月3日木曜日
CVXOPT の勉強
Python で sparse matrix を扱うには、numpy や pysparse など色んなパッケージを勉強する必要があって、それに手間取っていたが、CVXOPT にも既に sparse matrix の扱いや、dense matrix へのlapack, blas があって、そちらをとりあえずは使うことにしてみる。もし性能面で満足できなければ、また考える必要があるけど、なんとかなるような気もしている。
明日は、CVXOPT のユーザーマニュアルに目を通そう。
ちなみに、CVXOPT の Conic Programming のところは計算式がまとまっていて、
こちらの PDF を読むとよくわかる。
あと、メモ情報。Optimization Online の論文に Nonlinear Programming の歴史みたいなものが載っていて、これまでどういった手法があったかをまとめたものが、最近出てきた。
リンクとしては、こちらの PDF。
これも時間があったら読んでみたい。
今日の作業内容: CVXOPT 2h
今日のBGM: 聖剣伝説4 OST [1]
今日のランチ: 味庵 五目あんかけ焼きそば
明日の予測作業時間: 3h
2009年12月2日水曜日
DONLP2 と CVXOPT
An SQP method for general nonlinear programs using only eqaulity constrained subproblems, Mathetical Programming, 82(3), 1998
ただ、この論文、英語のコンマが足りなくて、ちょっと読みづらい。あと、SQP については解かっているものとして書いているので、その知識を持ってくることも必要なようだ。
あと、CVXOPT は atlas にリンクしていなかったので、atlas にリンクしようとしたら、dgemv_ が見つからない、などのエラーが出るようになった。とりあえずどうなっているかを見ているだけなので、libblas.so を呼び出すので OK にしておこうかと思う。pysparse については、コンパイルするのに libg2c.a が必要で、これのために
#rpm -ql compat-gcc-34-g77
を行った上で、setup.pyの最初のあたりを
library_dirs_list= ['/usr/lib64','/usr/lib/gcc/x86_64-redhat-linux/3.4.6']
に変更する必要があった。いまのところ動いてはいるようだ。
明日は、DONLP2 の論文の続きと、CVXOPT の中身のチェックになる。
明日はあまり時間が取れないので、優先順位としては DONLP2 から。
今日の作業内容: DONLP2 論文チェック 3h + CVXOPT インストール関係 3h
今日のBGM: Romancing Saga 3 OST [1-3], 聖剣伝説 LOM OST [1-2]
今日のランチ: つかさ かんぱち唐揚げ
明日の予測作業時間: 2h
2009年12月1日火曜日
CVXOPT インストール
CVXOPT はインターフェースがいろいろとあって、python だけでなく、OpenOffice のインターフェースまである。とりあえず、python から C の関数をどう呼び出しているかを確認中。
Matlab の C を呼ぶところは mex で、これと比較すると python は C を呼ぶのがかなり難しい。いろいろと覚えないといけないことが山のようにある。果たして、どこまで勉強したものか。
そういえば、今日は DONLP2 のアルゴリズムをチェックしてなかったので、明日チェックしよう。
今日の作業時間: CVXOPT チェック 3h
今日のBGM: なし
今日のランチ: シッダルータ ヒヨコマメとチキンのカレー
明日の予測作業時間: 6h
2009年11月30日月曜日
DONLP2 の下調べ
あと、他にどんなソフトがあるのかも下調べ。有力そうなものは Ipopt というもので、COIN-OR の一部にもなっている。(Ipopt へのリンク)
ということで、明日は Ipopt をざっとみるのと、DONLP2 の詳細チェックになりそうだ。
今日の作業内容: DONLP2 チェック 5h
今日のBGM: FF12 OST [1,2,4]
今日のランチ: らく うな重
明日の予測作業時間: 3h
2009年11月27日金曜日
計算サーバチェック
すでに、大きなPCクラスタなどは他のところにもあって、似たようなのを目指すのは効率がよくないので、ここは思い切って、いろんな実験ができるようなものを探してみることにする。
たとえば、グラフィックスボードで BLAS の計算ができる、という CUDA は、名前は聞いたことのあるものの、実際に使ったことがないので、CUDA の BLAS を SDPA に組み込めたらどうなるか、などは確認してみたいところである。
今きがついたが、今日はうっかり DONLP2 を調べる時間を取ってなかった。これは、明日に回そう。
今日の作業内容: 計算サーバチェック 3h + 書類処理 2h
今日のBGM: Madlax OST [1-2]
今日のランチ: 味庵 かにとレタスのチャーハン
明日の予測作業時間: 3h
2009年11月26日木曜日
Python と convex な日
もともとの動機としては、ある集合 F \in \Real^n に対して
$ W \in conv\{vv^T : v \in F\}$
が簡単に判断できるか?ということであった(のを思い出した)。もちろん、v \in F を判断するのと同じ程度か n 倍ぐらいの計算時間で判断できるのか?ということ。
これが案外難しいらしく、簡単には見つからない。Rockefeler の convex analysis, Hiriart-Urruty & Lemarchal の Fundamentals of Convex Analysis もチェックしてみたが、あまり重要なことは書いていない。ただ、Caratheodory の定理は、使い道があるかもしれない。
あと、今日は Python について、少し調べてみた。
CVXOPT と CHOMPACK というソフトがあるようで、特に CHOMPACK は sparse Cholesky factorization ができるということが書いてあるので、要チェック。ただし、両方とももちろん Python な感じである。そうそう、CVXOPT は Ubuntu では標準パッケージがあった。SDPA にも Ubuntu のパッケージがあったらいいかもしれない。
そういえば、今日は DONLP2 が進まなかったので、明日もうちょっと確認してみようと思う。
今日の作業時間: Mangasarian チェック 3h + Python チェック 1h + その他 1h
今日のBGM: Macross F OST [1-2], Chrono Trigger OST [1-3]
今日のランチ: いろは 豚アスパラチーズ焼き
明日の作業時間予測: 6h
2009年11月25日水曜日
TSUBAME見学と DONLP2
普段はネットワーク越しにログインしているだけなので、実際にどんな風になっているのかはコマンドラインからだけではよく解からなかった。見学をしてみて、各ノードに貼ってある各ノードの番号を示す小さなシールを見ると、自分がログインしているノードに似たような番号が貼ってあって、「おぉ、やっぱり本物だ」という感慨があった。
ファンが回っているので、騒音が大きく長時間滞在できるわけではないが、こうやって実際のノードを見てみるというのも大事なことだと改めて思う。
そのあと、いろいろと話を聞いたけど、
DONLP2というソフトは勉強になるようなので、明日あたりもう少し詳しく調べてみたい。
DONLP2へのリンク
ただ、DONLP2 は AMPL をインターフェースの一種として使っているので、AMPLについても勉強が必要だ。
AMPLへのリンク
ほかに今日得た知識では、
- QAP には、positive definite と negative definite に分けるという今までと違った定式化があって、これはひょっとしたら調べる価値があるかもしれない
- kissing number は SDP 緩和で近似解が求まる(ただ、詳しい定式化は確認しなおしたほうがいい)
などなど、今日はとても勉強になった。
今日の作業時間: DONLP2 チェック 2h
今日のBGM: なし
今日のランチ: シッダルータ シーフードカレー
明日の予測作業時間: 6h
2009年11月24日火曜日
PDSDPのコンパイル
あと、連休の間に他の研究内容に関係ありそうな論文をチェックした。
On the Minimum Volume Covering Ellipsoid of Ellipsoids, SIAM Journal on Optimization, 17(3) , 621-641, 2006
やっている内容は面白いんだけど、証明などに一部きちんとできていないところがある。
とりあえず、明日はMangasarian の本を読むのを進めたほうがよさそうだ。
SDPA の論文は、一通り校正が終わったので、これで他の人の校正をお願いしたところ。ついに終わりが見えてきた(という気が、個人的にはする)。
今日の作業内容: PDSDP コンパイル 2h + SDPA 論文校正 2h + 計算機不具合解消 1h
今日のBGM: FF7 Reunion, ARIA the Animation, ARIA the Natural, ARIA the Origination
今日のランチ: さか本 ねぎとろとろろ丼
明日の作業時間予測: 3h
2009年11月20日金曜日
ディスカッション
教えてもらったことの要点をまとめておくと、
- CPU の cache size は性能に大きく影響するので、計算時間予測に使ったほうがいい。(SDPT3はひょっとしたら cache size を考慮しているのかも)
- 似たような研究をしている人に、数値結果を送れば興味を持ってくれるので、連絡してみるのがいい。
- どういった問題が並列計算に向いているか気がついたら、改めて教えてくれる、とのこと。
今日の作業内容: ディスカッション準備 2h + ディスカッション 1.5h + その他雑多 1h
今日のBGM: Madlax OST [1]
今日のランチ: たちばな シマアジ丼
明日の予測作業時間: 3h
2009年11月19日木曜日
お迎え
ただ、そのおかげで雑多なことが思っていた以上に発生したので、今日は論文探索しか進んでいない。
今回読んでいた
Support Vector Data Description, Machine Learning, 54, 45-66, 2004
に元になっている論文があるというので、この作者の論文をチェックする。
Support Vector Data Description, Proceedings of the Fifth Annual Confenrence of the ASCI, 398-405, 1999
これにも元になっている論文があるというので、さらに孫引。
Data domain description using support vectors, the special issue of Pattern Recognition Letters, proceedings of Pattern Recognition in Practice VI, 1999
ただ、これらの内容はかなり似ていて、どうやら下2本の会議の内容を論文として投稿したのが1本目のようだ。
ということで、1本めの論文で、もう一個重要だと書かれていた論文を明日チェックすることにする。
ちなみに、作業として残っているのは、
1. 論文探索 2. 論文校正 3. Mangasarian の本をチェック
といったところ。
今日の作業内容: SVDD チェック 2h + 雑多な仕事 2h
今日のBGM: 電脳コイル OST [1-2]
今日のランチ: らく うな重
明日の作業時間予測: 4h
2009年11月18日水曜日
Quantum Control の Survey
Support Vector Data Description, Machine Learning, 54, 45-66, 2004
を昨日の夜から読んでいたところ、前半がかなり面白くて、ついつい読み込んでしまった。
すると、今日はなんかだるかった。やっぱり、ちゃんと体力を考えて読まないとダメだ。
あと、前半はおもしろかったけど、後半の数値実験はあまり馴染がなく、さらっと目を通しただけになってしまった。とりあえず、参考文献から重要そうな論文を3つ探したので、これを明日はインターネットで探してみよう。
あとは、ちょっとしたメモだけど、Quantum Control の survey が SIAM Review に載っていて、これも時間があるときに目を通しておきたい。SDP との関係性もあって、なかなか楽しめる。
A Discrete Invitation to Quantum Filtering and Feedback Control, SIAM Review, 51(2), 239-316, 2009
今日の作業内容: SVDD 2h + 品川調査 1h
今日のBGM: なし(仕事がこまごまとしたのがあって、聴いている時間が取れず)
今日のランチ:シッダルータ マッシュルームとじゃがいものカレー
明日の作業時間予測: 3h
2009年11月17日火曜日
SDPA の論文の調整の続き
あと、「カーネル多変量解析」(岩波書店)にざっと目を通したので、重要なところをメモしておく。
- ISOMAP 多様体あてはめ (SDP の解法は多様体に大きく依存しているので、関係が高い可能性あり)
- LLE[Locally Linear Embedding] (局所的なあてはめを多様体でなめらかにつなぐ方法)
- 独立成分分析(これは解の存在範囲を抑えられたら、面白そう。その場合には、量子化学の PSE とも関係あり。)
- カーネル独立成分分析
- カーネルの構成方法や種類は他の本や論文と同じ一般的なもの
- (この本の再生核ヒルベルト空間の証明は、他に載っているのと比べるとやけに難しく書いてあるので、証明自体は他の本を参考にしたほうが良い、という印象もあり)
あと、一番気になったのは、サポートベクター領域記述法(Support Vector Data Description) [P109]で、これは今やっている内容にかなり近い。明日は、これの代表的な論文をチェックすることにする。
今日は Mangasarian が進まなかったので、そちらも進めないと。
今日の作業内容: SDPA論文チェック 2h + 論文校正 2h + カーネル多変量解析 2h + 部屋の準備 1h
今日のBGM: NOIR OST [1-2], FF7 OST [1,2,4]
今日のランチ: 角笛 ディアボラ風ハンバーグ
明日の作業時間予測: 5h
2009年11月16日月曜日
SDPA の論文の調整
あと、
「カーネル多変量解析」(岩波書店)
が手元に来たので、これも時間を見つけて目を通したい。
でも、Mangasalian も読まないといけない。
とりあえず、明日は時間があるので、頑張れそうだ!。
今日の作業内容: SDPA の論文の調整 2h
今日のBGM: Madlax OST [2]
今日のランチ: 信華園 豚キムチ麺
明日の作業時間予測: 5h
2009年11月13日金曜日
量子化学と RKHS
あと、dual の方でチェックする本のメモ。今回チェックしているのは、
Nonlinear Programming, Ovil Mangasarian, McGraw-Hill Book Company, 1969
という本。凸解析や非線形計画の最適性条件などがまとまっていて、読みごたえがある本(のように見える。まだ詳しく読んでないので、確定的には言えないけど)
そういえば、金曜日の午後になると、いまひとつ集中力があがりにくい。週の疲れが出てくるのかもしれない。集中力を切替えられるような作業を考えることにしよう。
明日は dual の条件を確認していこう。
今日の作業内容: 量子化学と RKHS 4h
今日のBGM: Madlax OST 1
今日のランチ: らく 焼魚定食
明日の作業時間予測: 4h
2009年11月12日木曜日
dual の続き
ただ、有限個の点、という簡単な状態にして計算したので、どういう形として出てくるべきか、が見通しが立ったのは大きい。ここからあとは、
- Wolfe の dual
- Farkas の Lemma
- Separation Theorem
あと、今日はいろんな作業が入ってしまい、量子化学の勉強は進まず。こちらは、もう少し時間をとって頑張ろう。
今日の作業内容: dual の勉強 2h + こまごまとしたこと 1h
今日のBGM: FF10-2 OST [1-2]
今日のランチ: 四川 回鍋肉定食
明日の作業時間予測: 6h
2009年11月11日水曜日
裏の裏が表にならないのはなぜ?
どうして?
とりあえずTeXに数式だけまとめたので、明日もう少し考えてみることにしよう。
あと、量子化学の論文は今日は結局チェックできなかったので、これも明日の作業。
今日の作業内容: QOP 6h
今日のBGM: SKY OST [1-2], FF10 OST [1-4]
今日のランチ: 味庵 明太子レタス炒飯
明日の作業時間予測: 2h
2009年11月10日火曜日
半正定値と正定値はまるで違う!
当然ながら証明としては成り立つわけだけど、半正定値と正定値で証明の簡単さがまるで違う。やはり、正定値は逆行列が存在する、というのは非常に強力である。明日は、これをもうちょっと一般的な形で検討することにしよう。
あと、SDPAの論文にある SDPA6 との比較の数値実験は終了。今日のうちに TeX に入れておいたので、これでOK。
今日の作業内容: SDPA 論文 1h + QOP 4h
今日のBGM: 娘フロ,娘トラ,FF8 OST [1,2,4]
今日のランチ: 角笛 チキンガーリックソテー
明日の作業時間予測: 8h (結構あるなぁ)
2009年11月9日月曜日
survey のチェックのつづき
他に別の論文の校正を行った。これは、一通り校正をしたので、すぐに次の作業は発生しないはず。
あと、kernel についての survery の論文をチェックした。これは、後半は確率的なモデルに突入してしまっていたので、そのあたりは素通りした。kernel についての調査はこれくらいで十分かもしれない。
他に調べてみたもので、One Class SVM というのが、いまやっていることに近いのではないかと思い、筑波大学の修士論文に書いてあったので、軽く目を通してみた。[ここにPDFへのリンク]
結果がどうなるかを rough に知るために、Matlab + Sedumi でシンプルなものを組んでみたが、やはり原点から最小の距離となる点が出力されてしまう。おそらく、確率を考慮しない状態では、あまり面白い結果にはならないようだ。
ただ、nu-SVM の概念は、今後使えるかもしれないので、取っておこうと思う。
今日の作業内容: kernel 論文検索 2h + 論文校正 1h + One Class SVM 3h + その他いろいろ 1h
今日のBGM: なし
今日のランチ: シッダルータ マッシュルームとチキンのカレー
明日の作業時間予測: 6h
2009年11月8日日曜日
論文チェックの続きの続き
チェックしたのは、
- A tutorial on kernel methods for categorization,Journal of Mathematical Psycology,51,(2007),343--358
で、これは、心理学の雑誌での kernel methods の survery。全体的な構造を見渡すことができるので、初めて kernel の勉強をするのに向いている。
もうひとつは、
- Variational reproducing kernel Hilbert space (RKHS) grid method for quantum mechanical bound-state problems, Chemical Physics Letters, 28, (1998), 719--726
で、こちらは量子力学関係にどう使われているか、というもの。Appendix を見ると、kernel と density matrix が似たような数式になっていて面白い。これは、案外使えるのかもしれない。
あと、kernel の survey で比較的新しいのとして、
- Kernel methods in machine learning, The Annuals of Statistics, 36(3), (2008), 1171--1230
これは、最初の論文に「この本が kernel については詳しい」と書かれていた著者が2008年に書いたもので、その本が2002年発刊なので、それよりも新しい情報ではないかと思う。
とりあえず、後半が残っているので、後半を明日読むことにする。
あと、SDPAの論文の数値実験は、sdpa6.2.1が一部きちんと解けていなかったことに気がついたので(BroydenTri800はsdpa6.2.1だとメモリ関係で異常アクセスしているようだが、これがきちんと処理されずに間違った計算を続行しており、Cholesky 分解でその計算間違いが発見されるようだ。)、先ほどから 600と700に変更してもう一度解くことにしている。明日の午後にもう一度結果を確認することにする。
今日思うに、kernel はやっぱり奥が深い。まだまだ勉強しがいがありそうだ。
あと、日曜日は午後に集中力が落ちやすいので、パッと始められるようなものもあわせておこう。
今日の作業内容: RKHS論文勉強 3h + SDPA実験チェック 1h
今日のBGM: なし(ちょっと休みたかったので)
明日の作業時間予測: 7h
2009年11月6日金曜日
論文チェックつづき
あと、RKHS の論文は、量子化学のものが結構面白そうなので、これを読み込んでみることにする。量子化学の部分が難しそうだけど、これはなかなかにおもしろそうかも。
SDPA の論文の数値実験は、mater-6 を mater-5 に変更。mater-6 は SDPA 6.2.1 の場合には、int が 32bit という制約にひっかかって正確に解けないことが判明したため。他の部分は一通り TeX にいれたので、6と7の比較が終わったら(日曜日かも)、TeX に入れよう。ちなみに、自動的にメモリ使用量を記録するシェルスクリプトを作ったので、実験がかなり楽になった。
あと、サポートベクターマシーンの kernel を多項式にすると POP になる可能性もあり。
うん、今日もいろいろと勉強できた。明日も頑張ろう。
今日の作業内容: SDPA数値実験 1h+ RKHS確認 2h + 論文チェック2h
今日のBGM: なし(耳を休ませるため)
今日のランチ: 角笛 ハンバーグランチ
明日の作業時間予測: 3h
2009年11月5日木曜日
計算時間、間違った
あと、RKHS については、論文探索を続行したところ、どうやら量子化学のエネルギー準位のプロットに使われているようだ。いまひとつ、この論文の重要性が判断しかねるところだが、いくつか他にも有益な情報がありそうなので、もう一度詳細を確認しよう。
他に、論文チェック。こちらは、途中でよく解からないところがでてきたので、具体例で考えてみることにしよう。
今日の作業内容: SDPA実験0.5h + RKHS 探索 2h + 論文チェック 1.5h
今日のBGM: FF10 OST[1-4]
今日のランチ: らく 焼き魚定食
明日の作業時間予測: 6h
2009年11月4日水曜日
RKHS 論文探索
今日のメインは、RKHS論文探索。Reproducing Kernel Hilbert Space で検索したら、470 件もヒットしてしまったので、タイトルをみて重要そうなものだけを順にみてみた。ただ、これだけでも30件程度。さらにその中から 10 件程度はダウンロードして、さらに重要そうな5件だけは印刷してみた。
470件もチェックしてわかったことだが、Journal of Chemical Physics に掲載されている論文がいくつかある。これは、案外面白いことだ。印刷した5件は、後でざっと目を通すことにする。
他には、論文チェックをした。
今日の作業内容: 論文探索3h + 論文チェック1h+メール処理0.5h
今日のBGM: Madlax OST [1-2], かぜよみ, 黄泉がえり OST
今日のランチ: 信華園 カレー両面焼きそば
明日の作業時間の予測:4h
2009年11月3日火曜日
700倍も高速化されてた
あと、SDPAの論文用に数値実験。version 2.0.1 から始まって、最新の 7.3.1 でどのくらいの高速化ができているかを確認。mater-3 で確認すると、実に 700 倍程度の高速化が達成されていることがわかる(PCは同じなので、ソフトの違いのみ)。これで、mater-4,5,6 についても実験しているので、明日にでも確認をしてみる。
今日の作業内容:再生核ヒルベルト空間1h+SDPA数値実験1h
今日のBGM:なし
明日の作業時間予測:5h
2009年11月2日月曜日
再生核ヒルベルト空間つづき中
あと、再生核ヒルベルト空間の勉強を続けてみた。
どうやら、量子化学と対応させると、Gram matrix が reduced density matrix で、再生核が Hamiltonian と関係しているらしい。
細かい証明は外して読んでいるのでそれなりに進んでいて、いま 368 ページだが、この論文はやはりヒルベルト空間の内容なので、それを他のところにどう使えるか、という視点があまりない。
明日のうちに目を通して、どう使えるのかをピックアップしてみよう。
今日の作業内容: SDPA論文 1.5h + RKHS 2h + 雑多なこと 2h
今日のBGM: EVA OST [1-3]
今日のランチ: 味庵 黒酢の酢豚
明日の作業時間の予測: 5h
2009年11月1日日曜日
再生核、むずかしいなぁ
SDPA の論文チェックは明日に回そう。
で、示すのがうまく行かなかったのは、K(x,y) と K(y,x) が複素数の共役になっているということ。Mercer の定理を使えば簡単に解かるのだけど、それを使わなくても示せるはずで、ここでこけてしまった。
今日の作業内容: RKHS 3h
今日のBGM: ワールドシリーズ第3戦 3h
明日の作業時間の予測: 4h
2009年10月31日土曜日
Reproducing Kernel Hilbert Space の続き
それ以外に Reproducing Kernel Hilbert Space の PDF ファイルをチェックしてみた。ところが、この PDF はなんかの授業の下書きだったらしく、途中までしか記述がなかった。あと、すこしずつ誤植があった。ただ、参考文献のところに、Reproducing Kernel Hilbert Space の理論展開の survey に近いものを発見。明日は、これを読んで、SDP と関係があるのか、今している計算と同じ内容が既にないのかどうかを確認することにしよう。
そうそう、この survey (たぶん survey だと思うが、厳密には違うかもしれない)は、JSTOR ので PDF になっていた。JSTOR は昔の論文を PDF にしてくれていて、この論文も 1950 年のもので、こういったのを自宅から簡単に PDF で見ることができるのが素晴らしい。そのうちに、電子書籍リーダーとかで PDF が読めるようになると、さらに画期的だ。
今日の作業時間: 3h(SDPA 論文修正 1.5h + RKHS の下調べ 1.5h)
今日のBGM: NOIR OST [1-2], アルジュナ OST [1]
今日のランチ:ホァングン 鶏のからあげレモンソース
明日の予測作業時間: 6h
2009年10月30日金曜日
再生核ヒルベルト空間
今日は SVM の本に目を通していたが、途中で「再生核ヒルベルト空間」なるものを発見。英語では、Reproducing Kernel Hilbert Space というらしい。
ということで、今日は、いつにも増してマイナーなネタを搭載。
どうやら、再生核ヒルベルト空間はヒルベルト空間の一種のようである。ここでは、kernel が当然重要である。いくつか面白い点はあるが、気になったことを書いておくと
- Renegar の本の Hilbert 空間での内積は、実は Reproducing Kernel Hilbert Space に定義された内積に一致している。これは、偶然の一致とは思えない。
- kernel は量子化学の density matrix, あるいは Ground State Energy で底上げされた Hamiltonian と関係している可能性がある。(ただ、線形汎関数がなにに対応しているか、がまだ読みきれていない)
- L2 空間は Reproducing Kernel Hilbert Space ではない、と書かれているが、いまひとつ理由がよく解からない。たぶん、まだ定義を理解しきれていない。
内容としては、とても面白そうなので、図書館で関連図書を借りようと思ったら、すでにレンタル中だった。予約をして待つことにした。
今日のほかの仕事としては、自分自身のスペック調べ。
今日のBGM: Romancing Saga 3 OST [1-3]
今日のランチ: 日高屋 とんこつラーメン半チャーハンセット
2009年10月29日木曜日
Karmarkar 賢いなぁ
少し時間ができたので、ちょっと本を見ていたら Karmarkar の内点法について書いてあるものがあって、これがなかなかに面白かったので、Karmarkar の元論文をダウンロードしてきて目を通してみた。1984 年の論文を椅子に座りながらにして手に入れられるとは、インターネットおそるべし。
Karmarkar の論文は、内点法の出発点であって、とてもよく書かれている。
その後の内点法の研究の方向性が、いかにこの論文に沿っているか、が解かる。
オリジナリティや先見性から見ても、数理計画法の論文の中ではピカイチ。
今日はとても勉強をした気分だ。
明日は、QOP と SVM の関係をもうちょっと見てみよう。
今日のBGM: なし(耳を休める日のため)
今日のランチ: しなの とろろそば
2009年10月28日水曜日
4章の校正
これで、考察で書くことが決まったら、考察をいれていく。
あと、明日は 5.1 の校正。
まだまだ、やるべきことはたくさんあるなぁ。
そういえば、この前の QOP は SVM と関係があるみたいだ。この論文が片付いたら、そちらのほうの理論もチェックしてみよう。
今日のBGM: ARIA the ANIMATION OST, ARIA the NATURAL OST, ARIA the ORIGINATION OST, ひとひら OST [1-2]
今日のランチ: 久絵 刺身漬け定食
2009年10月27日火曜日
SDPAのバイナリ配布を考えてみる
コンパイルに失敗した、という問い合わせがあまりないので、使っている人は自力でコンパイルできるか、あるいは使うのを止めたかのどちらかのはずで、後者は自分でコンパイルしなくてもいいなら使ってくれるかもしれない。
そこで、SDPA がライブラリとしてリンクしている lapack, blas, mumps のライセンスをチェック。
blas は性能面からいうと GotoBLAS がいいのだけれど、GotoBLAS をリンクした状態でバイナリ配布するとライセンスに引っかかるかもしれないので(一文ずつはまだ確認していないけど)、とりあえず ATLAS から確認してみた。
どうやら lapack, ATLAS, mumps の組合せなら、ライセンス表示をきちんとすることで対応できそうだ。これは、今後考えてみよう。
論文は、予定どおり3章のチェックを終了。書き直した分、すっきりとしていて、読むのに時間がかからなくなった。
これで、明日は第4章に目を通すことにしよう。
今日の他の仕事は、新しくアカウントをもらった Linux の .bashrc を調整したり、電話をかけたり、電話をかけたり、電話をかけたり、Windows Vista の設定を変更したり、そんな感じだった。
今日のBGM: Madlax OST [1-2]
今日のランチ: らく カキフライ定食
2009年10月26日月曜日
2009年10月23日金曜日
SDPARA は一通り完成
で、SDPA の論文は Section 3 を改訂中。予想していたよりも大がかりな改訂が必要かもしれないので(ひょっとしたら8割以上かも)、どういった改訂をするか、という方向性をまずは決める必要がありそうだ。
今日のBGM: なし(耳を休めるため、と思ったら外でバンドが頑張ってた)
今日のランチ: いろは とん汁定食
2009年10月22日木曜日
GotoBLAS2
明日は、中ボスの3章の改訂。
あと、今日はGotoBLAS2を使ってのコンパイルにてこずった。
GotoBLAS2 とは、まったく関係ないところで。(一部関係してた)
ifort を使ってコンパイルしたので、調子に乗って MUMPS も ifort でコンパイルしようとしたら、なぜか -fPIC がうまく指定できず、Matlab の mex を作成できず。
いろいろと調べているうちに、ここで
-mcmodel medium -shared-intel
が効くらしい。(あとで、これもダメだと解かった)
と、ここまできて気がついたのだが、GotoBLAS に接続するプログラムは Matlab に接続できないことがある。Matlab の mwblas には、当然ながら goto_set_num_threads がないためで、この関数を外して、いま一度コンパイルすることになる。
そういえば、Matlab の mex から GotoBLAS を利用したときには、スレッド数はどうなるんだろう? Matlab の mwblas みたいに maxNumCompThreads が効くと便利だけど、OMP_NUM_THREADS だと Matlab を起動しなおさないといけないかもしれない。このあたりは、時間ができたときにでも、また調べてみよう。
今日のBGM: FF 7 OST [1,2,4]
今日のランチ: らく 焼魚定食
2009年10月21日水曜日
SDPAの論文のintroを変更
とりあえず、一通りの流れを修正して、文章としてつながるように変更をした。
残りにも途中でいろいろと冗長な部分が多いので、明日はスリムアップの続きになるかと思う。
今日のBGM: NOIR OST [1-2], MADLAX OST [1-2], 30 minutes flight
今日のランチ: 角笛 ビーフシチュー
2009年10月20日火曜日
QOPとSNL
SDPARA のソースは、Change Log を作って、公開用の tar+gz にしたあと、ちゃんと make できるか確認したので、これで OK。
他の仕事をこなしたあとで、QOP,SNL について勉強。
いまひとつ解からないところがあって、「だいたいこんなことが解かるはず」というイメージを数学の言葉できちんと書き直す。これが、思っていたよりも時間がかかって、これで今日は終了。
明日は、今日定義したところで、数学的にどうなっているかを確認する。
特に、等式条件を示すときに、自明な一方向の逆方向を示すときに、これまでの内容が使えるかどうかを検討してみる。
今日のBGM: FF9 OST [1-4]
今日のランチ: 食堂 MIX セット
2009年10月19日月曜日
ラフスケッチ終了
これで少しそのまま置いておいて、時間がたったところでもう一度英語を見直すことにする。
それにしても、英語を直していると、「こんな変な英語を書いたの、誰だ!!」とか思いつつ、「あ、自分だった」と気づくことが多い。
あとは、ソースのリリース用に tar+gz を作る予定。ただ、ChangeLog がなかったので、これを機に明日あたり作ってしまおうと思う。
QOP は、今日はあまり進まなかったので、明日頑張ろう。
今日のBGM: Xenosaga1 OST [1-2], 筑後川, Xenosaga 2 OST [1-2], ARIA The ORIGINATION OST
今日のランチ: お弁当 鮭おろしポン酢弁当
2009年10月16日金曜日
2009年10月15日木曜日
2009年10月14日水曜日
とりあえず、数値実験終了
やはり、BroydenBand を BryodenBand とスペルミスしやすいので、今後気をつけていこう。
でも、とりあえず、論文に入れるべき数値実験は一通り終わったので、BroydenBand の数値結果を明日のうちに表に入れることにする。それにしても、数値実験が終わると、仕事に行く前の朝一の計算結果チェックが必要なくなるので、朝ゆっくりとできそうだ。
あと、論文本体は、下書きが終了。こちらはどんどんと英語をブラッシュアップしていくことにする。
英語ミスが多いので、2ページチェックするだけで1時間ぐらいかかってしまう。英語が完成したら、あとで体裁を整えることにする。
ところで、英語で文章をかいていると、辞書のありがたみが強烈にわかる。
今のところは、LDOCE5 と OALD, OTE を併用している。理系英語はわかりやすいストレートな表現が重要なので、 シンプルな英語表現が比較的多いLDOCE5が中心になっている。これに、同じ単語が連続して言い換えたいときなどに OALD, OTE を使って言葉を探して、LDOCE5で確認している。
LDOCE5 はカラーで、表現として使うところが青い字や太い字で強調されているので、文章を書くときにはすごく便利。
ちなみに、OTE は Oxford Thesaurus of English の略で、いわゆる類語辞典のこと。LDOCE5のTheaurus は本当に意味が近い言葉しかなくバラエティが少ないので、OTEで言葉を探して LDOCE5 で確認している。
文章を書いていると、どの辞書がどういった風な特徴を持っているかも解かってきて、面白い。
今日のBGM: FF 8 OST [1-4]
今日のランチ: つかさ サーモンハラス塩焼き
2009年10月13日火曜日
まだ、数値実験終われなかった
理由としては、SDPARA-1.0.1 が不安定な挙動を示すことにある。量子化学の問題を SDPARA-7.3.1 ほど安定して解けていない。パラメータを少し変更することで、できるだけ SDPARA-1.0.1 と SDPARA-7.3.1 の比較ができるようにする必要がある。
とりあえず、ジョブとしては投入済みなので、今夜眠っている間に進む予定である。
明日のうちに結果を確認することにしよう。
今日の作業としては、load-balance の eps を作成。dense Schur に対してのload-balance はびっくりするぐらい、いい値が出る。sparse は、やはり少し値がずれる(最大と最小の比率が2倍程度)。
論文自体は、表の見方などを追加。これで、明日、表から解かることを文章で書いていけば、数値実験の章はできあがる。(上の実験は、予備的な内容の章にあたるため)
今日のBGM: RomaSaga OST [1-3], FF 10-2 OST [1-2]
今日のランチ: らく うな重
2009年10月12日月曜日
load-balance 測定終了
gnuplot で読み込める形式まで変形したので、明日のうちに eps ファイルに変換する。
ちなみに、sparse Schur よりも dense Schur のときの方が load-balance がいい。
ところで、sdpa7.3.1 で BroydenBand20 を解くと、sdpara1.0.1の16台より時間がかかる。BryodenBand は 20ぐらいだと sparsity が弱いので、こういったことが起こるらしい。
とりあえず、いま行っている計算が終了したら、BryodenBand40 を sdpara1.0.1, 7.3.1(1,8), pcsdp で解いて、計算結果を確認する。
順調にいけば、明日には数値実験が終了するかもしれない。
今日のBGM: 電脳コイル OST [1-2], MADLAX OST [1-2]
2009年10月11日日曜日
JOB 追加投入
これによって、PCSDP の SNL, QC(Medium) を解いた後、PCSDPとのバランスの関係でSDPARA の一部で問題を変更したところを SDPARA で解きなおすことにしてある。
順調に進んでも、明日いっぱいはかかると思うので、とりあえず今日の午後はPCを使わずにQOPの勉強を進めようと思う。
今後の作業としては、
- 数値結果の表へのはめ込み
- ロードバランスのグラフの作成
- SDPARA 1.0.x の計算結果の測定
となる。よくよく考えると、数値結果を優先しているので、2,3 があまり捗っていない。とりあえず今のジョブがすべて終わったら2,3 を進めることにして、論文の文章を書き足すことにする。
今日のBGM: Sky OST [1-2]
2009年10月10日土曜日
PCSDP まだまだ続行中
PCSDPの出力結果をまとめる Python スクリプトを書いたので、結果がとても見やすくなった。
Python は結果ファイルの整理などの文字列処理に圧倒的に役に立つので、コンピュータで数値計算をする人はできるだけ覚えたほうがいいと思う。Python でなくても Perl や Ruby でもいいけど、Python, Perl, Ruby のなかでひとつだけ覚えるのであるなら、一番簡単に覚えられる Python がおすすめ。今は、TeX のスタイルで計算結果をまとめて表示するようにしている。
これでいままでの計算時間を測定すると PCSDP に 21 万秒程度、SDPARA に 46 万秒程度かかっていて(SDPARAはスレッド数も変更して実行を繰り返しているので、余計に時間がかかる)、合計でざっと 69 万秒。一日が 8 万 6400 秒なので、記録に残っているだけでも 8 日程度。
並列計算のプログラムは台数を変更しながら実験していくので、並列でないプログラムの動作確認の何倍も時間がかかる。ここで時間がかかる分、出来上がるソフトウェアが時間短縮をしてくれる(ことになっている)。
ただし、実際にはデバッグから予備実験などを含めると、クラスタを 20 日程度はフルに実行している。そろそろ休憩を入れないと、クラスタが消耗してしまうような気がしてきた。
でも、まだロードバランスを記録するための実験なども必要で、クラスタのお休みはもうちょっと先になりそうだ。
2009年10月9日金曜日
PCSDP 続行中
ただ、PCSDP は1台になったときに挙動が不安定で、かなり遅くなる。例えば、2台の計算のだいたい2倍以下に SDPARA ならなるが PCSDP は 5 倍とかになったりする。
スケーラビリティの計算のときに注意が必要そうだ。
今日は、他にQOPの勉強。
論文チェックすると、今まで気がつかなかったことがわかってくる。
今日のBGM: FF12 OST [1-4]
今日のランチ: いろは 日替わりのお肉 [豚串カツ]
追記 23:13
コンパイルのときに ScaLAPACK のブロック数を決められるようにした。具体的には
-DSCALAPACK_BLOCK=192
を mpicxx の オプションにくっつけると 192 になる。
(実際には、sdpa_mpist.cpp の mb2 に代入するようになっている。)
ただ、これは MUMPS からの呼び出しには対応していない。
2009年10月8日木曜日
PCSDPで数値実験
ただ、いくつか今後の課題も解かってくる。
- Thread が複数になるとメモリバンド幅を使い果たして conflict する
- このときに数値誤差が起こりやすい
- POPの一部は、8threadになったときに、同じコマンドでも解けるときと解けないときが何故かあるので、計算機の状態を確認して、もう一度解き直す必要がある
- Schur complement が単純過ぎると、複数台で解くと逆に遅くなる
今日のBGM: EVA OST 1
今日のランチ: 四川弁当(青椒肉糸)
2009年10月7日水曜日
英語の校正
最初に書いたことは、何を書きたいかが中心で文法などに誤りが多いので、それをことごとく修正するのだが、1ページあたり10箇所以上もあり、これが結構手間だったりもする。
そうこうしている間に、POP の問題はほぼ解き終わり。これを明日のうちに論文の計算結果の表にはめこむ。今夜のうちに SNL の問題が進む予定。
別途、SDPARA とは関係ないところで、QOP の話もある。こっちは、理論的な枠組が中心になるっぽいけど、どうなるかはまだよくわからない。ただ、〆切は2ヶ月後とか設定されている。
今日のBGM: EVA OST [1-3]
今日のランチ: 角笛 すき焼き風煮
2009年10月6日火曜日
数値実験、まだまだ続く
大きいのは時間がかかることがわかりきっているので、後回しにして、論文を校正しているときに解くことにしよう。
他にする作業としては、
- SDPARA1.0.x で問題をいくつか解いて比較用の表に入れる
- ロードバランスのグラフがまだできていないので、これを完成させる
今日のBGM: CHRONO TRIGGER OST[1-3], 聖剣伝説 LOM OST[1-2]
今日のランチ: つかさ 生サーモン照り焼き
2009年10月5日月曜日
数値実験途中
しかも、multi-thread が効く分、Nodes x Threads で実験をしているので、余計に時間がかかる。
ところで、max-cut タイプの問題だが、Threads にしても効果がないと思っていたが、GotoBLAS の高速化が想像してたよりも抜群で、それなりに効果が出ることが解かった。ただ、MPI-based の並列化はそれほどでもない。
論文本体は、数値計算を入れる表を作成したところ。これで、あとどれだけ数値計算をしないといけないかが視覚的に解かるようになってきた。(要するに、穴埋め方式になった。)
これで、数値実験が終わったところから、どんどんと表を埋めていって、空き時間でロードバランスのグラフを作成しようと思う。
今日のBGM: Madlax OST[1-2]
今日のランチ: らく 焼魚定食
2009年10月2日金曜日
本格的に数値実験スタート
Nodes 数 x Thread 数で何回も解いていくことになるので、だいぶ時間がかかるかもしれないけど、とりあえず土日をつかってどこまで進むかで、その後を考えることにする。
(Thread 数は論文の表の大きさなどを考えると間引いた方がいいかもしれないなぁ)
あと、diamond_patch は MPI による高速化はないけど、GotoBLAS による高速化(Thread数のみに依存) は効果が出る。
そうそう、BroydenBand が大きくなったときに 1 台だと解けなくなっていたのは、やはりメモリオーバーになっていた。4 台のときと比較して、4倍以上かかって解いているときには、メモリのスワップを使って解いているようなので、とりあえず計算結果は使えるけど、計算時間としてはあまり使えない。
これに並行して、論文用の図を作成中。
これが終わったら、数値結果を当て込むための Table を作成。
Table ができあがるのと、数値実験が終わるのだと、どっちが先になるんだろうか?
今日のBGM: FF 5 OST[1-2], Romancing Saga3 OST[1-3], Xenosaga1 OST[1-2]
今日のランチ: 味庵 炸醤麺
2009年10月1日木曜日
BryodenBand 続行中2
そろそろ 1 台で解くのが難しくなってきたみたいですが、本当にダメなのか、単なるバグなのか、あとでチェックする必要があり。(1Node,1Thread だとダメなのに、1Node,8Threadsだと解けるときがあるため)
論文本体は、今日は別の書類をさくさくと書いていたためお休み。
ところで、主双対内点法では、mu=0を達成すると終了するが、これって mu=0 にする必要があるんだろうか?理論的にはあるんだけど、コンピュータのソフトウェアとしては mu=1.0e-12ぐらいで終了している。この性質を使うと、もうちょっと違ったことが解かるかも。
今日のBGM: FF 6 OST[1-3]
今日のランチ: いろは まぐろ山掛け丼
2009年9月30日水曜日
BryodenBand 続行中
論文本体は、Multithread の部分を書き足したので、これから Figure や Table の整理。
これが終わると、本格的な数値実験のための問題選択に入ることになる。
今日のBGM: 聖剣伝説4-OST[1-2], DewPrism-OST[1-2]
今日のランチ:つのぶえ ミックスカツ
2009年9月29日火曜日
BroydenBand を全力で解く
(もちろん、解いているのはクラスタで、人間が全力疾走しているわけではない。)
BroydenBand は SDPARA の最新機能の性能がストレートに出るので、これのログを取ると同時にどこまで大きなところまで解けるかを確認する。
ちなみに、single processor で解く際には、BroydenBand300ですでに 10GB を突破する。まぁ、Schur complemet の要素数だけで 10 億に迫るので、しかたないとも言える。
論文は、new parallel schemes のところのラフスケッチを書いたところ。(1日でA4で1.5枚ぐらいしか進んだ。やはり 10pt で両端まで使うと、かなり1ページに書ける。)
次は、multi threading についての内容の予定。
今日のBGM:El Cazad OST[1-2], Xenosaga III OST[1-2], Madlax OST [1-2]
今日のランチ:つかさ しめさば
2009年9月28日月曜日
Mittelman の問題を分類
まず、single processor で 500 秒で解けるような小規模問題を除外しておいた。
これに基づいて、問題をいくつかに分類して、実際に解く(デバッグ情報無しで解く)グループをピックアップした。
また、これとは別に多項式計画問題も解いてみて、どういった傾向が出るのかを確認中。最新の実装だと、当然ながら、これまでよりも時間が短縮されることがある(一部、例外あり)。
また、MUMPS の ScaLAPACK サイズ変更だが、どうやら ICNTL(19)=2 の情報が有効らしい。ただし、これだけを変更してもメモリ違反が出てしまう。 マニュアルの4.10 でもう少し詳しく調べて見る必要がある。ただ、ここでの Schur complement はこちらのほしい情報とは異なる可能性もある。その場合は、ソースを直接変更することもありうる。
今日は書類作成などで論文本体が進んでないので、明日はできるだけ英語を頑張る。
今日のBGM: FF12-OST[1-4]
今日のランチ:鳥こまち 鶏から揚げ
[自分メモ]Mittelman の問題を分類
基本的な基準としては、
- single processor で 500 秒以内で解ける問題は外す(並列計算がもったいないので)
- 同じ種類の問題は、一番大きな問題だけにする
とする。ただし、1の基準で見ると、Mittelman の問題は Schur が DENSE なものしか残らない。
以下選んでいく。
- [G59mc] MPI効果はあるけど、Thread 効果はない
- [butcher] MPI & Thread 両方で効果ありで全体もOK
- [checker1.5] MPI & Thread 両方で効果あるけど、全体の割合低い
- [chipl12] MPI & Thread 両方で効果ありで全体もOK
- [diamond_patch] MPI & Thread 両方で効果あるけど、全体の割合低い
- [ice_2.0] MPI & Thread 両方で効果あるけど、全体の割合低い
- [neu3] MPI & Thread 両方で効果ありで全体もOK
- [neu3g] MPI & Thread 両方で効果ありで全体もOK
- [p_auss2_3.0] MPI効果はあるけど、Thread 効果はない 全体の割合も低い
- [reimer5] MPI & Thread 両方で効果ありで全体もOK
- [shmup5] MPI効果はあるけど、Thread 効果はない 全体の割合も低い
- [taha1b] MPI & Thread 両方で効果ありで全体もOK
やはり、Max-cut に似た傾向のある問題では、主双対内点法の弱さがストレートに出る。
次に、sparsePOP で生成した問題も確認。
- [BroydenBand 系列] ELEMENTS の効果はOK。ただ、CHOLESKY は16台になると逆効果。
- [BorydenTri 系列] 問題構造が簡単するぎるためか、案外割合低い
- [ChanedSingular 系列] solve に手間取っているみたい(MUMPS の ScaLAPACK のブロックサイズを変更して確認する)。あと、Thread 間に競合が起こる場合あり。
- 他の問題は、生成時間に対して、あっという間に解けてしまうので、あまり良くない。
あと、sfsdp の問題は、なかなか好調。ただし、これも生成の関係であまり大きくできない。
インパクトがあるのは、やはり大きな問題なので、BryodenBand, sfsdp でどこまで大きい問題を解けるかを調べてみる。
2009年9月27日日曜日
Mittleman の問題を一通り解き終わった
だいたい182029秒なので、丸2日といったところ。
これから本格的な数値実験を行う問題を選択する。(いまのデータはデバッグ情報も表示しているため)
基準としては、
- 並列計算なので、それなりの規模の問題
- SDPARA での並列化の効果が出ている問題
- 逆に並列化の効果が出ていない問題
特に3は重要で、こういったものを取り込んでおかないと、自分に都合のいいデータだけを集めてしまうことになる。
また、本格的な数値実験に入る前に、MUMPS のブロック数を変更できるのかどうかを確認しなおす。たしか、MUMPS では ScaLAPACK のルーチンに関するブロック数は OS の種類などによって自動的に決まっているはずで、それを dmumps_() の呼出で変更できるのかどうか、調べる。
追記(時刻 19:28)
Mittelman の問題は、ほとんどが Schur complement が dense だった。いくつかは sparse だけど、それらは、single processor でも高速に解けてしまって、並列計算のうまみがなかった。まぁ、dense のほうは、マルチスレッドの効果が出るものもあるので、それは取っておこう。
2009年9月26日土曜日
SDPARA 数値実験途中メモ
http://plato.asu.edu/ftp/sdp/
既存 SDPARA 同様に m=n のケースでは性能が出ないが、Mittelman の問題では max-cut などがあるため、これに当てはまるケースが少なくない。
また、1反復のELEMENTS が 1 秒を下回る場合、Multi Thread の生成に時間がかかって逆効果になる。