Programming

量子力学でよく出てきそうな計算をboostで

試してはいない。間違いとかもっといい方法あれば教えてください。 Trace sum( matrix_vector_range(A, range(0, A.size1()), range(0, A.size2()) ) );http://lists.boost.org/MailArchives/ublas/2007/06/2158.php sum( prod( scalar_vector(A.size1(), 1.…

Boostで時間計測

boost/timer.hppをincludeして、 boost::timer t; t.restart(); // 計測開始 t.elapsed(); // 計測停止http://www.boost.org/doc/libs/1_44_0/libs/timer/index.html

How to Optimize by Intel Compiler

現在使用しているマシンのCPUはCore2 Duo E6850, Xeon E54xx, Opteron 880(Dual Core), Opteron 250(Single Core)。これら全てのCPUで走るように最適化する方法のメモ。Intel Compilerは11.1 build 046を用いた。 icc -fast -axSSSE3,SSE4.1 -xSSE3 hoge.cこ…

グラデーション

0から1までの値を綺麗にグラデーションで表示したいと思った。でも、RGBを表す適当な式が見つからない。そんなときにこれを見つけた。 R. G. B. Gradation Controller これをいじくって、だいたい以下の式で綺麗にグラデーションになることがわかった。 おす…

可変個の引数とnon-POD型

まず、可変個の引数を取る関数の書き方のおさらい。 #include uint sum(uint num, ...) { uint retval = 0; va_list ap; va_start(ap, num); for(uint i= 0; i { retval += va_arg(ap, uint); } va_end(ap); return retval; }こんな感じで、num個のuint型を…

OpenMPメモ

お手軽並列化(?)のOpenMPを使ってみる。 準備 omp.hをincludeする。gccでのコンパイルは以下のような感じで。 $ g++ -fopenmp hoge.cc 環境変数 OMP_NUM_THREADSで並列数を指定する。デフォルトはCPUのコア数? 他にも挙動を制御する環境変数多数あり。 $ OMP…

実行時間測定

http://kzk9.net/column/time.html まとめると、 精度が低くてもいいとき -> clock, times 実時間を測るとき -> gettimeofday CPU時間を測るとき -> getusage だそうな。

boostの最適化

コンパイルオプションとして-DNDEBUGを付けてコンパイルしたら4倍ぐらいに速度が上がった。しかしこれgoogleで適当に検索したら出てきたんだけど、公式のリファレンスのどこに書いてあるんだろう。 追記。 http://radiofly.to/nishi/programming/solidcode.h…

ベンチマーク

自分用メモなので気にせずに。 CPU&グラフィック性能(level 7) Core2Duo 6600(2.4GHz) GeForce 7300LE @2.4GHz (gcc-4.3) kraus:0.004s chi:0.073s bloch:0.072s draw_chi:0.147s draw_bloch:0.111s @2.4GHz (gcc-4.1) kraus:0.004s chi:0.094s bloch:0.098s…

CLAPACK

boostだけだと関数が足りないのでLAPACKのC言語版CLAPACKを使ってみる。ATLASを一緒に使うと速いらしいがとりあえずは動けばいいのでそれは使わず。本格的に計算させるときはATLASを使ってCLAPACKをコンパイルし直そう。というのもATLASを使ったCLAPACKのコ…

Boost Library

Boost Libraryを使って行列の計算をさせてみた。なかなかシンプルにcoding出来てうれしい。参考文献 http://boost.org/ http://boost.org/libs/numeric/ublas/doc/index.htm http://www.page.sannet.ne.jp/d_takahashi/boost/ublas/index.html http://www.km…

Binary Hacks

http://0xcc.net/binhacks/ 気がつけば発売日を過ぎていた。生協に売ってるかな。

GDB

使えるようになっとこうかな。 http://www.h7.dion.ne.jp/~matsu/feature/gdb/ http://flex.ee.uec.ac.jp/texi/gdb-j/gdb-j_toc.html

frysk

FC5にこんなのが入ってた。便利そう。 http://sourceware.org/frysk/ でも、僕が作る程度のプログラムでは大半のデバッグはprintfでなんとかなっちゃうんだよな。。。

namespace

using namespace std; を付け忘れただけなんて。。。今までnamespaceとかtemplateとか使ったことなかったもんなぁ。いい勉強になりました。

libxml2とか使って

lameを使ってがーっとmp3に変換させるようなプログラムを書いてみようと思い、、、いやー、これほどまでに醜いものができるとは。CDのバックアップ&圧縮手順。 1. CD -> wav cdparanoia -B2. info.xmlファイル作成 3. lwでmp3に変換 lw /home/cd-backupこん…

GLUT on FC5

FC5にしたらなぜかfreeglut使ってあるやつが動かなかったが、updateしてさらにlivnaからnvidiaのドライバ入れたら直った。GPUのFanが自動的に遅くなってくれて静かにもなった。 めでたしめでたし。

buddha続き

ランダムの方が「安全」だった。 http://members.at.infoseek.co.jp/mamepipi/pic/buddhabrot/ buddhabrot1.pngが古い(ランダムじゃない)やつで、buddhabrot2.pngがランダムで作ったもの。buddhabrot1.pngではx軸のところに影ができてしまっていたがそれがな…

buddhabrot

http://d.hatena.ne.jp/oOmeowOo/20060302/1141272638 http://astronomy.swin.edu.au/~pbourke/fractals/buddhabrot/でろでろに教わったのでちょいと試してみた。うにゃうにゃうにゃ。画像の出力がめんどいのでOpenGLで頂点として描画させた。4096 * 3072個…

並列計算

何か並列計算用のライブラリ作ってみようかな。 案1 server1つに対してclientが沢山。(階層構造みたいなのでもOK) 案2 サーバー無し。勝手に他のプロセス探して通信する。 案2の方はwinnyとかをちょっと想像してみた。詳しく知らないけどさ。あれってどうな…