Conference Room SAD
[thread display] [new arrival display] [word search] [past log] [管理用]

Subject Re: bench2.sadの計算で微妙に異なる結果が?
Date: 2008/02/13(Wed) 18:04:25
ContributorAkio Morita

> 自宅のPowerMacG5でコンパイルしたSADで、bench2.sadの計算から、微妙に異なる結果が出ます。
> 以下に示しますが、特に目立つのは、Emittance関数の計算結果とダイナミックアパーチャサーベイのスコアです。
> コンパイル時に使用したsad.confを示すので、エキスパートのご指摘をお願いします。
> 
微妙に異なる結果がでるとのことですが、なにと比較したかの条件が明示されてないので
誰も追試できないと思うのですが?
少なくとも、追試や解析には比較した2者の
o SADのソース
o コンパイル条件
o CPUアーキテクチャー
o OS
に関する情報は最低限必要かと思われます

仮に同一のソースを使っているとして、すぐに思い当たる要因としては...
o コンパイル条件やコンパイラが異なる場合
  -コードの最適化に伴う動作変化(言語仕様的に動作が実装依存又は未定義なコードが存在する場合)
   @最適化オプションにはIEEE754を破るものも存在します
  -コンパイラのデフォルトオプションの違い
  -コンパイラのバグ
o CPUアーキテクチャー/OSが異なる場合
  -浮動小数点演算の精度・丸め・内部表現が異なる
  -浮動小数点演算での例外処理が異なる
   @CPUが複数の精度・丸めをサポートする場合、OS・コンパイラ間で初期設定が異なる場合があるので要注意
   @最近のCPUでは、内部表現はIEEE754を採用しているものが多いのでメモリー上の表現形は統一されていますが
     CPU内で保持される演算途中の中間結果の表現がメモリー上と異なる実装も存在するので要注意
     (例: Intel i387 FPU 中間結果は拡張倍精度(80bit)で保持し、出力するまで単・倍精度に丸めない)
などが挙げられます

> また、曜日がずれるのは自宅でもofficeでも同様です。
> 
曜日がずれるとはどの様な意味でしょうか?
SADの起動メッセージで表示される曜日は、idate()で得られる{year,month,day}から計算しているはずですが
idate()からの戻り値とローカルタイムでの日付は整合していますか?
整合しない場合、タイムゾーン設定の不備か idate()の実装上の問題が考えられます
#同時に表示している時刻と日付は異なるサブルーチンを経由しているので、独立した問題です


- 関連一覧ツリー (Click ▼ to display all articles in a thread.)