2008年12月17日水曜日

ボトルネック

使う対称性を変えて計算するバージョンも出来上がった。保存量として全スピンを採用するほうが基底数が減るし保持する基底が少なくても精度がでて断然よいだろうから計算効率としてQS対称性>>QSz対称性だと勝手に思っていたが、QSzのバージョンは比較にならんほど速度がでてびっくりする。5時間かかってた計算が20分弱に短縮される。なんかすごいミスしてるんじゃないかと逆に焦るな…してるんかもしれんが…。そら短時間ですめば済むほどいいんだが、何が結局前のバージョンのボトルネックだったのか探らんと気持ち悪い。

fortranで実行時間の計測は
system_clock(integer型)
という組み込み手続きを使える。たとえばcall system_clock(t1)のようにすると、t1に呼び出された時点での「処理系の時間=1970 年 1 月 1 日の 00:00 からの経過秒数?」なる壮大な数字が返ってくる。ほんとは引数は3つあってsystem_clock(count,count_rate,count_max)らしいけど。二個目は一秒に何回時計が刻むかとか3つ目は最大値がいくらかとかなのでまぁ省略してもよかろうと。何回か呼び出してその差をとればどのサブルーチンがどんだけ時間くってるかわかるわけで、さてこれでボトルネックをちまちま探そう…

今日は忘年会で、串揚げ自分で揚げ放題で食べ放題のところに行った。揚げ物普段あんまし食べないのでまずまずおいしかったけどこたえまくり。あー忘年会終わったとはいえまだ忘年できないなぁ。とりあえず予算関連を年内に片付けないと…

0 コメント: