[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 メーリングリストの案内