九州大学 情報基盤研究開発センター 研究用計算機システムニュース   No.339                                  2015.1.16

+--------------------------------------------------------------------------+ |1.富士通Fortranコンパイラの実行結果異常について | | (スーパーコンピュータシステム, 高性能演算サーバシステム) | +--------------------------------------------------------------------------+ ----------------------------------------------------------------- 情報基盤研究開発センター研究用計算機システムWWWホームページ     http://www.cc.kyushu-u.ac.jp/scp/ -----------------------------------------------------------------  スーパーコンピュータシステムFX10, 高性能演算サーバシステムCX400 の Fortran コンパイラにおいて,実行結果異常となる障害が見つかりました.障害は以下の条件 をすべて満たした場合に発生するもので,富士通製の Technical Computing Suiteの Fortranのみが該当します.障害修正時期は未定です.心当たりのある方はセンター まで( E-mail: request(at)iii.kyushu-u.ac.jp)ご相談ください. ●現象と条件 以下の条件をすべて満たす場合,REWIND文の実行でファイル位置が変わらないという 実行結果の誤りが生じます. (1) ファイルを流れ探査(※)として接続している. (2) ファイルが書式なしファイルである. (3) REWIND文の実行においてファイルの接続または以前のREWIND文の実行との間に 実行された入出力が以下の条件を満たす. (3-1) 対象ファイルに対するWRITE文を一度も実行していない. (3-2) 対象ファイルに対するREAD文を実行している. <プログラム例> OPEN(10,ACCESS="STREAM",FORM="UNFORMATTED") /* 条件(1),(2) */ WRITE(10) "TEST" REWIND(10) READ(10) ch REWIND(10) /* 条件(3) */ READ(10) ch ! ファイルの先頭からのREADになりません (※流れ探査) Fortran2003で新たに追加された仕様です.流れ探査は OPEN文のACCESS指定子に "STREAM"を指定することによって,C言語の入出力のようなテキストストリームとし て入出力を行います.流れ探査ではREAD/WRITE文にPOS指定子を指定することで実行 前のファイル位置を意識せず任意の位置(バイト単位)からのREAD, WRITEが可能です. バイト単位で入出力の書き出し位置を指定可能な点,およびC言語プログラムとのフ ァイル相互利用がしやすいという特長があります. ●回避方法 REWIND文の直後に実行する入出力文において,POS指定子を指定し,ファイルの先頭 からの入出力を行うことを指示することで,REWIND文が障害の条件に一致した場合で もREWIND文が正常に動作した場合と同等の結果となります.POS指定子の値には,先 頭からの入出力となる値1を設定します. <プログラム例> OPEN(10,ACCESS="STREAM",FORM="UNFORMATTED") WRITE(10) "TEST" REWIND(10) READ(10) ch REWIND(10) READ(10,POS=1) ch ! ファイルの先頭に位置付けてからREADします。 ●障害に該当するかの確認方法 実行可能ファイルを生成するために使用しているプログラム全体に対して以下のgrep コマンドを実行してください. % grep -i 'STREAM' 【Fortranソースプログラム】 --> "STREAM"という文字列をプログラム中に含まない場合,障害条件には該当しません. (大文字/小文字は区別しません) % grep -i 'OPEN' 【Fortranソースプログラム】 --> "OPEN"という文字列をプログラム中に含まない場合,障害条件には該当しません. (大文字/小文字は区別しません) % grep -i 'REWIND' 【Fortranソースプログラム】 --> "REWIND"という文字列をプログラム中に含まない場合,障害条件には該当しません. (大文字/小文字は区別しません)    grepコマンドの実行で "STREAM","OPEN","REWIND"のいずれかが検出されない場合には 障害の条件に一致しません.すべて検出された場合,以下をすべて満たす場合のみ, 障害に該当するプログラムとなります. 1) 値が"STREAM"であるACCESS指定子を指定したOPEN文が存在する. 2) 1)のOPEN文においてFORM指定子の値が"UNFORMATTED"であるかFORM指定子を 省略している. 3) 1)のOPEN文の実行または以前のREWIND文の実行との間でREAD文が存在し,かつ WRITE文が存在しないREWIND文が存在する. [問い合せ窓口] 九州大学 情報統括本部 HPC事業室 全国共同利用担当 Mail: request(at)iii.kyushu-u.ac.jp Tel : 092-642-2308