2012年10月31日水曜日

探索方向の確認

SDPA-C で特定の問題を解いたときに、数値的に不安定になるので、それを解消する方法を探るために探索方向の確認をしている。
思っていたよりも時間がかかるが、いまのところ、今までに求まっている探索方向は、それなりの精度で求まっているようである。

ただ、やはり昨日のうちにマルチスレッド化して計算時間を短縮しておいたのは効果が大きい。

今日の作業内容:SDPA-C 確認 4h
今日のランチ:角笛 幕の内弁当
明日の予測作業時間:3h


2012年10月30日火曜日

SDPA-Cのマルチスレッド化

今までマルチスレッド化をしてなかったところを1か所マルチスレッド化した。これにより、4スレッドまでで
4.62秒(1スレッド)->2.40秒(2スレッド)->1.68秒(4スレッド)
というところまで高速化が進んだ。
今実験している計算機は4コアでサンプルも小さいので、だいたいの高速化が得られたところかと考えている。

今日の作業内容:マルチスレッド化 4h
今日のランチ:味庵 鶏肉団子玉葱人参煮込み
明日の予測作業時間:3h

2012年10月29日月曜日

マルチスレッド化、難航

今までの実装では並列化をしてなかったところで並列化しようとしたところ、案外簡単ではないことがわかった。
このあたりは、ソースを眺めるのを繰り返しながら考えることになる。
やはり、ある程度大きな単位で並列化したいところだが、そうするとまた別のところが難しくなる、など検討すべき課題も多い。

今日の作業内容:マルチスレッド検討 2h
今日のランチ:食堂 チキンソテーバジルクリームソース
明日の予測作業時間:4h

2012年10月26日金曜日

Makefile の細かい挙動の違い

Makefile を使っているが、SDPA-C のインストール用のものを書いていて、以下の2つに違いがあることに挙動に気が付いた。

[1]
OBJ = a.o b.o
CC = gcc
main.exe : main.o (OBJ)
   $(CC) -o $@ main.o $(OBJ)

[2]

main.exe : main.o $(OBJ)
   $(CC) -o $@ main.o $(OBJ)

OBJ = a.o b.o
CC = gcc

このとき、[1] では問題ないが [2] はバグとなる。
どうやら、変数の評価は、ファイルが存在するかどうかを確認する、つまり
main.exe : main.o $(OBJ)
の段階では上n行に書かれている $(OBJ) のみを参照するのに対して、
   $(CC) -o $@ main.o $(OBJ)
の段階では、Makefile の最後まで読んで最後に指定されたものを利用する。
つまり、[2] では、以下のように展開されるようである。
main.exe : main.o
   gcc -o main.exe main.o a.o b.o

ちょっとした違いだが、片方はバグになるので気をつけなければならない。

今日の作業内容:SDPA-C 1h
今日のランチ:シッダルータ ベジタブルカレー
明日の予測作業時間:4h


2012年10月25日木曜日

SDPA-C のスレッド確認

数値実験をいくつかしている間に、マルチスレッドが動いていないケースが分かったので、これに対してマルチスレッド化をすることにした。
まずは、ソースの中で問題になっている部分を特定したところまでが、今日の作業。

今日の作業内容:SDPA-C ソース確認 1h
今日のランチ:信華園 タコライス風チャーハン
明日の予測作業時間:3h


2012年10月24日水曜日

Dell PC をパーツ買ってきて自作するといくらぐらいか

計算サーバの性能などを調べているが、ふと気になったので Dell のPCを自作パーツで買った場合にいくらぐらいになるかを計算してみた。

Dell のPC としては、Precision T5600 N シリーズをベースに Xeon E5-2620, メモリ 16GB, HDD 1TB、保守サポート3年間 などとしてみた。
これで構成例価格は 32万円、割引額を引いて 25 万円となる。
(細かい構成で金額はいくらでも変わるので、今回は目安程度に見ている。)

ここでたとえば Xeon E5-2620 は現状で 35,000円程度、メモリは 8,000円程度、ハードディスクも8,000円程度などを足し合わせてみる。
ただ、ケースとマザーボードと電源については市販されていないと思われるので、だいたいでそれぞれ 30,000円, 30,000円, 10,000円としてみた。
また、RAID コントローラは金額に幅があるので、高めに見積もって 20,000円。
キーボードとマウスはそれぞれ 10,000円, 2,000円としてみた。
DVDスーパーマルチドライブを 6,000円, グラフィックスは NVIDIA Quadro NVS 300(512MB) を 15,000円としてみた。

