[SCore-users-jp] Fortran でWRITE 文使用すると発生する問題について

kameyama @ pccluster.org kameyama @ pccluster.org
2005年 4月 12日 (火) 12:05:35 JST


亀山です.

In article <425B2669.7020304 @ st-systems.co.jp> Masayasu Iida <iida @ st-systems.co.jp> wrotes:
> Fortranのコード内にWRITE文を記述すると出力された
> ファイルに以下の異常が発生します。(標準出力では問題が
> 起こりません。)
> 
> ・ls -lでファイルサイズを見ると異常に大きな
>   サイズになります。テストコードは000.datという
>   ファイルにssssssssssssssssssssssと出力するだけなのですが、
>   ls -lの実行結果では92GBのファイルサイズになっています。
> 
> -rw--w-r--    1 root     root     98784247807 Apr 12 09:39 000.dat
>                                   ^^^^^^^^^^^
>   ところがdu -skの実行結果は、
> 4       000.dat
>   のように4KBでしかありません。

現象としては, write(2) してから変な値で llseek() している
可能性が高そうです.

> (5)別のマシンにFedora Core1をインストールし、PCCのサイトで
>   公開されているFedora Core1用のisoイメージから新たに
>   SCoreクラスターを構築し検証を行ないましたが、
>   SCoreのmpichを利用すると問題が再現しました。
>   → 現在使用している環境(RedHat9 + SCore5.8.2 + Intel Ver8.1)
>      の構築手順の問題ではないと判断しました。

こちらで, Fedora Core 1 + SCore 5.8.2 (rpm による install
というか rpm を作成した host なんですが...) + Intel voompiler 8.0-47
および Intel Fortran compiler 8.1-020
で実行しましたが, 問題はおこりませんでした.

ただ, strace すると llseek() を使用しているようなので,
    http://www.pccluster.org/pipermail/score-users/2005-February/002409.html
の patch をあてると改善されるかもしれません.

                       from Kameyama Toyohisa



SCore-users-jp メーリングリストの案内