トップ «前の日記(2008-02-12) 最新 次の日記(2008-02-14)» 編集

Orz日記 by Akio Morita

ToDo:

  • 15 SAD Fit[]回りの障害事例の解析
  • 10 smart pointer版PEGクラスの再実装(Left Recursionまわり)
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|06|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|06|07|08|10|12|
2016|01|02|03|05|06|08|10|11|
2017|01|02|03|04|05|06|07|09|10|11|12|
2018|01|02|03|04|06|07|08|09|10|11|12|
2019|01|03|04|05|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|

2008-02-12 [長年日記]

_ [SAD]Backslash escape in Fortran

SAD/Tkinter周りで Backslash escape問題(GCC 4.2.x以前では発症しませんが)を修正。 原因は、OBJ_BACKSLASH_ESCAPEの更新し忘れ Orz

これは、バックポート必要だよね(たぶん Tru64には影響する)

_ [SAD]Tcl/Tk8.4.18サポート

なんか、また configure周りがいじられてる...

_ [SAD]疑似乱数発生器試験 by Tracking

KEKB HER Crab Opticsを使った Tracking(RFSW/RAD/FLUC付き)で 疑似乱数発生器の置き換え前後を比較する。

RADと FLUCで放射減衰と量子励起による拡散に疑似乱数列が使われているので、 コードの置き換え(PRNG本体の置き換え&iseedのインライン化された線形合同 法を関数呼び出しに置き換えた)に失敗している部分をなめると結果に 違いが出るはずというのが、試験動機です。

試験内容は、粒子数1000個の初期分布を与えて 1000ターンのTrackingを行い結果と消費CPUタイムを比較する。

まず、疑似乱数発生器に Random/SAD pluginを使った場合

coderesulttime/turn
CVS MAINreference5.9914
amoritamatch5.9528
amorita-noarraymatch6.1047

使用された範囲のコードでの疑似乱数列参照の書き換えは成功している模様。

amoritaと amorita-noarrayの実行速度差を見ると、 疑似乱数生成ループを新設したtran_array_,tgauss_array_ (乱数配列を取ってくるAPI)へ置き換えたが速度向上に 寄与しているように見える。 また、インラインルーチンを関数呼び出しへ置き換えことに伴う速度低下を 乱数配列生成APIによる速度向上でカバーできたようである。

続いて、SeedRandom[]を使って疑似乱数列を Random/SFMT pluginに切替えた場合

coderesulttime/turn
CVS MAINmis-match6.0000
amoritareference6.0035
amorita-noarraymatch6.2041

CVS MAINの疑似乱数発生器は線形合同法固定(Random/SAD相当)なので 一致しない、きちんと違う疑似乱数列が適用されていることが判る。

また、処理速度の悪化の問題はないようである。

_ [SAD]Backporting to CVS MAIN trunk

やっぱり、Backslash escapeの問題は、実用上問題がでるバグなので CVS MAIN trunk側にバックポートを実施。 ついでに、Tcl/Tk 8.4.18サポートもバックポートする。

しかし、CVS MAIN trunk側の更新ルールのよくわからない version番号と commit logをまともに残さない風習は改善しないのだろうか Orz


カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記