これでざっと 18 万円程度となる。

ざっと見て7万円程度の差があるので、この7万円の中に組み立て費用や納品輸送費、保守サポートなどが含まれていると考えられる。
また、パーツを自分で買ってきた場合にはパーツの相性で動作できないリスクがあるので、そういった動作確認にかかる費用も、このあたりに含まれていると考えるのが妥当だと思う。

今日の作業内容:SFSDP チェック 4h
今日のランチ:つかさ マグロの竜田揚げ
明日の予測作業時間:4h


2012年10月23日火曜日

VISTA の再インストール終了

昨日に続いて、VISTA の再インストールの続きをした。
今日は、SP2, Office 2010, Adobe Reader X をインストールしたが、この間にそれぞれ Windows Update が入っていて、今日だけでも再起動を8回ぐらいしたかと思われる。
特に Office 2010 を入れた直後に Windows Update で 97 個の更新があった。
やはり、ある程度最新の状態に持ってくるには、多くの更新が必要なようだ。

そういえば、Debian の場合は、apt-get update; apt-get dist-upgrade  を 3回ぐらいかけたところで、最新の状態に追いついた記憶がある。
そのあたりで Windows と Linux は、また違いがあるのかもしれない。

今日の作業内容:VISTA 再インストール 3h + SFSDP 2h
今日のランチ:角笛 ポークエスカロップ
明日の予測作業時間:5h


2012年10月22日月曜日

VISTA再インストール

以前に Note PC で Windows Update をして起動できなくなっていたので、リカバリーディスクで VISTA を再インストールした。
リカバリーのあとに Windows Update が4回ぐらいあって、そのあとにアンチウィルスを入れて、現状としては Service Pack 1 を当てているところである。
このあとに Service Pack 2 があって、Office まではインストールしようと考えている。

ここまでに再起動をすでに10回程度は繰り返しているが、まだもう少しかかりそうだ。

今日の作業内容:再インストール 3h
今日のランチ:らく 鶏の照り焼き定食
明日の予測作業時間:4h


2012年10月19日金曜日

SDPA-C インストールスクリプトを書く

SDPA-C が簡単にインストールできるようにインストールスクリプトを書いた。
基本的には
$ make
だけでコンパイルができるようになる。
途中で、SuiteSparse, MUMPS, OpenBLAS も wget,git 経由でダウンロードして、自動でコンパイルするようにしてある。

ただ、SDPA-C は必要となるパッケージが多いので、./configure スクリプトは作成せずに、Makefile だけで済むように変更してある。
コンパイル自体は複数パッケージのコンパイルとなるため時間がかかるが、エラーさえなければ
$ make
だけなので、かなり簡単である。

今日の作業内容:SDPA-C インストールスクリプト 3h
今日のランチ:たちばな ひらめ
明日の予測作業時間:4h


2012年10月18日木曜日

SDPA-C インストールの整備

いままでのソースは git で管理しているだけで、公開できるようにはなっていなかったので、このあたりでソースなどを整理して、公開できる準備を始めた。

まずは、テスト入力データなど公開用にはいらないファイルを削除した後、Makefile を新規に書き直している。
今回は、BLAS については OpenBLAS だけに絞って、インストールできるようにするつもりである。

今日の作業内容:SDPA-C インストールマニュアル 1h
今日のランチ:味庵 ホイコーロー
明日の予測作業時間:3h


2012年10月17日水曜日

lxpanel を編集する

LXDE は Ubuntu や Debian だと、軽快なデスクトップなので便利であるが、カスタマイズの方法がちょっと分かりにくい。
lxpanel (アプリケーション・ランチャー)に lxterminal をつけるところまでは簡単だが、ここでlxterminal に引数をつけて登録する、となると難易度があがる。


この場合には、~/.local/share/applications に lxterminal-work.desktop というような ???.desktop という名前のファイルを準備する。中身は、


[Desktop Entry]
Exec=lxterminal --working-directory=/home/user/work
Icon=lxterminal
Terminal=false
Type=Application
Name=LxTerminal-work
Comment=LxTerminal-work
Categories=Utility;

