My Reserches
INDEX †
MPI-IO Interface †
概要 †
- データモデル
- Feature
- Collective I/O
- Noncontiguous I/O
- Nonblocking I/O
- Fortran bindings
Independent and Collective I/O †
- MPI IO はCollective I/Oを採用
Independent I/O †
- 一人ひとりが独立にI/Oを行う
- 他のプロセスと相談しない
Collective I/O †
- プロセスグループによってストレージへのアクセスを管理
- I/Oレイヤはアクセス情報を把握しているので、下位レイヤによる最適化の余地がある。
Contiguous and Noncontiguous I/O †
Contiguous I/O †
図参照
Noncontiguous I/O †
- 単一の命令でNoncontiguousアクセスを記述するためにいは、I/Oシステムへより多くの情報を流す必要がある
Nonblocking and Asyncronous I/O †
- MPI I/OではNonblocking I/Oを採用
Blocing, Synchronous I/O †
- Blocking, or Synchronous, I/O operations return when buffer may be reused
- Data in system buffers or on disk
- 計算とI/Oをオーバーラップさせることもある
Nonblocking, Asyncronous I/O †
- Nonblocing interface allows for submitting I/O operations and testing for completion later
- Asynchronous I/O
- 実装にもよるが、バックグランドで処理を実行することができる
Example †
Exanple:Simple MPI-IO Examples †
実際にサンプルコードを動かしてみた。Simpleだった。
- writing [#f31766e7]
- MPI_File fh;
- MPI_Status status;
- MPI_Init(&argc, &argv);
- MPI_File_open(MPI_COMM_WORLD, "myfile", MPI_MODE_WRONLY | MPI_MODE_CREATE, MPI_INFO_NULL, &fh);
- MPI_File_write(fh, buf, 13, MPI_CHAR, &status);
- MPI_File_close(&fh);
- MPI_Finalize();
- reading [#y842707c]
- MPI_File fh;
- MPI_Status status;
- MPI_Init(&argc, &argv);
- MPI_File_open(MPI_COMM_WORLD, "myfile", MPI_MODE_RDONLY, MPI_INFO_NULL, &fh);
- MPI_File_read_all(fh, buf, 13, MPI_CHAR, &status);
- MPI_Get_count(&status, MPI_CHAR, &count);
- MPI_File_close(&fh);
- MPI_Finalize();
Exanple: Visualization Staging †
- MPI_File_set_view関数によってcontiguousでないファイルの断片を読み込むことができる
- たとえば、RGBのバイナリファイルのTile4部分だけ読むこともできる....らしい?
Under the Covers of MPI-IO †
- MPI-IOはとりあえず、すごい。
- Noncontiguousなデータアクセスや集団通信において最適化の余地がある
Noncontiguous I/O: Data Sieving †
Read & Write †
- リモートファイルアクセスは高いレイテンシーがつきもの
- 小さなアクセスが多発した場合、それをまとめて大きなファイルを読み込めば最適ができるのではないか?という話。
Collective I/O and the Two_Phase I/O optimization †
↑こんな感じ(Two Phase I/O)に、みんなが独立にData Sieving I/Oをするのではなく、みんなで協力すればData Sievingにおける余分なreadを減らせるのではないか?と言う話。
- p0:赤がほしい
- p1:オレンジがほしい
- p2:黄色がほしい
Performance †
(# of Distinct contiguous Regionsにもよるが)どのファイルシステムにおいても、Collective I/Oにおける最適化(Two_Phase I/O)が生かされている。
MPI-IO Implementations †
3つのMPI-IO Implementationが存在
ROMIO from Argonne National Laboratory †
MPI-IO/GPFS from IBM(for AIX only) †
さまざまな最適化
- Data shipping
- Controlled prefetching
- MPI file viewやaccess patternを用いて、アクセス領域の予測
MPI from NEC †
- listless I/O最適化
- MPIレイヤでNoncontiguous I/Oアクセスを速く処理する。
まとめ †
- MPI-IOは有用なインタフェース
- Noncontiguousアクセス
- Collective I/O
- これによりさまざまなI/O手段やそれによる最適化の実現
- high-level I/Oライブラリへのインタフェース
Higher Level I/O Interfaces †
- ファイルの構造を提供
- 科学計算に対してより有用なAPIを提供
- レイヤ的にMPI-IOの上位に位置する
最新の20件
2007-04-28
2007-11-30
2007-12-02
2007-10-21
2007-12-03
2007-11-30
2008-02-29
2008-05-11
2008-03-09
2008-02-29
2008-01-21
2007-10-20
2008-05-17
2007-10-03
2007-06-26
2008-05-18
2007-10-26
2007-12-02
2008-05-17
今日の6件
- counter: 128
- today: 1
- yesterday: 0
- online: 2