XcalableMP / Specification

Specification of XcalableMP
0 stars 0 forks source link

XMP入出力の検討 #26

Closed mnakao closed 5 years ago

mnakao commented 8 years ago

担当者:中村

入出力における一貫性やatomicityの詳細について

XMP IO, consistency XMP-IO全体(現在、proposal)を含めて、次回確認、次々回votingの予定

2012/6/25に説明させていただきたい資料を添付します.英文は内容が承認されたあとにメールで確認させていただきたいとおもいます.

xmpio0625.pptx

mnakao commented 8 years ago

コンシステンシについては、解決

最後の文章の整合性のチェック。メールで議論。

更新したPDF main.pdf

mnakao commented 8 years ago

修正箇所については、了承。次回、votingして、SC前のバージョンに入 れる予定。

Appendix D の XMP-IO の確認をお願いします。 特に確認して頂きたいのは今回追加した以下の2パラグラフです。 よろしくお願いいたします。

D.4.4

Accessing to the same file position by READ/WRITE statements may not occur in the same order in a program. In order to guarantee the order of READ/WRITE speci ed, the file should be closed or the file_ sync_all directive should be executed between these statements.

D.5.4

Accessing to the same file position by READ/WRITE functions may not occur in the same order in a program. In order to guarantee the order of READ/WRITE speci ed, the file should be closed or the file_sync_all function should be executed between these functions.

main.pdf

mnakao commented 8 years ago

林さん,岩下さん

中村です。 ご指摘ありがとうございます。修正版を添付いたします。 ご指摘いただいたところはだいたい修正しました。Cも一部修正しています。

以下,林さんの質問に対する回答です。

D. 3. 1

とりあえず,F2003以降の仕様は考えない,ということで良いですか?

他のところでもご指摘がありましたが,なるべく整合性がとれているほうがいいとおもっています。 他にも整合がとれていないところがあれば,ご指摘ください。ただ,Local I/Oの標準入出力はシステム依存でいいとおもっています。

D. 4. 1

ACCESSの既定値はSEQUENTIALなので,省略するとFortranでの意味は順番探査となるので書けたほうがよいのでは? FORMも,順番探査の場合,既定値はFORMATTEDとなるので書けたほうが良いのでは?

ACCESSは指示文にdirectがあれば直接探査,それ以外では順番探査となるため,ACCESS指定子は必要ないと思っています。FORMは書けたほうが良いとおもうので,追加しました。

D. 4. 2

これはマスターノードの値が書かれるんでしたっけ?

違います。実行ノード内のある1つのノードの値です。 main.pdf

mnakao commented 8 years ago

林です。

少しコメントを入れたものを添付します。(D.5の方もざっと目についたところだけ)

D. 3. 1

とりあえず,F2003以降の仕様は考えない,ということで良いですか?

他のところでもご指摘がありましたが,なるべく整合性がとれているほうがいいとおもっています。 他にも整合がとれていないところがあれば,ご指摘ください。 ただ,Local I/Oの標準入出力はシステム依存でいいとおもっています。

XMP coarray拡張の部分の仕様として、

In a READ statement, an io-unit that is an asterisk identifies an external unit that is preconnected for sequential formatted input only on the image whose primary image index is 1.

と書いています。これは、Fortran仕様の

In a READ statement, an io-unit that is an asterisk identifies an external unit that is preconnected for sequential formatted input on image 1 only.

に由来するもので、coarrayのI/Oというのは、要するに通常のFortran I/O つまり、XMPでは、local I/Oに相当すると思われるので、齟齬があるとまずいのではないか、ということです。

D. 4. 1

ACCESSの既定値はSEQUENTIALなので,省略するとFortranでの 意味は順番探査となるので書けたほうがよいのでは? FORMも,順番探査の場合,既定値はFORMATTEDとなるので書けたほうが良いのでは?

ACCESSは指示文にdirectがあれば直接探査,それ以外では順番探査となるため,ACCESS指定子は必要ないと思っています。

ちょっと問題なのは、ACCESS指定子なしでOPENされると、「Fortranの仕様上は」、すべて順番探査となるので、direct I/Oの仕様と合わないということです。

もちろん、XMPとしては、direct clauseがある場合は直接探査とする、という仕様にすることは可能ですが、その場合指示行の有無によって、ファイル接続の意味が変わってしまうのが、ちょっと気持悪い、ということです。

FORMは書けたほうが良いとおもうので,追加しました。 D. 4. 2

これはマスターノードの値が書かれるんでしたっけ?