のようにしておく。これで、lxterminal に working-directory を指定して起動できる。
このファイルを準備した後に、アプリケーション・ランチャーを右クリックして「アプリケーションランチャーの設定」を選ぶ。すると、Available Applications のアクセサリの中に LxTerminal-work が出てくるので、これを選択すればよい。

なお、標準で選べる Available Applications は /usr/share/applications に ???.desktop で記述されているので、これを参考にできる。

今日の作業内容:SDPA-C のインストール検討 0.5h
今日のランチ:つかさ かんぱちまかない丼
明日の予測作業時間:2h


2012年10月16日火曜日

Linux でシンボリックリンクがうまく使えず

Linux のシンボリックリンクを使おうと思ったが、うまく使えていない。

たとえば、~/a/a1/, ~/a/a2/, ~/b/b1/ というディレクトリがあるときに、
$ ln -s ~/a/a1/ ~/b/
とすると ~/b/a1/というリンクができて、
$ cd ~/b/a1
で a1 の中に入ることができる。
ここまではいいのだが、問題は
$ cd ~/b/a1
$ ls ..
とすると、~/b/a1 の一つ上だから、a1,b1 が見えるかと思いきや、a1,a2 が見える。
つまり、.. ではシンボリックリンクのときに一つ上に上がれない。
おそらく、.. がハードリンクになっていることに関係していると思うが、今日のところは解決策が見つからなかった。

今日の作業内容:SDPA-C 論文検討 2h
今日のランチ:シッダルータ ベジタブルカレー
明日の予測作業時間:1h


2012年10月15日月曜日

似たような論文が多すぎる分野

いろいろな論文がいろいろな分野で毎日のように公開されているが、最近気になっているのが、特定の研究内容で非常に似通った論文が多いこと。
2000年ごろに基本となる論文が出ているようだが、ここ数年でよく似た論文が多く発表されている。
アブストラクトの最後の一文がほぼ同じ意味であったり、証明の手順なども同じだし、Lemma や Theorem の並べ方、証明に使う数式なども、ほぼ同じだったりする。
しかも、ひとつのグループだけでなく、いくつかのグループで似たようなことをしているために、ほぼ同じ成果の論文が異なった雑誌に発表されているように見えることがある。

このあたりは、ちょっと考えておきたいところだ。

今日の作業内容:SDPA-C 構成 2h
今日のランチ:角笛 豚ロース味噌焼き
明日の予測作業時間:3h


2012年10月12日金曜日

SDPA-C で OpenBLAS のスレッド数制御

新しいSDPA-C の場合は、CHOLMOD を同時実行するので、CHOLMOD のなかで使われる OpenBLAS が同時実行されると衝突して性能が著しくおちることが分かった。
たとえば、1スレッドで80秒程度で解けていた問題が、4スレッドになると615秒かかる。
(このとき、top で見ると ksoftirqd というデーモンの使用率が大きくなり、スレッド切り替えが頻発していることが分かる)

そこで、CHOLMOD を同時実行する前に OpenBLAS のスレッド数を1に変更する修正をした。CHOLMOD 終了後は、4スレッドなどに戻すことになる。
この変更は、
void openblas_set_num_threads(int num_threads);
関数を使うと簡単にできる。ちなみに、この関数は
void gotoblas_set_num_threads(int num_threads);
を呼び出しているだけである。

これによって、80秒から64秒に短縮された。

あと、ATLAS は実行時にスレッド数を変更する機能がないのだが、debian パッケージの ATLAS だとなぜか衝突が起こらず問題にならない。
ATL_NTHREADS が 2 に設定されていたり、CPU 使用率が 200% 程度になることから、スレッド数が2でコンパイルされたバイナリと思うのだが、なぜ衝突しないのかは謎である。
SDPA-Cで測定すると、 1スレッド147秒, 2スレッド 79秒, 4スレッド 49秒と、衝突が起きていればおかしいほど時間短縮されるので、衝突していない。

いまは、もっと大きな問題を解くように数値実験中である。

今日の作業内容:SDPA-C 数値実験 3h
今日のランチ:シッダルータ キーマカレー
明日の予測作業時間:2h


2012年10月11日木曜日

SDPA-C 数値実験

SDPARA-C の論文を書いた際の数値実験データ生成スクリプトを見つけたので、それをもとにして SDPA-C6, SDPA-C7, SDPA7 の数値実験を試しに行っている。

