昨日読んでいた主成分分析の論文は、今日のうちに読み終わり。
途中から定義がなく話が進んでおり、数学的にあやふやな感じだった。
おそらくプログラムを読んでアルゴリズムを理解したほうが早そうな感じ。
ただ、どのあたりまで深追いするか、そのあたりのバランスが検討課題になりそうだ。
今日の作業内容:論文読み 2h + 資料作成 1h
今日のランチ:久絵 アジフライ定食
明日の予測作業時間:3h
2013年8月29日木曜日
主成分分析の論文読み
主成分分析は固有値と密接に関係しているので、そのあたりの論文を読んでみている。
ただ、内容がいまひとつ曖昧な表現で書かれていたりするところがあって、意図を組むのに時間がかかっているので、もう少し時間がかかりそうだ。
今日の作業内容:論文査読 1h + 論文読み 2h
今日のランチ:らく 豚焼肉のおろしポン酢
明日の予測作業時間:5h
ただ、内容がいまひとつ曖昧な表現で書かれていたりするところがあって、意図を組むのに時間がかかっているので、もう少し時間がかかりそうだ。
今日の作業内容:論文査読 1h + 論文読み 2h
今日のランチ:らく 豚焼肉のおろしポン酢
明日の予測作業時間:5h
2013年8月28日水曜日
SDPA for 64bit Windows
64bit の Windows 用にコンパイルした SDPA のバイナリだが、数値実験の結果を教えてもらったところ、なぜか 32 bit 版よりも 64 bit 版の方が高速に実行できるらしい。
メモリ空間へのアクセスが高速になるためなのか、それとも、そもそも 64bit Windows だと 32bit バイナリは遅くなってしまうのか、理由はよく考えていないが、高速になるということで、とりあえずは OK ということにしておく。
今日の作業内容:論文査読 2h
今日のランチ:つかさ マグロの竜田揚げ
明日の予測作業時間:5h
メモリ空間へのアクセスが高速になるためなのか、それとも、そもそも 64bit Windows だと 32bit バイナリは遅くなってしまうのか、理由はよく考えていないが、高速になるということで、とりあえずは OK ということにしておく。
今日の作業内容:論文査読 2h
今日のランチ:つかさ マグロの竜田揚げ
明日の予測作業時間:5h
2013年8月27日火曜日
発表資料を一通り完成
昨日の続きで発表資料作りを行った。
だいたいの発表練習をしたところ、必要そうな時間にピッタリだったので、これで一通りの完成としておく。
いずれにしても、発表は1か月以上も先なので、また見直して進めておきたい。
今日の作業内容:発表資料作り 2h + 論文査読 2h
今日のランチ:シッダルータ キーマカレー
明日の予測作業時間:4h
だいたいの発表練習をしたところ、必要そうな時間にピッタリだったので、これで一通りの完成としておく。
いずれにしても、発表は1か月以上も先なので、また見直して進めておきたい。
今日の作業内容:発表資料作り 2h + 論文査読 2h
今日のランチ:シッダルータ キーマカレー
明日の予測作業時間:4h
2013年8月26日月曜日
2013年8月23日金曜日
64bit Windows の SDPA 用に OpenBLAS をコンパイル
SDPA の 64bit Windows バイナリを生成するために OpenBLAS をコンパイルしているが、以下のような make コマンドを実行すると mingw64 でコンパイルがうまくできることが分かった。
ただ、これだと CBLAS, WARMUP, LAPACKE を使用しておらず、また DYNAMIC_ARCH なので生成されるファイルも大きなものになる。
rm -rf OpenBLAS
git clone https://github.com/xianyi/OpenBLAS.git
cd OpenBLAS
make \
CFLAGS="-static" CXXFLAGS="-static" FCFLAGS="-static" FFLAGS="-static" \
DYNAMIC_ARCH=1 \
HOSTCC=gcc \
CC=x86_64-w64-mingw32-gcc \
FC=x86_64-w64-mingw32-gfortran \
CROSS_SUFFIX=x86_64-w64-mingw32- \
BINARY=64 \
USE_OPENMP=0 \
NO_CBLAS=1 \
NO_WARMUP=1 \
NO_LAPACKE=1 \
libs netlib
# この上までが make コマンドの引数
ln -s libopenblas.a libopenblas.lib
x86_64-w64-mingw32-ranlib libopenblas.lib
これを利用して、SDPA をコンパイルすると
$ file ./sdpa.exe
./sdpa.exe: PE32+ executable (console) x86-64, for MS Windows
となって、たしかに 64bit Windows バイナリが生成できる。
また、Windows で実行しているときにタスクマネージャで確認しても *32 が表示されないので、64bit バイナリとなっている。
今日のランチ:食堂 ライスS + わかめの味噌汁 + 野菜たっぷりハンバーグ + ほうれん草ごま和え
明日の予測作業時間:3h
2013年8月22日木曜日
SDPA binary for 64bit Windows に挑戦
今までの SDPA のバイナリが 32bit 用しかなかったので、改めて 64bit に挑戦をしている。
前回は、どうも amd64-mingw32msvc- を使っていたようなので、今回は x86_64-w64-mingw32- を使ってみている。
今のところコンパイル中なので、どうなるかは結果待ちといったところだ。
今日の作業内容:SDPA コンパイル 1h
今日のランチ: ローソン 冷やし中華 + ポテトチップス
明日の予測作業時間:3h
前回は、どうも amd64-mingw32msvc- を使っていたようなので、今回は x86_64-w64-mingw32- を使ってみている。
今のところコンパイル中なので、どうなるかは結果待ちといったところだ。
今日の作業内容:SDPA コンパイル 1h
今日のランチ: ローソン 冷やし中華 + ポテトチップス
明日の予測作業時間:3h
2013年8月21日水曜日
Wine を Debian sid/unstable にインストール
SDPA の 64bit Windows binary が必要そうなので、以前はコンパイルに失敗したが今度はできるかもしれない、ということで再度挑戦してみている。
ただ、Debian sid/unstable から Wine のバイナリーが削除されているようなので、Wine のインストールをしてみた。
(SDPA の Windows binary は Debian 上でクロスコンパイルしている。)
1.
deb-src http://ftp.jp.debian.org/debian sid main contrib non-free
を /etc/apt/sources.list に追加
2. # apt-get update
3. # apt-get build-dep wine
4. # apt-get install build-essentials checkinstall
5. git clone git://source.winehq.org/git/wine.git ~/wine-git
6. cd ~/wine-git
7. ./configure --enable-win64 --disable-win16 --disable-tests
8. make
9. # make install
参考 URL
http://forums.debian.net/viewtopic.php?f=10&t=68770
http://wiki.winehq.org/GitWine#head-ac963f86ee8616e2d0607735a80183b538379f84
今日の作業内容:発表資料作成 2h + SDPA コンパイル 1h
今日のランチ:ハーフレモン + おさつスナック + インスタント焼きそば + ミックスゼリー
明日の予測作業時間:1h
ただ、Debian sid/unstable から Wine のバイナリーが削除されているようなので、Wine のインストールをしてみた。
(SDPA の Windows binary は Debian 上でクロスコンパイルしている。)
1.
deb-src http://ftp.jp.debian.org/debian sid main contrib non-free
を /etc/apt/sources.list に追加
2. # apt-get update
3. # apt-get build-dep wine
4. # apt-get install build-essentials checkinstall
5. git clone git://source.winehq.org/git/wine.git ~/wine-git
6. cd ~/wine-git
7. ./configure --enable-win64 --disable-win16 --disable-tests
8. make
9. # make install
参考 URL
http://forums.debian.net/viewtopic.php?f=10&t=68770
http://wiki.winehq.org/GitWine#head-ac963f86ee8616e2d0607735a80183b538379f84
今日の作業内容:発表資料作成 2h + SDPA コンパイル 1h
今日のランチ:ハーフレモン + おさつスナック + インスタント焼きそば + ミックスゼリー
明日の予測作業時間:1h
2013年8月19日月曜日
TeX で横書きのスライドを作成するときのメモ
TeX で横書きのスライドを作る必要があったので、そのステップをメモ書きで残しておく。
(1) documentclass に横書きの landscape を指定
\documentclass[landscape]{extbook}
(2) xdvi で開くときには、A4 の横である a4r を指定
xdvi -paper a4r sample.dvi
(3) pdf に変換するときにも横書きであることを示す -l を追加する。
dvipdfmx -l sample.dvi
今日の作業内容:原稿校正 2h
今日のランチ:らく 鶏の照り焼き定食
明日の予測作業時間:3h
(1) documentclass に横書きの landscape を指定
\documentclass[landscape]{extbook}
(2) xdvi で開くときには、A4 の横である a4r を指定
xdvi -paper a4r sample.dvi
(3) pdf に変換するときにも横書きであることを示す -l を追加する。
dvipdfmx -l sample.dvi
今日の作業内容:原稿校正 2h
今日のランチ:らく 鶏の照り焼き定食
明日の予測作業時間:3h
2013年8月16日金曜日
2013年8月8日木曜日
2013年8月7日水曜日
原稿のだいたいの骨格を書く
今日のところで原稿のだいたいの骨格まで書いた。
最初はページ数が足りないのでは?と思ってスリムにしていたため、逆にページ数が余りそうな雰囲気になっている。
ここから全体を見直して書き足すべき部分を検討することにする。
今日の作業内容:原稿作成 3h
今日のランチ:ココナッツシュガー トムヤンクンラーメン
明日の予測作業時間:3h
最初はページ数が足りないのでは?と思ってスリムにしていたため、逆にページ数が余りそうな雰囲気になっている。
ここから全体を見直して書き足すべき部分を検討することにする。
今日の作業内容:原稿作成 3h
今日のランチ:ココナッツシュガー トムヤンクンラーメン
明日の予測作業時間:3h
2013年8月6日火曜日
2013年8月5日月曜日
YALMIP で SDPA データの生成
SDPA についての問い合わせで多いのが、SDPA sparse format にするのが大変、ということである。
これについては、YALMIP で簡単に生成できる、という風に返信することが多い。
例えば
http://users.isy.liu.se/johanl/yalmip/pmwiki.php?n=Commands.Savesdpafile
のサンプルを参考にすると、比較的簡単に生成できる。
これで保存したファイルを SDPA online solver で解く、というのがお手軽である。
SDPA 自身に YALMIP と同様のインターフェイスを持たせることも可能とは思うが、SDPA は計算エンジンでもあるため、インターフェイスと両方を同時に改善するのが難しい。
インターフェイスは YALMIP などの専門に任せて、SDPA 自身は計算速度を重視する、という方向も一つの方向だとは考えている。
今日の作業内容:打ち合わせ 4h
今日のランチ:味庵 豆腐の厚揚げと野菜の煮込み
明日の予測作業時間:5h
これについては、YALMIP で簡単に生成できる、という風に返信することが多い。
例えば
http://users.isy.liu.se/johanl/yalmip/pmwiki.php?n=Commands.Savesdpafile
のサンプルを参考にすると、比較的簡単に生成できる。
これで保存したファイルを SDPA online solver で解く、というのがお手軽である。
SDPA 自身に YALMIP と同様のインターフェイスを持たせることも可能とは思うが、SDPA は計算エンジンでもあるため、インターフェイスと両方を同時に改善するのが難しい。
インターフェイスは YALMIP などの専門に任せて、SDPA 自身は計算速度を重視する、という方向も一つの方向だとは考えている。
今日の作業内容:打ち合わせ 4h
今日のランチ:味庵 豆腐の厚揚げと野菜の煮込み
明日の予測作業時間:5h
2013年8月2日金曜日
プロファイリング結果をグラフィックス表示
gprof による解析結果は、有益ではあるがちょっと見づらいので、グラフィックス表示方法を探してみた。
すると、valgrind + gprof2dot.py + graphviz という3段で、以下のような表示をすることができた。
gprof の場合は、複数の関数から同一の関数を呼び出した場合、呼び出し先の関数の合計だけが表示されて呼び出し元からどれくらい来るのかが分かりにくかった。
たとえば、func1() と func2() の両方から func3() を呼び出している場合に、func1 と func2 がどれだけ func3 に依存しているかが分かりにくかった。
今回の方法だと、こういった情報も分かるので解析が便利である。
ただ、valgrind を使うので、gprof に比べるとプロファイリングが10倍以上時間がかかるようになる。
(gprof でも gprof2dot は名前が示す通り処理できるのだが、自分がやった範囲では valgrind のときに上の func3 についてなどの情報を得られてない。)
具体的な方法としては、
1. valgrind を callgrind で実行する
$ valgrind --tool=callgrind ./sdpa-c6 example1.dat-s example1.result
2. gprof2dot.py で結果を処理し、さらに graphviz で画像に変換する
$ ./gprof2dot.py -f callgrind -w callgrind.out.[プロセスID番号] | dot -Tpng -o a.png
ここで、gprof2dot.py は
の Download から入手できる。valgrind, graphviz は Debian 系なら
# apt-get install valgrind graphviz
でインストールできる。
今日の作業内容:SDPA-C チェック 3h + センサーのデータ再チェック 2h
今日のランチ:シッダルータ ダルカレー
明日の予測作業時間:5h
2013年8月1日木曜日
SDPA-C 打ち合わせ
SDPA-C の改良についての打ち合わせがあった。
いろいろと改良のアイデアをもらったので、それについて考えていくことになりそうだ。
まずは、今の状況でどのようなスペックなのかを再確認するために、いくつかプロファイリングをする必要がありそうだ。
今日の作業内容:SDPA-C 打ち合わせ 2h
今日のランチ:ココナッツシュガー カオムーデン
明日の予測作業時間:3h
いろいろと改良のアイデアをもらったので、それについて考えていくことになりそうだ。
まずは、今の状況でどのようなスペックなのかを再確認するために、いくつかプロファイリングをする必要がありそうだ。
今日の作業内容:SDPA-C 打ち合わせ 2h
今日のランチ:ココナッツシュガー カオムーデン
明日の予測作業時間:3h
登録:
投稿 (Atom)