違います。実行ノード内のある1つのノードの値です。

処理系が任意に選んだノード上の値が書かれる、と言う意味でしょうか?

mnakao commented 8 years ago

報告者:中村

林さん,レビューありがとうございました。修正したものを添付いたします。

coarrayのI/Oというのは、要するに通常のFortran I/O つまり、 XMPでは、local I/Oに相当すると思われるので、 齟齬があるとまずいのではないか、ということです。

だいぶ議論して決めたことですが,Fortran仕様に合わせたいとおもいます。D.2.1はあまり自身がないので,確認よろしくお願い致します。

もちろん、XMPとしては、direct clauseがある場合は直接探査とする、という仕様にすることは可能ですが、その場合指示行の有無によって、ファイル接続の意味が変わってしまうのが、ちょっと気持悪い、ということです。

ACCESSも追加しました。

処理系が任意に選んだノード上の値が書かれる、と言う意味でしょうか?

はい。a node を any node に変えました。

main.pdf

mnakao commented 8 years ago

中村さん

岩下です。

D. 4. 1

ACCESSの既定値はSEQUENTIALなので,省略するとFortranでの意味は順番探査となるので書けたほうがよいのでは? FORMも,順番探査の場合,既定値はFORMATTEDとなるので書けたほうが良いのでは? ACCESSは指示文にdirectがあれば直接探査,それ以外では順番探査となるため,ACCESS指定子は必要ないと思っています。

ちょっと問題なのは、ACCESS指定子なしでOPENされると、「Fortranの仕様上は」、すべて順番探査となるので、direct I/Oの仕様と合わないということです。もちろん、XMPとしては、direct clauseがある場合は直接探査とする、という仕様にすることは可能ですが、その場合指示行の有無によって、ファイル接続の意味が変わってしまうのが、ちょっと気持悪い、ということです。

ACCESSも追加しました。

direct I/Oの時はACCESS指定子は必須かつDIRECTでないといけない、他のglobao I/Oの時は省略またはSEQUENTIALを指定、がよいと思います。

つまり、指示文とFortran文の両方に書かなければならない、ということですが、大きな手間ではないし、この方が指示文を無視したときの逐次実行との意味が一致します。

仕様書の書き方ですが、表はspecifilerのdefalut値を書いている箇所なので、ここに書く内容ではないと思います。POSITION指定子と同じように下に書くのがいいと思います。

mnakao commented 8 years ago

報告者:林

対応頂き有難う御座います。

だいぶ議論して決めたことですが,Fortran仕様に合わせたいとおもいます。 D.2.1はあまり自身がないので,確認よろしくお願い致します。

標準出力と標準エラー出力は処理系依存のままで良いと思います。

また、

It is also implementation dependent how the accesses to the files with the same name by multiple nodes behaves.

も残しておいて良いと思います。

ACCESSも追加しました。

すみません。 p.97

shall be appear → shall appear

に修正をお願いします(私のミスです)。 また、ACCESS指定子のところの文中の単語beginは要らないと思います。

はい。a node を any node に変えました。

on a node arbitrarily selected by the language processor from the executing node set

ぐらいが良いかと思います。

mnakao commented 8 years ago

報告者:林

仕様書の書き方ですが、表はspecifilerのdefalut値を書いている箇所なので、ここに書く内容ではないと思います。 POSITION指定子と同じように下に書くのがいいと思います。

そうですね。

「表中のdefaultの箇所」 ACCESS SEQUENTIAL

FORM For direct access, UNFORMATTED. For sequential access, this specifier shall not be omitted.

「下に制約として」 For direct I/O, the ACCESS specifier shall appear and the value shall be evaluated to DIRECT.

For collective I/O and atomic I/O, the FORM specifier shall appear and the value shall be evaluated to UNFORMATTED.

で如何でしょう?

mnakao commented 8 years ago

はやしです。

「下に制約として」 For direct I/O, the ACCESS specifier shall appear and the value shall be evaluated to DIRECT.

For collective I/O and atomic I/O, the value of the ACCESS specifier shall be evaluated to SEQUENTIAL if this specifier appears.

For collective I/O and atomic I/O, the FORM specifier shall appear and the value shall be evaluated to UNFORMATTED. For direct I/O, the value of the FORM specifier shall be evaluated to UNFORMATTED if this specifier appears.

も追加した方が、より明確で良いと思います。

mnakao commented 8 years ago

林さん,岩下さん

中村です。 レビューありがとうございました。 修正したものを添付いたします。 main.pdf