とりあえずは max cut, max clique, norm minimization を実行しているが、これが思った以上に速い。
SDPARA-C は並列計算を使っているが、4年前のXeonの1スレッドで実行すると、SDPARA-C の8ノードと同じぐらいの計算時間になる。
もちろん、SDPA-C6 よりも SDPA-C7 のほうが速いので、差は大きくなるが、あとで SDPA-C7 のマルチスレッドについても比較実験しておきたい。

現在は norm minimization の SDPA7 の実験を実行中。
やはり completion に有利な問題だけあって、SDPA7 はかなりの時間がかかる模様。

今日の作業内容:SDPA-C 数値実験 1h + 資料チェック 1h
今日のランチ:らく マグロのづけ丼
明日の予測作業時間:4h


2012年10月10日水曜日

SDPA-Cの計算式の確認

今日もかなりの時間を事務処理に使っているが、SDPA-Cの計算式については確認しておいた。
このあたりをベースにして、今後の数値実験の方向性をある程度考える必要がありそうだ。
あとは、SDPARA-C の論文も参考にして、数値実験候補を決めていく。

今日の作業内容:SDPA-C の確認 0.5h
今日のランチ:つかさ 生サーモン照り焼き
明日の予測作業時間:3h



2012年10月9日火曜日

業績リスト一覧作り

書類の関係で、業績リストを作らないといけなくなり、今日はこれにほとんど時間を取られてしまった。
業績リストは自分でもある程度のリストにしてあるのだが、だいたいは独自フォーマットを要求されるので、Word から Word への貼り付け、などの作業が頻出する。
このあたりは一括作業にしたいところだが、要求されるのが独自フォーマットなために各個対応せねばならず、一括作業が困難なところが大変である。


今日の作業内容:業績リスト一覧作り 4h
今日のランチ:味庵 豚角煮とジャガイモの炒め物
明日の予測作業時間:3h



2012年10月5日金曜日

ホームページ作成

新しくホームページを用意することになったので、ホームページを作成している。
ある程度は形になってきているが、英語のページも作らないといけないので、そのあたりがなかなかに大変そうである。
それなりの出来になるように、もう少し頑張っておきたい。

今日の作業内容:ホームページ作成
今日のランチ:らく 鶏の照り焼き定食
明日の予測作業時間:5h

2012年10月4日木曜日

資料作り

昨日までの査読については、査読レポートを作ったので、ある程度時間を置いてから見直して送信することにした。

今日は、別の資料作りである。
こちらも研究内容などをまとめたり、といったことを書く必要があるので、そのあたりをリストアップして文章を作っている。
あまり時間が取れなかったので、明日以降に続きを作りたい。

今日の作業内容:資料作り 3h
今日のランチ:サイゼリヤ みぞれハンバーグ&ペッパーチキン
明日の予測作業時間:3h


2012年10月3日水曜日

査読レポート作成

昨日読んでいた論文の査読レポートを作成。
やはり、元になっている論文をコピーしていることが多い、ということを書かざるを得なかった。

ところが、調べてみると、元になっている論文がすでに別の論文に比較的似たような内容だった。
インターネットで調べてみると、どうやら、大元になった論文が1本あって、それに似たり寄ったりの論文がポロポロと見つかる。
雑誌の論文数を稼ぐためにしているようにも見えてしまう。

今日の作業内容:査読レポート作成 2h
今日のランチ:信華園 高菜チャーハン
明日の予測作業時間:4h



2012年10月2日火曜日

査読をしているところ

この前、3本連続の査読を片付けたが、新しく査読が来たので、今日のうちに読んでいる。
ただ、最近の論文はベースとなっている論文のあちこちを切り張りしていることがある。

たとえば、証明の文章が同じで、変数名だけ変えている、などということもある。
定義などが似たり寄ったりになるのは分かるが、証明の文章もほとんど同じというのは、さすがにベースの論文を参照しすぎ、と感じる。

今日の作業内容:論文査読 4h
今日のランチ:角笛 ロールキャベツ
明日の予測作業時間:5h


2012年10月1日月曜日

発表資料の作成

今回は学会などではないが、少し研究内容についての発表があるので、それにあわせて発表資料を作成した。
それほど発表時間が長くないが、短い時間にいかにコンパクトに要点だけをまとめるか、要点だけだけど面白いと思わせるか、のあたりが難しい。

今日の作業内容:発表準備 3h + その他いろいろ 2h
今日のランチ:シッダルータ チキンカレー
明日の予測作業時間:4h